Variáveis de estágio são pares de chave-valor que você pode definir como atributos de configuração associados a um estágio de implantação de uma API REST. Elas atuam como variáveis de ambiente e podem ser usadas em seus modelos de configuração e mapeamento de API. Com estágios de implantação no API Gateway, é possível gerenciar vários estágios de versão para cada API e usar variáveis de estágio. Você pode configurar um estágio de implantação da API para interagir com diferentes endpoints de backend.
As variáveis de estágio não se destinam a ser usadas para dados confidenciais, como credenciais. Para transmitir dados confidenciais para integrações, use um autorizador do AWS Lambda. Você pode passar dados confidenciais para integrações na saída do autorizador do Lambda. Para saber mais, consulte Saída de um autorizador do Lambda para o API Gateway.
Casos de uso de variáveis de estágio
Veja a seguir casos de uso para suas variáveis de estágio.
- Especificar um endpoint de backend diferente
Sua API pode transmitir uma solicitação
GET
como um proxy HTTP ao host da web de backend. É possível usar uma variável de estágio de forma que, quando chamadores da API invocarem seu endpoint de produção, o API Gateway chameexample.com
. Então, quando os chamadores da API invocam o estágio beta, o API Gateway chama um host da web diferente, comobeta.example.com
. Da mesma forma, variáveis de estágio podem ser usadas para especificar um nome de função AWS Lambda para cada estágio da sua API. Não é possível usar uma variável de estágio para definir um endpoint de integração diferente, como apontar a solicitaçãoGET
para uma integração de proxy HTTP em um estágio e uma integração de proxy do Lambda em outro estágio.Ao especificar um nome de função do Lambda como um valor de variável de estágio, você deve configurar as permissões nessa função do Lambda manualmente. Quando você especifica uma função do Lambda no console do API Gateway, um comando AWS CLI é exibido para configurar as permissões adequadas. Também é possível usar o comando AWS CLI a seguir para fazer isso.
aws lambda add-permission --function-name "arn:aws:lambda:
us-east-2
:123456789012
:function:my-function
" --source-arn "arn:aws:execute-api:us-east-2
:123456789012
:api_id
/*/HTTP_METHOD/resource" --principal apigateway.amazonaws.com --statement-id apigateway-access --action lambda:InvokeFunction- Transmitir informações usando modelos de mapeamento
É possível acessar variáveis de estágio em modelos de mapeamento ou transmitir parâmetros de configuração ao backend HTTP ou AWS Lambda. Por exemplo, talvez você queira reutilizar a mesma função do Lambda para vários estágios na sua API, mas a função deve ler dados de outra tabela do Amazon DynamoDB, dependendo do estágio. Nos modelos de mapeamento que geram a solicitação para a função do Lambda, você pode usar variáveis de estágio para transmitir o nome da tabela ao Lambda.
Para usar uma variável de estágio, primeiro você deve configurar uma variável de estágio e, depois, atribuir a ela um valor. Por exemplo, para personalizar o endpoint de integração HTTP, primeiro crie a variável de estágio url
e, depois, na solicitação de integração da sua API, insira o valor da variável de estágio, http://${stageVariables.url}
. Esse valor instrui o API Gateway a substituir sua variável de estágio ${}
em tempo de execução, dependendo de qual estágio sua API está executando. Para ter mais informações, consulte Configurar variáveis de estágio para APIs REST no API Gateway.