

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.

# AWS SAM CLI
<a name="using-sam-cli"></a>

AWS Serverless Application Model La interfaz de línea de comandos (AWS SAMCLI) es una herramienta de línea de comandos para el desarrollo y las pruebas locales de aplicaciones sin servidor. AWS SAMCLILe permite crear, transformar, implementar, depurar, empaquetar, inicializar y sincronizar sus aplicaciones sin servidor de forma local antes de implementarlas en la nube.

La CLI de AWS SAM funciona con aplicaciones sin servidor que se definen mediante diferentes marcos y herramientas de infraestructura como código (IaC), con distintos niveles de soporte:
+ **AWS SAM plantillas**: proporciona soporte nativo con todo el conjunto de funciones, incluidas las capacidades locales de prueba, depuración, empaquetado e implementación.
+ **AWS Aplicaciones CDK**: admite pruebas locales de funciones Lambda después de sintetizar la aplicación CDK en plantillas mediante AWS el comando cdk CloudFormation synth.
+ **CloudFormation plantillas**: ofrece compatibilidad directa porque AWS SAM se extiende CloudFormation y admite los recursos sin servidor que se definen en las plantillas estándar. CloudFormation 
+ **Aplicaciones Terraform**: brindan soporte limitado para la creación y las pruebas locales de funciones de Lambda. Requiere que genere artefactos de AWS SAM plantilla que representen las funciones Lambda definidas por Terraform.

Para obtener el soporte de funciones más completo y una experiencia de desarrollador optimizada, recomendamos usar plantillas nativas. AWS SAM 

**Topics**
+ [Cómo se documentan los comandos CLI de AWS SAM.](#using-sam-cli-documentation)
+ [Configuración de la AWS SAM de CLI](using-sam-cli-configure.md)
+ [Comandos principales de la CLI de AWS SAM](using-sam-cli-corecommands.md)
+ [Pruebas locales con la CLI de AWS SAM](using-sam-cli-local-testing.md)

## Cómo se documentan los comandos CLI de AWS SAM.
<a name="using-sam-cli-documentation"></a>

Los comandos CLI de AWS SAM se documentan con el siguiente formato:
+ **Solicitud**: la solicitud de Linux está documentada de forma predeterminada y se muestra como (`$ `). En los comandos específicos de Windows, (`> `) se utiliza como símbolo del sistema. No incluya el símbolo al escribir comandos.
+ **Directorio**: cuando los comandos se deben ejecutar desde un directorio específico, el nombre del directorio se muestra antes del símbolo de comando.
+ **Entrada del usuario**: el texto del comando que se debe ingresar en la línea de comando se formatea como **user input**.
+ **Texto reemplazable: el** texto variable, como los nombres de los archivos y los parámetros, tiene el formato siguiente. *replaceable text* En comandos de varias líneas o comandos en los que se requiere una entrada específica desde el teclado, la entrada de teclado también se puede mostrar como texto reemplazable. Por ejemplo, *ENTER*.
+ **Salida**: la salida devuelta como respuesta al comando tiene el formato de `computer output`.

El siguiente comando `sam deploy` y la salida son un ejemplo:

```
$ sam deploy --guided --template template.yaml

Configuring SAM deploy
======================

    Looking for config file [samconfig.toml] :  Found
    Reading default arguments  :  Success

    Setting default arguments for 'sam deploy'
    =========================================
    Stack Name [sam-app]: ENTER
    AWS Region [us-west-2]: ENTER
    #Shows you resources changes to be deployed and require a 'Y' to initiate deploy
    Confirm changes before deploy [y/N]: ENTER
    #SAM needs permission to be able to create roles to connect to the resources in your template
    Allow SAM CLI IAM role creation [Y/n]: ENTER
    #Preserves the state of previously provisioned resources when an operation fails
    Disable rollback [y/N]: ENTER
    HelloWorldFunction may not have authorization defined, Is this okay? [y/N]: y
    Save arguments to configuration file [Y/n]: ENTER
    SAM configuration file [samconfig.toml]: ENTER
    SAM configuration environment [default]: ENTER
```

1. `sam deploy --guided --template template.yaml` es el comando que se introduce en la línea de comandos.

1. **sam deploy --guided --template** debes proporcionarse tal cual.

1. *template.yaml*se puede reemplazar por el nombre de archivo específico.

1. La salida comienza en `Configuring SAM deploy`.

1. En el resultado, *y* indique *ENTER* los valores reemplazables que proporcione.