

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Instrumentar frameworks da web implantadas em ambientes sem servidor
<a name="xray-sdk-python-serverless"></a>

**nota**  
Aviso de SDK/Daemon manutenção do X-Ray — Em 25 de fevereiro de 2026, o AWS X-Ray SDKs/Daemon entrará no modo de manutenção, onde AWS limitará as versões do X-Ray SDK e do Daemon para tratar apenas de problemas de segurança. Para obter mais informações sobre a linha do tempo do suporte, consulte [Cronograma de suporte do X-Ray SDK e do Daemon Support](xray-sdk-daemon-timeline.md). Recomendamos migrar para o. OpenTelemetry Para obter mais informações sobre a migração para OpenTelemetry, consulte [Migrando da instrumentação X-Ray para a instrumentação](https://docs.aws.amazon.com/xray/latest/devguide/xray-sdk-migration.html). OpenTelemetry 

O AWS X-Ray SDK para Python oferece suporte a estruturas web de instrumentação implantadas em aplicativos sem servidor. Sem servidor é a arquitetura nativa da nuvem que permite transferir mais das suas responsabilidades operacionais à AWS, aumentando a agilidade e a inovação.

Arquitetura sem servidor é um modelo de aplicativo de software que permite que você crie e execute aplicativos e serviços sem se preocupar com servidores. Ela elimina as tarefas de gerenciamento de infraestrutura, como provisionamento de servidores ou de clusters, aplicação de patches, manutenção do sistema operacional e provisionamento de capacidade. Você pode criar soluções sem servidor para praticamente qualquer tipo de aplicativo ou serviço de back-end, e cuidaremos de tudo o que for necessário para executar e escalar aplicativos com alta disponibilidade.

Este tutorial mostra como instrumentar automaticamente AWS X-Ray em uma estrutura web, como Flask ou Django, que é implantada em um ambiente sem servidor. A instrumentação X-Ray do aplicativo permite que você visualize todas as chamadas downstream feitas, começando pelo Amazon API Gateway até sua AWS Lambda função, e as chamadas de saída que seu aplicativo faz. 

O X-Ray SDK para Python é compatível com os seguintes frameworks de aplicação Python:
+ Flask versão 0.8 ou posterior
+ Django versão 1.0 ou posterior

Este tutorial desenvolve um exemplo de aplicação sem servidor que é implantada no Lambda e invocada pelo API Gateway. Este tutorial usa o Zappa para implantar automaticamente a aplicação no Lambda e configurar o endpoint do API Gateway.

## Pré-requisitos
<a name="xray-sdk-python-serverless-prereqs"></a>
+ [Zappa](https://github.com/Miserlou/Zappa)
+ [Python](https://docs.aws.amazon.com/xray/latest/devguide/xray-sdk-python.html): versão 2.7 ou 3.6.
+ [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)— Verifique se você AWS CLI está configurado com a conta e Região da AWS na qual você implantará seu aplicativo. 
+ [Pip](https://pypi.org/project/pip/)
+ [Virtualenv](https://virtualenv.pypa.io/en/latest/)

## Etapa 1: Criar um ambiente
<a name="xray-sdk-python-serverless-environment"></a>

Nesta etapa, você cria um ambiente virtual usando `virtualenv` para hospedar um aplicativo.

1. Usando o AWS CLI, crie um diretório para o aplicativo. Altere para o novo diretório. 

   ```
   mkdir {{serverless_application}}
   cd {{serverless_application}}
   ```

1. Em seguida, crie um ambiente virtual no novo diretório. Use o comando a seguir para ativá-lo: 

   ```
   # Create our virtual environment
   virtualenv {{serverless_env}}
   
   # Activate it
   source {{serverless_env}}/bin/activate
   ```

1. Instale o X-Ray, o Flask, o Zappa e a biblioteca de solicitações em seu ambiente.

   ```
   # Install X-Ray, Flask, Zappa, and Requests into your environment
   pip install aws-xray-sdk flask zappa requests
   ```

1. Adicione o código do aplicativo ao diretório `serverless_application`. Para este exemplo, podemos criar a partir do exemplo [Hello World](https://flask.palletsprojects.com/en/3.0.x/quickstart/) do Flask. 

   No diretório `serverless_application`, crie um arquivo chamado `my_app.py`. Depois, use um editor de texto para adicionar os comandos a seguir. Este aplicativo instrumenta a biblioteca de solicitações, aplica patches ao middleware do aplicativo Flask e abre o endpoint `'/'`.

   ```
   # Import the X-Ray modules
   from aws_xray_sdk.ext.flask.middleware import XRayMiddleware
   from aws_xray_sdk.core import patcher, xray_recorder
   from flask import Flask
   import requests
   
   # Patch the requests module to enable automatic instrumentation
   patcher.patch(('requests',))
   
   app = Flask(__name__)
   
   # Configure the X-Ray recorder to generate segments with our service name
   xray_recorder.configure(service='{{My First Serverless App}}')
   
   # Instrument the Flask application
   XRayMiddleware(app, xray_recorder)
    
   @app.route('/')
   def hello_world():
       resp = requests.get("https://aws.amazon.com")
       return 'Hello, World: %s' % resp.url
   ```

## Etapa 2: Criar e implantar um ambiente do Zappa
<a name="xray-sdk-python-serverless-zappa"></a>

Nesta etapa, você usará o Zappa para configurar automaticamente um endpoint do API Gateway e implantá-lo no Lambda.

1. Inicialize o Zappa de dentro do diretório `serverless_application`. Para este exemplo, usamos as configurações padrão, mas se você tiver preferências de personalização, o Zappa exibirá as instruções de configuração.

   ```
   zappa init
   ```

   ```
   What do you want to call this environment (default 'dev'): {{dev}}
   ...
   What do you want to call your bucket? (default 'zappa-*******'): {{zappa-*******}}
   ...
   ...
   It looks like this is a Flask application.
   What's the modular path to your app's function?
   This will likely be something like 'your_module.app'.
   We discovered: my_app.app
   Where is your app's function? (default 'my_app.app'): {{my_app.app}}
   ...
   Would you like to deploy this application globally? (default 'n') [y/n/(p)rimary]: {{n}}
   ```

1. Habilite o X-Ray. Abra o arquivo `zappa_settings.json` e verifique se ele é similar ao exemplo.

   ```
   {
       "dev": {
           "app_function": "my_app.app",
           "aws_region": "us-west-2",
           "profile_name": "default",
           "project_name": "serverless-exam",
           "runtime": "python2.7",
           "s3_bucket": "zappa-*********"
       }
   }
   ```

1. Adicione `"xray_tracing": true` como uma entrada ao arquivo de configuração.

   ```
   {
       "dev": {
           "app_function": "my_app.app",
           "aws_region": "us-west-2",
           "profile_name": "default",
           "project_name": "serverless-exam",
           "runtime": "python2.7",
           "s3_bucket": "zappa-*********",
           "xray_tracing": true
       }
   }
   ```

1. Implante o aplicativo . Isso configura automaticamente o endpoint do API Gateway e carrega o código no Lambda.

   ```
   zappa deploy
   ```

   ```
   ...
   Deploying API Gateway..
   Deployment complete!: https://**********.execute-api.us-west-2.amazonaws.com/{{dev}}
   ```

## Etapa 3: Habilitar o rastreamento do X-Ray para o API Gateway
<a name="xray-sdk-python-serverless-xray"></a>

Nesta etapa, você interagirá com o console do API Gateway para habilitar o rastreamento do X-Ray.

1. Faça login no Console de gerenciamento da AWS e abra o console do API Gateway em [https://console.aws.amazon.com/apigateway/](https://console.aws.amazon.com/apigateway/). 

1. Encontre sua API recém-gerada. Ele deve ser semelhante a `serverless-exam-dev`.

1. Escolha **Estágios**.

1. Escolha o nome de seu estágio de implantação. O padrão é `dev`.

1. Na guia **Logs/Tracing (Logs/rastreamento)**, marque a caixa **Enable X-Ray Tracing (Habilitar rastreamento do X-Ray)**.

1. Escolha **Salvar alterações**.

1. Acesse o endpoint em seu navegador. Se você usou o aplicativo de exemplo `Hello World`, ele deve exibir o seguinte.

   ```
   "Hello, World: https://aws.amazon.com/"
   ```

## Etapa 4: Visualizar o rastreamento criado
<a name="xray-sdk-python-serverless-trace"></a>

Nesta etapa, você interagirá com o console do X-Ray para visualizar o rastreamento criado pela aplicação de exemplo. Para obter uma demonstração detalhada sobre a análise de rastreamento, consulte [Visualizar o mapa de serviço](https://docs.aws.amazon.com/xray/latest/devguide/xray-console.html#xray-console-servicemap).

1. Faça login Console de gerenciamento da AWS e abra o console X-Ray em [https://console.aws.amazon.com/xray/casa](https://console.aws.amazon.com/xray/home).

1. Visualize os segmentos gerados pelo API Gateway, pela função do Lambda e pelo contêiner do Lambda.

1. No segmento da função do Lambda, visualize um subsegmento chamado `My First Serverless App`. Ele é seguido por um segundo subsegmento chamado `https://aws.amazon.com`.

1. Durante a inicialização, o Lambda também pode gerar um terceiro subsegmento chamado `initialization`.

![Visualização de segmento de rastreamento.](https://docs.aws.amazon.com/pt_br/xray/latest/devguide/images/serverless-traceView.png)


![Visualização do gráfico de serviço](https://docs.aws.amazon.com/pt_br/xray/latest/devguide/images/serverless-serviceView.png)


## Etapa 5: limpar
<a name="xray-sdk-python-serverless-cleanup"></a>

Sempre encerre os recursos que não estão mais em uso para evitar o acúmulo de custos inesperados. Como este tutorial demonstra, ferramentas como o Zappa simplificam a reimplantação sem servidor.

Para remover sua aplicação do Lambda, do API Gateway e do Amazon S3, execute o comando a seguir no diretório do projeto usando a AWS CLI. 

```
zappa undeploy {{dev}}
```

## Próximas etapas
<a name="xray-sdk-python-serverless-next"></a>

Adicione mais recursos ao seu aplicativo adicionando AWS clientes e instrumentando-os com o X-Ray. Saiba mais sobre as opções de computação sem servidor em [Sem servidor na AWS](https://aws.amazon.com/serverless).