Tutorial: Crie uma API REST com uma integração de proxy do Lambda entre contas - Amazon API Gateway

Tutorial: Crie uma API REST com uma integração de proxy do Lambda entre contas

Agora você pode usar a função do AWS Lambda de uma conta da AWS diferente como seu backend de integração da API. Cada conta pode estar em qualquer região onde o Amazon API Gateway está disponível. Isso facilita o gerenciamento centralizado e o compartilhamento das funções do Lambda de backend em várias APIs.

Nesta seção, mostramos como configurar a integração de proxy do Lambda entre contas usando o console do Amazon API Gateway.

Criar uma API para integração do Lambda entre contas do API Gateway

Como criar uma API
  1. Inicie uma sessão no console do API Gateway em https://console.aws.amazon.com/apigateway.

  2. Se esta for a primeira vez que você usa o API Gateway, você verá uma página com os recursos do serviço. Em REST API, escolha Build (Criar). Quando o pop-up Create Example API (Criar API de exemplo) for exibido, escolha OK.

    Se essa não for a primeira vez que você usa o API Gateway, escolha Create API (Criar API). Em REST API, escolha Build (Criar).

  3. Em API name (Nome da API), insira CrossAccountLambdaAPI.

  4. (Opcional) Em Description (Descrição), insira uma descrição.

  5. Mantenha Tipo de endpoint da API definido como Regional.

  6. Selecione Criar API.

Criar a função de integração do Lambda em outra conta

Agora você criará uma função do Lambda em uma conta diferente daquela em que criou a API demonstrativa.

Criar uma função do Lambda em outra conta
  1. Faça login no console do Lambda usando uma conta diferente daquela em que você criou sua API do API Gateway.

  2. Escolha Create function (Criar função).

  3. Escolha Author from scratch (Criar do zero).

  4. Em Author from scratch (Criar do zero), faça o seguinte:

    1. Em Function name (Nome da função), insira um nome.

    2. Na lista suspensa Runtime (Tempo de execução), escolha um tempo de execução Node.js compatível.

    3. Em Permissions (Permissões), expanda Choose or create an execution role (Escolher ou criar uma função de execução). É possível criar uma função ou escolher uma função existente.

    4. Escolha Create function (Criar função) para continuar.

  5. Role para baixo, até o painel Function code (Código da função).

  6. Insira a implementação da função Node.js de Tutorial: Crie uma API REST com uma integração de proxy do Lambda.

  7. Escolha Deploy (Implantar).

  8. Anote o ARN completo da sua função (no canto superior direito do painel de funções do Lambda). Você precisará dele ao criar a integração do Lambda entre contas.

Configurar a integração do Lambda entre contas

Depois de ter uma função de integração do Lambda em uma conta diferente, você poderá usar o console do API Gateway para adicioná-la à sua API na sua primeira conta.

nota

Se você estiver configurando um autorizador entre regiões e entre contas, o sourceArn que é adicionado à função de destino deve usar a região da função, e não a região da API.

Depois de criar uma API, você criará um recurso. Normalmente, os recursos da API são organizados em uma árvore de recursos, de acordo com a lógica do aplicativo. Neste exemplo, você criará um recurso /helloworld.

Para criar um recurso
  1. Selecione o recurso / e, depois, escolha Criar recurso.

  2. Mantenha Recurso proxy desativado.

  3. Mantenha Caminho do recurso como /.

  4. Em Resource Name (Nome do recurso), insira helloworld.

  5. Mantenha CORS (Compartilhamento de recursos de origem cruzada) desativado.

  6. Selecione Criar recurso.

Depois de criar um recurso, você criará um método GET. Você vai integrar o método GET a uma função do Lambda em outra conta.

Como criar um método GET
  1. Selecione o recurso /helloworld e, depois, Criar método.

  2. Em Tipo de método, selecione GET.

  3. Em Tipo de integração, selecione Função do Lambda.

  4. Ative Integração de proxy do Lambda.

  5. Em Função do Lambda, insira o ARN completo da função do Lambda na Etapa 1.

    No console do Lambda, você pode encontrar o ARN da sua função no canto superior direito da janela.

  6. Ao inserir o ARN, uma string de comando aws lambda add-permission é exibida. Esta política concederá acesso da sua primeira conta à função do Lambda da segunda conta. Copie e cole a string de comando aws lambda add-permission em uma janela da AWS CLI configurada para a segunda conta.

  7. Escolha Criar método.

É possível ver a política atualizada da função no console do Lambda.

(Opcional) Como ver a política atualizada
  1. Faça login no AWS Management Console e abra o console do AWS Lambda em https://console.aws.amazon.com/lambda/.

  2. Selecione a função do Lambda.

  3. Escolha Permissions (Permissões).

    É necessário ver uma política Allow com uma cláusula Condition na qual o AWS:SourceArn é o ARN para o método GET da sua API.