Infelizmente, não é possível fazer o upload para um bloco criado a partir do mesmo modelo. No entanto, se o intervalo for preexistente, digamos um depósito deployment
de largura de uma conta ou um desses cf-templates-...
depósitos, você terá algumas opções.
-
Faça o upload dos arquivos auxiliares usando o Playbook Ansible e, no mesmo manual, crie / atualize a pilha do CloudFormation. Esse é um método muito popular para pipelines de CI / CD. Em seu livro Ansible, você terá algo assim:
tasks: - name: "Upload files to s3://{{deployment_bucket}}/lambda/" s3_sync: bucket: "{{deployment_bucket}}" file_root: lambda/ prefix: lambda/ permission: private - name: "Create CloudFormation Stack" cloudformation: stack_name: "some-stack-name" state: present template: template.yml template_parameters: DeploymentS3Path: "s3://{{deployment_bucket}}/lambda/"
-
Deixe o
aws cloudformation package
zipar e carregue os arquivos para o S3 e, em seguida,aws cloudformation deploy
crie e execute um conjunto de alterações do CloudFormation. Novamente, um método bastante popular que funciona bem com CI / CD.Em seu modelo do CloudFormation, você pode se referir a arquivos locais como este:
MyLambda: Type: AWS::Lambda::Function Properties: Code: lambda/
E quando
aws cloudformation package
for executado, ele exibirá um modelo modificado com o caminho do código expandido:MyLambda: Properties: Code: S3Bucket: cf-templates-1a2b3c4d5e6f-ap-southeast-2 S3Key: e24e45d4f5f2ab3c5d437659fa2246a7
Você então
aws cloudformation deploy
deste modelo expandido. Ou use outro método para implantação - o modelo está pronto para uso.A beleza desse método
package
/deploy
é que ele manipula o upload de arquivos locais para o S3 para você.
Em projetos diferentes, usamos os dois métodos em vários pipelines de CI / CD e ambos funcionam muito bem.
Espero que ajude:)