

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á.

# Monitore seu aplicativo sem servidor com AWS SAM
<a name="serverless-monitoring"></a>

Depois de implantar a aplicação sem servidor, você poderá monitorá-la para fornecer insights sobre as operações dela e detectar anomalias, o que poderá ajudar na solução de problemas. Esta seção fornece detalhes sobre como monitorar a aplicação sem servidor. Isso inclui informações sobre como configurar a Amazon CloudWatch para notificá-lo quando detectar anomalias. Isso também fornece informações sobre como trabalhar com logs, incluindo o destaque de erros e dicas para a visualização, filtragem, busca e rastreamento de registros.

**Topics**
+ [Usando o CloudWatch Application Insights para monitorar seus aplicativos AWS SAM sem servidor](monitor-app-insights.md)
+ [Trabalhando com logons AWS SAM](serverless-sam-cli-logging.md)

# Usando o CloudWatch Application Insights para monitorar seus aplicativos AWS SAM sem servidor
<a name="monitor-app-insights"></a>

 O Amazon CloudWatch Application Insights ajuda você a monitorar AWS os recursos em seus aplicativos para ajudar a identificar possíveis problemas. Ele pode analisar dados AWS de recursos em busca de sinais de problemas e criar painéis automatizados para visualizá-los. Você pode configurar o CloudWatch Application Insights para usar com seus aplicativos AWS Serverless Application Model (AWS SAM). Para saber mais sobre o CloudWatch Application Insights, consulte o [Amazon CloudWatch Application Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch-application-insights.html) no *Guia CloudWatch do usuário da Amazon*. 

**Topics**
+ [Configurando o CloudWatch Application Insights com AWS SAM](#monitor-app-insights-configure)
+ [Próximas etapas](#monitor-app-insights-next)

## Configurando o CloudWatch Application Insights com AWS SAM
<a name="monitor-app-insights-configure"></a>

 Configure o CloudWatch Application Insights para seus AWS SAM aplicativos por meio da interface de linha de AWS SAM comando (AWS SAMCLI) ou por meio de seus AWS SAM modelos. 

### Configure por meio do AWS SAMCLI
<a name="monitor-app-insights-configure-cli"></a>

 Ao inicializar seu aplicativo com**sam init**, ative o CloudWatch Application Insights por meio do fluxo interativo ou usando a **--application-insights** opção. 

 Para ativar o CloudWatch Application Insights por meio do fluxo AWS SAMCLI interativo, insira **y** quando solicitado. 

```
Would you like to enable monitoring using CloudWatch Application Insights?
For more info, please view https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch-application-insights.html [y/N]:
```

 Para ativar o CloudWatch Application Insights com a **--application-insights** opção, faça o seguinte. 

```
sam init --application-insights
```

 Para saber mais sobre como usar o comando **sam init**, consulte [sam init](sam-cli-command-reference-sam-init.md). 

### Configurar por meio AWS SAM de modelos
<a name="monitor-app-insights-configure-template"></a>

 Ative o CloudWatch Application Insights definindo `AWS::ApplicationInsights::Application` os recursos `AWS::ResourceGroups::Group` e em seus AWS SAM modelos. 

```
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31 
...
Resources:
  ApplicationResourceGroup:
    Type: AWS::ResourceGroups::Group
    Properties:
      Name:
        Fn::Join:
        - ''
        - - ApplicationInsights-SAM-
        - Ref: AWS::StackName
      ResourceQuery:
        Type: CLOUDFORMATION_STACK_1_0
  ApplicationInsightsMonitoring:
    Type: AWS::ApplicationInsights::Application
    Properties:
      ResourceGroupName:
        Fn::Join:
          - ''
          - - ApplicationInsights-SAM-
          - Ref: AWS::StackName
        AutoConfigurationEnabled: 'true'
    DependsOn: ApplicationResourceGroup
```
+  `AWS::ResourceGroups::Group`— Cria um grupo para organizar seus AWS recursos a fim de gerenciar e automatizar tarefas em um grande número de recursos ao mesmo tempo. Aqui, você cria um grupo de recursos para usar com o CloudWatch Application Insights. Para obter mais informações sobre esse tipo de recurso, consulte [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-resourcegroups-group.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-resourcegroups-group.html) no *AWS CloudFormation Guia do usuário*. 
+  `AWS::ApplicationInsights::Application`— Configura o CloudWatch Application Insights para o grupo de recursos. Para obter mais informações sobre esse tipo de recurso, consulte [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationinsights-application.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationinsights-application.html) no *AWS CloudFormation Guia do usuário*. 

 Ambos os recursos são transmitidos automaticamente CloudFormation na implantação do aplicativo. Você pode usar a CloudFormation sintaxe em seu AWS SAM modelo para configurar ainda mais o CloudWatch Application Insights. Para obter mais informações, consulte [Usar CloudFormation modelos](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/appinsights-cloudformation.html) no *Guia do CloudWatch usuário da Amazon*. 

 Ao usar o **sam init --application-insights** comando, esses dois recursos são gerados automaticamente em seu AWS SAM modelo. Veja aqui um exemplo de um modelo gerado. 

```
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: >
  sam-app-test
  
  Sample SAM Template for sam-app-test

# More info about Globals: https://github.com/awslabs/serverless-application-model/blob/master/docs/globals.rst
Globals:
  Function:
    Timeout: 3
    MemorySize: 128

Resources:
  HelloWorldFunction:
    Type: AWS::Serverless::Function # More info about Function Resource: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction
    Properties:
      CodeUri: hello_world/
      Handler: app.lambda_handler
      Runtime: python3.9
      Architectures:
      - x86_64
      Events:
        HelloWorld:
          Type: Api # More info about API Event Source: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api
          Properties:
            Path: /hello
            Method: get

  ApplicationResourceGroup:
    Type: AWS::ResourceGroups::Group
    Properties:
      Name:
        Fn::Join:
        - ''
        - - ApplicationInsights-SAM-
        - Ref: AWS::StackName
      ResourceQuery:
      	Type: CLOUDFORMATION_STACK_1_0
  ApplicationInsightsMonitoring:
    Type: AWS::ApplicationInsights::Application
    Properties:
      ResourceGroupName:
        Fn::Join:
        - ''
        - - ApplicationInsights-SAM-
        - Ref: AWS::StackName
      AutoConfigurationEnabled: 'true'
    DependsOn: ApplicationResourceGroup
    
Outputs:
  # ServerlessRestApi is an implicit API created out of Events key under Serverless::Function
  # Find out more about other implicit resources you can reference within SAM
  # https://github.com/awslabs/serverless-application-model/blob/master/docs/internals/generated_resources.rst#api
  HelloWorldApi:
    Description: API Gateway endpoint URL for Prod stage for Hello World function
    Value: !Sub "https://${ServerlessRestApi}.execute-api.${AWS::Region}.amazonaws.com/Prod/hello/"
  HelloWorldFunction:
    Description: Hello World Lambda Function ARN
    Value: !GetAtt HelloWorldFunction.Arn
  HelloWorldFunctionIamRole:
    Description: Implicit IAM Role created for Hello World function
    Value: !GetAtt HelloWorldFunctionRole.Arn
```

## Próximas etapas
<a name="monitor-app-insights-next"></a>

 Depois de configurar o CloudWatch Application Insights, use **sam build** para criar seu aplicativo e **sam deploy** implantá-lo. Todos os recursos compatíveis com o CloudWatch Application Insights serão configurados para monitoramento. 
+  Para obter uma lista dos recursos compatíveis, consulte [Registros e métricas compatíveis](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/appinsights-logs-and-metrics.html) no *Guia CloudWatch do usuário da Amazon*. 
+  Para saber como acessar o CloudWatch Application Insights, consulte [Access CloudWatch Application Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/appinsights-accessing.html) no *Guia CloudWatch do usuário da Amazon*. 

# Trabalhando com logons AWS SAM
<a name="serverless-sam-cli-logging"></a>

Para simplificar a solução de problemas, o AWS SAMCLI tem um comando chamado `sam logs`. Esse comando permite que você busque registros gerados pela sua função do Lambda na linha de comando.

**nota**  
O `sam logs` comando funciona para todas as AWS Lambda funções, não apenas para aquelas que você implanta usando AWS SAM.

## Buscando registros por pilha CloudFormation
<a name="serverless-logging-cfn"></a>

Quando sua função faz parte de uma CloudFormation pilha, você pode buscar registros usando o ID lógico da função:

```
sam logs -n HelloWorldFunction --stack-name mystack
```

## Buscando registros pelo nome da função do Lambda
<a name="serverless-logging-function"></a>

Ou você pode buscar registros usando o nome da função:

```
sam logs -n mystack-HelloWorldFunction-1FJ8PD
```

## Registros de rejeitos
<a name="serverless-logging-tail"></a>

Adicione a opção `--tail` para aguardar os novos logs e vê-los quando eles chegam. Isso é útil durante a implantação ou quando você está solucionando um problema de produção.

```
sam logs -n HelloWorldFunction --stack-name mystack --tail
```

## Visualizando registros para um intervalo de tempo específico
<a name="serverless-logging-time-range"></a>

Você pode visualizar os registros de um intervalo de tempo específico usando as opções `-s` e `-e`:

```
sam logs -n HelloWorldFunction --stack-name mystack -s '10min ago' -e '2min ago'
```

## Filtragem de logs
<a name="serverless-logging-time-range"></a>

Use a opção `--filter`para encontrar rapidamente logs que correspondam a termos, frases ou valores em seus eventos de log:

```
sam logs -n HelloWorldFunction --stack-name mystack --filter "error"
```

Na saída, AWS SAM CLI sublinha todas as ocorrências da palavra "erro" para que você possa localizar facilmente a palavra-chave do filtro na saída do log.

## Destaques de erros
<a name="serverless-logging-error-highlight"></a>

Quando sua função do Lambda falha ou atinge o tempo limite, o AWS SAM CLI destaca a mensagem de tempo limite em vermelho. Isso ajuda você a localizar facilmente as execuções específicas que estão expirando em um fluxo gigante de saída do log.

## Impressão bonita em JSON
<a name="serverless-logging-error-highlight"></a>

Se suas mensagens de registro imprimirem strings JSON, o AWS SAM CLI imprimirá automaticamente o JSON para ajudar você a analisar e entender visualmente o JSON.