Atualizar recursos AWS::Lambda::Function - AWS CloudFormation

Atualizar recursos AWS::Lambda::Function

Quando um modelo gerado contém recursos AWS::Lambda::Function, avisos são gerados para informar que as propriedades Code/S3Bucket e Code/S3Key são identificadas como MUTUALLY_EXCLUSIVE_PROPERTIES. Além disso, a propriedade Code/S3ObjectVersion recebe um aviso UNSUPPORTED_PROPERTIES. É possível observar que as propriedades Code/ImageUri e Code/ZipFile não estão presentes no modelo gerado. Isso ocorre porque essas são propriedades somente gravação mutuamente exclusivas. Qualquer recurso AWS::Lambda::Function pode ter somente um desses conjuntos exclusivos de propriedades:

  • As propriedades Code/S3Bucket e Code/S3Key, e opcionalmente, a propriedade Code/S3ObjectVersion

  • a propriedade Code/ImageUri

  • a propriedade Code/ZipFile

O gerador de IaC não pode determinar qual conjunto de propriedades somente gravação exclusivas foi usado para criar ou atualizar o recurso. Como resultado, o gerador de IaC inclui somente o primeiro conjunto de propriedades no modelo gerado. Para incluir recursos AWS::Lambda::Function em um modelo gerado, o modelo gerado deve ser baixado e atualizado com as informações corretas para o código do Lambda.

Se você armazenar seu código do Lambda em um bucket do Amazon S3 e não usar a propriedade S3ObjectVersion, poderá importar o modelo gerado sem nenhuma modificação. O gerador de IaC solicitará o bucket e a chave do Amazon S3 como parâmetros de modelo durante a operação de importação.

Se você armazenar seu código do Lambda como um repositório do Amazon ECR, poderá atualizar seu modelo usando as seguintes instruções:
  1. Baixe o modelo gerado.

  2. Remova as propriedades e os parâmetros correspondentes das propriedades Code/S3Bucket e Code/S3Key do modelo gerado.

  3. Substitua as propriedades removidas no modelo gerado pela propriedade Code/ImageUri, especificando o URL do repositório do Amazon ECR.

  4. Abra o modelo gerado no console do gerador de IaC e escolha o botão Importar modelo editado.

Se você armazenar seu código do Lambda em um arquivo ZIP, poderá atualizar seu modelo usando as seguintes instruções:
  1. Baixe o modelo gerado.

  2. Remova as propriedades e os parâmetros correspondentes das propriedades Code/S3Bucket e Code/S3Key do modelo gerado.

  3. Substitua as propriedades removidas no modelo gerado pela propriedade Code/ZipFile.

  4. Abra o modelo gerado no console do gerador de IaC e escolha o botão Importar modelo editado.

Se você não tiver uma cópia do seu código do Lambda, poderá atualizar seu modelo usando as seguintes instruções:
  1. Use a ação GetFunction da API do AWS Lambda (por exemplo, usando o comando aws lambda get-function da AWS CLI).

  2. Na resposta, o parâmetro RepositoryType será S3 se o código estiver em um bucket do Amazon S3 ou ECR se o código estiver em um repositório do Amazon ECR.

  3. Na resposta, o parâmetro Location contém um URL pré-assinado que pode ser usado para baixar o pacote de implantação por 10 minutos. Baixe o código.

  4. Carregue o código para um bucket do Amazon S3.

  5. Execute uma operação de importação com o modelo gerado e forneça o nome do bucket e a chave como valores de parâmetros.