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
eCode/S3Key
, e opcionalmente, a propriedadeCode/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:
-
Baixe o modelo gerado.
-
Remova as propriedades e os parâmetros correspondentes das propriedades
Code/S3Bucket
eCode/S3Key
do modelo gerado. -
Substitua as propriedades removidas no modelo gerado pela propriedade
Code/ImageUri
, especificando o URL do repositório do Amazon ECR. -
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:
-
Baixe o modelo gerado.
-
Remova as propriedades e os parâmetros correspondentes das propriedades
Code/S3Bucket
eCode/S3Key
do modelo gerado. -
Substitua as propriedades removidas no modelo gerado pela propriedade
Code/ZipFile
. -
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:
-
Use a ação
GetFunction
da API do AWS Lambda (por exemplo, usando o comandoaws lambda get-function
da AWS CLI). -
Na resposta, o parâmetro
RepositoryType
seráS3
se o código estiver em um bucket do Amazon S3 ouECR
se o código estiver em um repositório do Amazon ECR. -
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. -
Carregue o código para um bucket do Amazon S3.
-
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.