Como posso usar uma função do Lambda criada em uma conta da AWS com um recurso personalizado do AWS CloudFormation em outra conta da AWS?

2 minuto de leitura
0

Quero criar uma função do AWS Lambda em uma conta e, em seguida, invocar essa função a partir de um recurso personalizado do AWS CloudFormation em outra conta.

Breve descrição

Você pode invocar uma função do Lambda de um recurso personalizado em outra conta somente se a função e o recurso estiverem na mesma região da AWS. A propriedade ServiceToken do AWS::CloudFormation::CustomResource deve estar na mesma região em que você criou a pilha do AWS CloudFormation. Você deve usar uma política baseada em recursos para conceder às contas, com seus recursos personalizados, permissão para invocar sua função do Lambda.

Observação: quando você associa uma função do Lambda a um recurso personalizado, o recurso personalizado invoca a função sempre que ela é criada, atualizada ou excluída. O CloudFormation chama uma API do Lambda para passar todos os dados da solicitação, como tipo de solicitação e propriedades do recurso, para a função.

Resolução

Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solucionar erros da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.

Execute o comando add-permission do AWS CLI em sua conta principal (Conta A). O comando dá à função do Lambda acesso ao recurso personalizado em outra conta (Conta B).

-ou-

Use o recurso AWS::Lambda::Permission para conceder permissão à Conta B para invocar a função do Lambda na Conta A:

  1. Quando uma função do Lambda é criada por meio de uma pilha na Conta A, use o recurso AWS::Lambda::Permission para conceder permissão à Conta B.
  2. Na Conta B, inicie a pilha do AWS CloudFormation que contém seu recurso personalizado.
    Observação: verifique se o ServiceToken se refere ao nome do recurso da Amazon (ARN) da função do Lambda da Conta A. Inclua quaisquer propriedades adicionais para enviar ao recurso personalizado como entrada.
  3. Use o Amazon CloudWatch Logs para confirmar que o recurso personalizado da Conta B invocou sua função do Lambda na Conta A.

Informações relacionadas

Conceder a outras contas acesso à função

AWS OFICIAL
AWS OFICIALAtualizada há 4 anos