Configurar o AWS X-Ray com APIs REST do API Gateway
Nesta seção, você encontrará informações detalhadas sobre como configurar o AWS X-Ray com APIs REST do API Gateway.
Tópicos
Modos de rastreamento do X-Ray para o API Gateway
O caminho de uma solicitação pelo seu aplicativo é controlado com um ID de rastreamento. Um rastreamento coleta todos os segmentos gerados por uma única solicitação, geralmente uma solicitação HTTP GET
ou POST
.
Existem dois modos de rastreamento para uma API do API Gateway:
-
Passivo: essa será a configuração padrão se o rastreamento do X-Ray não estiver habilitado em um estágio da API. Essa abordagem significa que a API do API Gateway só é rastreada se o X-Ray estiver habilitado em um serviço upstream.
-
Ativo: quando um estágio da API do API Gateway tem esta configuração, o API Gateway faz a amostragem automaticamente de solicitações de invocação da API, com base no algoritmo de amostragem especificado pelo X-Ray.
Quando o rastreamento ativo estiver habilitado em um estágio, o API Gateway cria uma função vinculada ao serviço na sua conta, caso a função ainda não exista. A função é chamada de
AWSServiceRoleForAPIGateway
e terá a política gerenciadaAPIGatewayServiceRolePolicy
anexada à ela. Para obter mais informações sobre funções vinculadas a um serviço, consulte Como usar funções vinculadas a serviços.nota
O X-Ray aplica um algoritmo de amostragem para garantir que o rastreamento seja eficiente, enquanto ainda fornece uma amostra representativa das solicitações recebidas pela API. O algoritmo de amostragem padrão é uma solicitação por segundo, com 5% de solicitações de amostra fora do limite.
Você pode alterar o modo de rastreamento da sua API usando o console de gerenciamento do API Gateway, a CLI do API Gateway ou um SDK da AWS.
Permissões para rastreamento do X-Ray
Quando você habilita o rastreamento do X-Ray em um estágio, o API Gateway cria uma função vinculada ao serviço na sua conta, caso a função ainda não exista. A função é chamada de AWSServiceRoleForAPIGateway
e terá a política gerenciada APIGatewayServiceRolePolicy
anexada à ela. Para obter mais informações sobre funções vinculadas a um serviço, consulte Como usar funções vinculadas a serviços.
Habilitar o rastreamento do X-Ray no console do API Gateway
Use o console do Amazon API Gateway para habilitar o rastreamento ativo em um estágio da API.
Estas instruções presumem que você já implantou a API em um estágio.
Inicie uma sessão no console do API Gateway em https://console.aws.amazon.com/apigateway
. -
Escolha a API e, no painel de navegação principal, selecione Estágios.
-
No painel Estágios, selecione um estágio.
-
Na seção Logs e rastreamento, selecione Editar.
-
Para habilitar o rastreamento ativo com X-Ray, selecione Habilitar rastreamento com X-Ray para ativar o rastreamento com X-Ray.
Escolha Salvar alterações.
Assim que você tiver habilitado o X-Ray para o estágio da API, use o console de gerenciamento do X-Ray para visualizar os rastreamentos e os mapas de serviço.
Habilitar o rastreamento do AWS X-Ray usando a CLI do API Gateway
Para usar a AWS CLI a fim de habilitar o rastreamento ativo do X-Ray para um estágio da API ao criar o estágio, chame o comando create-stage conforme o seguinte exemplo:
aws apigateway create-stage \ --rest-api-id
{rest-api-id}
\ --stage-name{stage-name}
\ --deployment-id{deployment-id}
\ --region{region}
\ --tracing-enabled=true
Veja a seguir um exemplo de saída para uma invocação bem-sucedida:
{ "tracingEnabled": true, "stageName":
{stage-name}
, "cacheClusterEnabled": false, "cacheClusterStatus": "NOT_AVAILABLE", "deploymentId":{deployment-id}
, "lastUpdatedDate": 1533849811, "createdDate": 1533849811, "methodSettings": {} }
Para usar a AWS CLI a fim de desabilitar o rastreamento ativo do X-Ray para um estágio da API ao criar o estágio, chame o comando create-stage conforme o seguinte exemplo:
aws apigateway create-stage \ --rest-api-id
{rest-api-id}
\ --stage-name{stage-name}
\ --deployment-id{deployment-id}
\ --region{region}
\ --tracing-enabled=false
Veja a seguir um exemplo de saída para uma invocação bem-sucedida:
{ "tracingEnabled": false, "stageName":
{stage-name}
, "cacheClusterEnabled": false, "cacheClusterStatus": "NOT_AVAILABLE", "deploymentId":{deployment-id}
, "lastUpdatedDate": 1533849811, "createdDate": 1533849811, "methodSettings": {} }
Para usar a AWS CLI a fim de habilitar o rastreamento ativo do X-Ray para uma API que já foi implantada, chame o comando update-stage da seguinte forma:
aws apigateway update-stage \ --rest-api-id
{rest-api-id}
\ --stage-name{stage-name}
\ --patch-operations op=replace,path=/tracingEnabled,value=true
Para usar a AWS CLI a fim de desabilitar o rastreamento ativo do X-Ray para uma API que já foi implantada, chame o comando update-stage conforme o seguinte exemplo:
aws apigateway update-stage \ --rest-api-id
{rest-api-id}
\ --stage-name{stage-name}
\ --region{region}
\ --patch-operations op=replace,path=/tracingEnabled,value=false
Veja a seguir um exemplo de saída para uma invocação bem-sucedida:
{ "tracingEnabled": false, "stageName":
{stage-name}
, "cacheClusterEnabled": false, "cacheClusterStatus": "NOT_AVAILABLE", "deploymentId":{deployment-id}
, "lastUpdatedDate": 1533850033, "createdDate": 1533849811, "methodSettings": {} }
Assim que você tiver habilitado o X-Ray para o estágio da sua API, use a CLI do X-Ray para recuperar as informações de rastreamento. Consulte mais informações em Using the X-Ray API with the AWS CLI.