

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.

# Depure su aplicación sin servidor con AWS SAM
<a name="debug-application"></a>

Después de probar la aplicación, ya puede depurar cualquier problema que haya encontrado. Con la interfaz de línea de AWS SAM comandos (CLI), puede probar y depurar localmente su aplicación sin servidor antes de subirla a la nube. AWS La depuración de la aplicación identifica y corrige los problemas o errores de la aplicación.

Puede utilizarla AWS SAM para realizar una depuración gradual, que consiste en ejecutar el código una línea o una instrucción a la vez. Al invocar localmente una función Lambda en modo de depuración dentro AWS SAMCLI del, puede adjuntarle un depurador. Con el depurador, puede revisar el código línea por línea, ver los valores de varias variables y solucionar problemas del mismo modo que lo haría con cualquier otra aplicación. Puedes comprobar si tu aplicación se comporta como se espera, depurar los errores y solucionar cualquier problema antes de seguir los pasos de empaquetado e implementación de la aplicación.

**nota**  
Si la aplicación incluye una o más capas, al ejecutar y depurar la aplicación de forma local, el paquete de capas se descarga y se almacena en caché en el host local. Para obtener más información, consulta [Cómo se almacenan las capas en caché local](serverless-sam-cli-layers.md#local-testing-with-layers).

**Topics**
+ [Depure funciones localmente con AWS SAM](serverless-sam-cli-using-debugging.md)
+ [Pase varios argumentos de tiempo de ejecución al depurar con AWS SAM](serverless-sam-cli-using-debugging-additional-arguments.md)
+ [Valide sus AWS SAM aplicaciones con CloudFormation Linter](validate-cfn-lint.md)

# Depure funciones localmente con AWS SAM
<a name="serverless-sam-cli-using-debugging"></a>

Puede utilizarlas AWS SAM con una variedad de AWS kits de herramientas y depuradores para probar y depurar sus aplicaciones sin servidor de forma local. La depuración gradual de las funciones de Lambda le permite identificar y corregir los problemas de la aplicación, línea por línea o instrucción por instrucción, en su entorno local.

Algunas de las formas en que puede realizar una depuración gradual local son estableciendo puntos de interrupción, inspeccionando variables y ejecutando el código de la función línea por línea. La depuración gradual local estrecha el ciclo de retroalimentación, ya que te permite encontrar y solucionar los problemas que puedan surgir en la nube.

Puede usar los AWS kits de herramientas para depurar y también puede ejecutarlos en modo de depuración. AWS SAM Para obtener más información, consulte los temas de esta sección. 

## Uso de kits de herramientas AWS
<a name="serverless-sam-cli-using-aws-toolkits"></a>

AWS Los kits de herramientas son complementos de entornos de desarrollo (IDE) integrados que permiten realizar muchas tareas de depuración habituales, como establecer puntos de interrupción, inspeccionar variables y ejecutar el código de la función línea por línea. AWS Los kits de herramientas facilitan el desarrollo, la depuración y la implementación de aplicaciones sin servidor creadas con ellas. AWS SAM Proporcionan una experiencia para crear, probar, depurar, implementar e invocar funciones de Lambda integradas en su IDE.

Para obtener más información sobre los AWS kits de herramientas con los que puede utilizar AWS SAM, consulte lo siguiente:
+ [AWS Toolkit for Visual Studio Code](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/)
+ [AWS Cloud9](https://docs.aws.amazon.com/cloud9/latest/user-guide/)
+ [AWS Toolkit for JetBrains](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/)

Hay una variedad de AWS kits de herramientas que funcionan con diferentes combinaciones IDEs y tiempos de ejecución. En la siguiente tabla se enumeran las IDE/runtime combinaciones más comunes que permiten la depuración gradual de las aplicaciones: AWS SAM 


| IDE | Tiempo de ejecución | AWS Kit de herramientas | Instrucciones para la depuración gradual | 
| --- | --- | --- | --- | 
| Visual Studio Code |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/serverless-application-model/latest/developerguide/serverless-sam-cli-using-debugging.html)  | AWS Toolkit for Visual Studio Code | [Trabajar con Aplicación sin servidor de AWS](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/serverless-apps.html) en la Guía del usuario de AWS Toolkit for Visual Studio Code   | 
| AWS Cloud9 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/serverless-application-model/latest/developerguide/serverless-sam-cli-using-debugging.html)  | AWS Cloud9, con el AWS kit de herramientas activado 1 |  [Trabajar con aplicaciones AWS sin servidor mediante el AWS kit de herramientas de la](https://docs.aws.amazon.com/cloud9/latest/user-guide/serverless-apps-toolkit.html) *Guía del AWS Cloud9 usuario.*  | 
| WebStorm | Node.js | AWS Toolkit for JetBrains2 |  [Ejecución (invocación) o depuración de una función local](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/invoke-lambda.html) en el *AWS Toolkit for JetBrains*  | 
| PyCharm | Python | AWS Toolkit for JetBrains2 |  [Ejecución (invocación) o depuración de una función local](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/invoke-lambda.html) en el *AWS Toolkit for JetBrains*  | 
| Rider | .NET | AWS Toolkit for JetBrains2 |  [Ejecución (invocación) o depuración de una función local](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/invoke-lambda.html) en el *AWS Toolkit for JetBrains*  | 
| IntelliJ | Java | AWS Toolkit for JetBrains2 |  [Ejecución (invocación) o depuración de una función local](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/invoke-lambda.html) en el *AWS Toolkit for JetBrains*  | 
| GoLand | Go | AWS Toolkit for JetBrains2 |  [Ejecución (invocación) o depuración de una función local](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/invoke-lambda.html) en el *AWS Toolkit for JetBrains*  | 

**Notas:**

1. Para poder AWS Cloud9 depurar AWS SAM aplicaciones paso a paso, el AWS kit de herramientas debe estar habilitado. *Para obtener más información, consulte [Habilitar el AWS kit de herramientas en la Guía del](https://docs.aws.amazon.com/cloud9/latest/user-guide/toolkit-welcome.html#access-toolkit) usuario.AWS Cloud9 *

1. Para utilizar las AWS Toolkit for JetBrains AWS SAM aplicaciones de depuración paso a paso, primero debe instalarlas y configurarlas siguiendo las instrucciones que se encuentran en [Instalación del AWS Toolkit for JetBrains](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/setup-toolkit.html). *AWS Toolkit for JetBrains*

## Se ejecuta AWS SAM localmente en modo de depuración
<a name="serverless-sam-cli-running-locally"></a>

[https://pypi.org/project/ptvsd/](https://pypi.org/project/ptvsd/)

Para ejecutar AWS SAM en modo de depuración, usa comandos o con la opción o. [sam local invoke](sam-cli-command-reference-sam-local-invoke.md) [sam local start-api](sam-cli-command-reference-sam-local-start-api.md) `--debug-port` `-d`

Por ejemplo:

```
# Invoke a function locally in debug mode on port 5858
sam local invoke -d 5858 <function logical id>

# Start local API Gateway in debug mode on port 5858
sam local start-api -d 5858
```

**nota**  
Si utiliza `sam local start-api`, la instancia de la API Gateway local expone todas las funciones de Lambda;. Sin embargo, debido a que solo se puede especificar un puerto de depuración, las funciones solo se pueden depurar de una en una. Debe llamar a su API antes de que AWS SAMCLI se vincule al puerto, lo que permite que el depurador se conecte.

# Pase varios argumentos de tiempo de ejecución al depurar con AWS SAM
<a name="serverless-sam-cli-using-debugging-additional-arguments"></a>

Puede optar por pasar argumentos de tiempo de ejecución adicionales AWS SAM para inspeccionar los problemas y solucionar las variables de forma más eficaz. De este modo, se proporciona un mayor control y flexibilidad para el proceso de depuración, lo que puede ayudarle a personalizar las configuraciones y los entornos de ejecución.

Para pasar argumentos de tiempo de ejecución adicionales al depurar la función, usa la variable de entorno `DEBUGGER_ARGS`. Esto pasa una cadena de argumentos directamente al comando de ejecución que AWS SAMCLI utiliza para iniciar la función.

Por ejemplo, si quieres cargar un depurador como i KPdb en el tiempo de ejecución de tu función de Python, puedes pasar lo siguiente como`DEBUGGER_ARGS: -m ikpdb --ikpdb-port=5858 --ikpdb-working-directory=/var/task/ --ikpdb-client-working-directory=/myApp --ikpdb-address=0.0.0.0`. Esto cargaría i KPdb en tiempo de ejecución con los demás argumentos que hayas especificado.

En este caso, el comando AWS SAMCLI completo sería:

```
DEBUGGER_ARGS="-m ikpdb --ikpdb-port=5858 --ikpdb-working-directory=/var/task/ --ikpdb-client-working-directory=/myApp --ikpdb-address=0.0.0.0" echo {} | sam local invoke -d 5858 myFunction
```

Puede pasar los argumentos del depurador a las funciones de todos los tiempos de ejecución.

# Valide sus AWS SAM aplicaciones con CloudFormation Linter
<a name="validate-cfn-lint"></a>

 AWS CloudFormation Linter (cfn-lint) es una herramienta de código abierto que puede utilizar para realizar una validación detallada de sus plantillas. CloudFormation CFN-lint contiene reglas que se guían por la especificación del recurso. CloudFormation Use cfn-lint para comparar sus recursos con esas reglas y recibir mensajes detallados sobre errores, advertencias o sugerencias informativas. También puede crear sus propias reglas personalizadas para validarlas. [https://github.com/aws-cloudformation/cfn-lint](https://github.com/aws-cloudformation/cfn-lint) 

 Puedes usar cfn-lint para validar tus plantillas () a través de la interfaz de línea de AWS SAM comandos AWS Serverless Application Model (AWS SAM) ejecutando esta opción.AWS SAMCLI **sam validate** **--lint** 

```
sam validate --lint
```

 Para personalizar el comportamiento de cfn-lint, como crear reglas personalizadas o especificar opciones de validación, puede definir un archivo de configuración. Para obtener más información, consulte el [archivo Config](https://github.com/aws-cloudformation/cfn-lint#config-file) en el repositorio *cfn-lint CloudFormation GitHub *. Cuando ejecute **sam validate --lint**, se aplicará el comportamiento de cfn-lint definido en el archivo de configuración. 

## Ejemplos
<a name="validate-cfn-lint-examples"></a>

### Realice la validación de cfn-lint en una plantilla AWS SAM
<a name="validate-cfn-lint-examples-example1"></a>

```
sam validate --lint --template myTemplate.yaml
```

## Más información
<a name="validate-cfn-lint-learn"></a>

 Para obtener más información acerca del comando **sam validate**, consulte [sam validate](sam-cli-command-reference-sam-validate.md). 