

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Supervise su aplicación sin servidor con AWS SAM
<a name="serverless-monitoring"></a>

Tras implementar la aplicación sin servidor, puede supervisarla para obtener información sobre sus operaciones y detectar anomalías, lo que puede ayudar a solucionar problemas. En esta sección se proporcionan detalles sobre la supervisión de una aplicación sin servidor. Esto incluye información sobre cómo configurar Amazon CloudWatch para que te notifique cuando detecte anomalías. También proporciona información sobre cómo trabajar con los registros, incluyendo información sobre los errores y consejos para ver, filtrar, buscar y guardar los registros.

**Topics**
+ [Uso de CloudWatch Application Insights para monitorear sus aplicaciones AWS SAM sin servidor](monitor-app-insights.md)
+ [Trabajar con inicios de sesión AWS SAM](serverless-sam-cli-logging.md)

# Uso de CloudWatch Application Insights para monitorear sus aplicaciones AWS SAM sin servidor
<a name="monitor-app-insights"></a>

 Amazon CloudWatch Application Insights le ayuda a supervisar los AWS recursos de sus aplicaciones para identificar posibles problemas. Puede analizar los datos AWS de los recursos en busca de señales de problemas y crear paneles automatizados para visualizarlos. Puede configurar CloudWatch Application Insights para utilizarla con sus AWS Serverless Application Model (AWS SAM) aplicaciones. Para obtener más información sobre CloudWatch Application Insights, consulte [Amazon CloudWatch Application Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch-application-insights.html) en la *Guía del CloudWatch usuario de Amazon*. 

**Topics**
+ [Configurar CloudWatch Application Insights con AWS SAM](#monitor-app-insights-configure)
+ [Pasos a seguir a continuación](#monitor-app-insights-next)

## Configurar CloudWatch Application Insights con AWS SAM
<a name="monitor-app-insights-configure"></a>

 Configure CloudWatch Application Insights para sus AWS SAM aplicaciones mediante la interfaz de línea de AWS SAM comandos (AWS SAMCLI) o mediante sus AWS SAM plantillas. 

### Configura mediante la CLI de AWS SAM
<a name="monitor-app-insights-configure-cli"></a>

 Al inicializar la aplicación con**sam init**, active CloudWatch Application Insights mediante el flujo interactivo o mediante la **--application-insights** opción. 

 Para activar CloudWatch Application Insights a través del flujo AWS SAMCLI interactivo, introdúzcalo **y** cuando se le solicite. 

```
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 activar CloudWatch Application Insights con la **--application-insights** opción, haga lo siguiente. 

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

 Para obtener más información sobre el uso del comando **sam init**, consulta [sam init](sam-cli-command-reference-sam-init.md). 

### Configure mediante AWS SAM plantillas
<a name="monitor-app-insights-configure-template"></a>

 Active CloudWatch Application Insights definiendo los `AWS::ApplicationInsights::Application` recursos `AWS::ResourceGroups::Group` y los recursos de sus AWS SAM plantillas. 

```
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`— Crea un grupo para organizar sus AWS recursos con el fin de gestionar y automatizar las tareas de una gran cantidad de recursos a la vez. Aquí puede crear un grupo de recursos para usarlo con CloudWatch Application Insights. Para obtener más información sobre este tipo de recurso, consulta [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) en la *Guía del usuario AWS CloudFormation *. 
+  `AWS::ApplicationInsights::Application`— Configura CloudWatch Application Insights para el grupo de recursos. Para obtener más información sobre este tipo de recurso, consulta [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) en la *Guía del usuario AWS CloudFormation *. 

 Ambos recursos se transfieren automáticamente CloudFormation al implementar la aplicación. Puede usar la CloudFormation sintaxis de la AWS SAM plantilla para configurar aún más CloudWatch Application Insights. Para obtener más información, consulta [Uso de CloudFormation plantillas](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/appinsights-cloudformation.html) en la *Guía del CloudWatch usuario de Amazon*. 

 Al utilizar el **sam init --application-insights** comando, ambos recursos se generan automáticamente en la AWS SAM plantilla. A continuación, se muestra un ejemplo de una plantilla generada. 

```
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
```

## Pasos a seguir a continuación
<a name="monitor-app-insights-next"></a>

 Tras configurar CloudWatch Application Insights, utilícelo **sam build** **sam deploy** para crear y desplegar la aplicación. Todos los recursos compatibles con CloudWatch Application Insights se configurarán para su supervisión. 
+  Para ver una lista de los recursos compatibles, consulta [Registros y métricas compatibles](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/appinsights-logs-and-metrics.html) en la *Guía del CloudWatch usuario de Amazon*. 
+  Para obtener información sobre cómo acceder a CloudWatch Application Insights, consulte [Access CloudWatch Application Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/appinsights-accessing.html) en la *Guía del CloudWatch usuario de Amazon*. 

# Trabajar con inicios de sesión AWS SAM
<a name="serverless-sam-cli-logging"></a>

Para simplificar la solución de problemas, la CLI de AWS SAM tiene un comando llamado `sam logs`. Este comando te permite obtener los registros generados por la función de Lambda desde la línea de comandos.

**nota**  
El `sam logs` comando funciona para todas AWS Lambda las funciones, no solo para las que se despliegan AWS SAM.

## Obtención de registros por pila CloudFormation
<a name="serverless-logging-cfn"></a>

Cuando tu función forma parte de una CloudFormation pila, puedes recuperar los registros mediante el identificador lógico de la función:

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

## Obtención de registros por nombre de función de Lambda
<a name="serverless-logging-function"></a>

O bien, puede obtener registros utilizando el nombre de la función:

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

## Rastreo de registros
<a name="serverless-logging-tail"></a>

Agrega la opción `--tail` para esperar a nuevos registros y verlos a medida que llegan. Esto es muy útil durante la implementación o al solucionar un problema de producción:

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

## Visualización de registros para un intervalo de tiempo específico
<a name="serverless-logging-time-range"></a>

Puedes ver los registros de un intervalo de tiempo específico mediante las opciones `-s` y `-e`:

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

## Filtrado de registros
<a name="serverless-logging-time-range"></a>

Utiliza la opción `--filter` para encontrar rápidamente registros que coincidan con términos, frases o valores de sus eventos de registro:

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

En la salida, la CLI de AWS SAM subraya todas las veces que aparece la palabra "error" para que pueda localizar fácilmente la palabra clave de filtro en la salida del registro.

## Resaltado de errores
<a name="serverless-logging-error-highlight"></a>

Cuando la función de Lambda se bloquea o se agota el tiempo de espera, la CLI de AWS SAM resalta el mensaje de tiempo de espera en rojo. Esto ayuda a localizar fácilmente las ejecuciones específicas cuyo tiempo de espera se ha agotado en un flujo gigante de salida de registro.

## Impresión clara de código JSON
<a name="serverless-logging-error-highlight"></a>

Si sus mensajes de registro imprimen cadenas JSON, la CLI de AWS SAM imprime automáticamente el código JSON para ayudarle a analizarlo y entenderlo visualmente.