

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.

# Empezar con AWS SAM
<a name="serverless-getting-started"></a>

Comience AWS SAM revisando y completando los temas de esta sección. [AWS SAM requisitos previos](prerequisites.md)proporciona instrucciones detalladas sobre la configuración de una AWS cuenta, la creación de usuarios de IAM, la creación de claves de acceso y la AWS SAMCLI instalación y configuración de. Después de completar los requisitos previos, cree su enfoque de desarrollo:
+ [Instala la AWS SAM CLI](install-sam-cli.md), lo que puede hacer en los sistemas operativos Linux, Windows y macOS. 
+ [Cómo empezar con AWS SAM con VS Code Toolkit](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/sam-get-started.html) para disfrutar de una experiencia de desarrollo visual con funciones integradas de depuración y pruebas.

Una vez completada la instalación, si lo desea, puede seguir el tutorial de AWS SAM Hello World. Al seguir este tutorial, se detalla el proceso de creación de una aplicación básica sin servidor con AWS SAM. Tras completar el tutorial, tendrá todo listo para revisar los conceptos que se detallan en [Cómo usar AWS Serverless Application Model (AWS SAM)](chapter-using-sam.md).

**Topics**
+ [

# AWS SAM requisitos previos
](prerequisites.md)
+ [

# Instala la AWS SAM CLI
](install-sam-cli.md)
+ [

# Tutorial: Implemente una aplicación Hello World con AWS SAM
](serverless-getting-started-hello-world.md)
+ [

# Conversión de funciones Lambda en aplicaciones AWS SAM
](convert-lambda-to-sam.md)

# AWS SAM requisitos previos
<a name="prerequisites"></a>

Complete los siguientes requisitos previos antes de instalar y utilizar la interfaz de línea de AWS Serverless Application Model comandos ()AWS SAMCLI.

Para usar el AWS SAMCLI, necesita lo siguiente:
+ Una AWS cuenta, credenciales AWS Identity and Access Management (IAM) y un key pair de claves de acceso de IAM.
+ El AWS Command Line Interface (AWS CLI) para configurar AWS las credenciales.

**Topics**
+ [

## Paso 1: Crear una AWS cuenta
](#prerequisites-sign-up)
+ [

## Paso 2: Crear una cuenta de usuario de IAM
](#prerequisites-create-user)
+ [

## Paso 3: Crear un ID de clave de acceso y la clave de acceso secreta
](#prerequisites-create-keys)
+ [

## Paso 4: Instale el AWS CLI
](#prerequisites-install-cli)
+ [

## Paso 5: utilícelo AWS CLI para configurar AWS las credenciales
](#prerequisites-configure-credentials)
+ [

## Paso 6: (opcional) Instalar el AWS kit de herramientas para VS Code
](#prerequisites-install-vscode)
+ [

## Siguientes pasos
](#prerequisites-next-steps)

## Paso 1: Crear una AWS cuenta
<a name="prerequisites-sign-up"></a>

Si no tiene una Cuenta de AWS, complete los siguientes pasos para crear una.

**Para suscribirte a una Cuenta de AWS**

1. Abrir [https://portal.aws.amazon.com/billing/registro](https://portal.aws.amazon.com/billing/signup).

1. Siga las instrucciones que se le indiquen.

   Parte del procedimiento de registro consiste en recibir una llamada telefónica o mensaje de texto e indicar un código de verificación en el teclado del teléfono.

   Cuando te registras en un Cuenta de AWS, *Usuario raíz de la cuenta de AWS*se crea un. El usuario raíz tendrá acceso a todos los Servicios de AWS y recursos de esa cuenta. Como práctica recomendada de seguridad, asigne acceso administrativo a un usuario y utilice únicamente el usuario raíz para realizar [Tareas que requieren acceso de usuario raíz](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks).

## Paso 2: Crear una cuenta de usuario de IAM
<a name="prerequisites-create-user"></a>

Para crear un usuario administrador, elija una de las siguientes opciones.


****  

| Elegir una forma de administrar el administrador | Para | Haga esto | También puede | 
| --- | --- | --- | --- | 
| En IAM Identity Center (recomendado) | Usar credenciales a corto plazo para acceder a AWS.Esto se ajusta a las prácticas recomendadas de seguridad. Para obtener información sobre las prácticas recomendadas, consulta [Prácticas recomendadas de seguridad en IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp) en la *Guía del usuario de IAM*. | Siga las instrucciones en [Introducción](https://docs.aws.amazon.com//singlesignon/latest/userguide/getting-started.html) en la Guía del usuario de AWS IAM Identity Center . | Configure el acceso programático [configurando el AWS CLI que se utilizará AWS IAM Identity Center](https://docs.aws.amazon.com//cli/latest/userguide/cli-configure-sso.html) en la Guía del AWS Command Line Interface usuario. | 
| En IAM (no recomendado) | Usar credenciales a largo plazo para acceder a AWS. | Siguiendo las instrucciones de [Crear un usuario de IAM para acceso de emergencia](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started-emergency-iam-user.html) de la Guía del usuario de IAM. | Configure el acceso programático mediante [Administrar las claves de acceso de los usuarios de IAM](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_credentials_access-keys.html) en la Guía del usuario de IAM. | 

## Paso 3: Crear un ID de clave de acceso y la clave de acceso secreta
<a name="prerequisites-create-keys"></a>

Para acceder a la CLI, necesita un ID de clave de acceso y una clave de acceso secreta. Cuando sea posible, utilice credenciales temporales en lugar de claves de acceso. Las credenciales temporales incluyen un ID de clave de acceso y una clave de acceso secreta, pero, además, incluyen un token de seguridad que indica cuándo caducan las credenciales. Para obtener más información, consulte [Uso de credenciales temporales con AWS recursos](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html) en la Guía del *usuario de IAM*.

Los usuarios necesitan acceso programático si quieren interactuar con personas AWS ajenas a. Consola de administración de AWS La forma de conceder el acceso programático depende del tipo de usuario que acceda. AWS

Para conceder acceso programático a los usuarios, elija una de las siguientes opciones.


****  

| ¿Qué usuario necesita acceso programático? | Para | Mediante | 
| --- | --- | --- | 
| IAM | (Recomendado) Utilice las credenciales de la consola como credenciales temporales para firmar las solicitudes programáticas dirigidas al AWS CLI AWS SDKs, o. AWS APIs |  Siga las instrucciones de la interfaz que desea utilizar: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/serverless-application-model/latest/developerguide/prerequisites.html)  | 
|  Identidad del personal (Usuarios administrados en el IAM Identity Center)  | Utilice credenciales temporales para firmar las solicitudes programáticas dirigidas al AWS CLI, AWS SDKs, o AWS APIs. |  Siga las instrucciones de la interfaz que desea utilizar: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/serverless-application-model/latest/developerguide/prerequisites.html)  | 
| IAM | Utilice credenciales temporales para firmar las solicitudes programáticas dirigidas al AWS CLI AWS SDKs, o. AWS APIs | Siga las instrucciones de [Uso de credenciales temporales con AWS recursos](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html) de la Guía del usuario de IAM. | 
| IAM | (No recomendado)Utilice credenciales de larga duración para firmar las solicitudes programáticas dirigidas al AWS CLI, AWS SDKs, o. AWS APIs |  Siga las instrucciones de la interfaz que desea utilizar: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/serverless-application-model/latest/developerguide/prerequisites.html)  | 

## Paso 4: Instale el AWS CLI
<a name="prerequisites-install-cli"></a>

 AWS CLI Se trata de una herramienta de código abierto que permite interactuar con ella Servicios de AWS mediante comandos de la consola de la línea de comandos. Lo AWS SAMCLI requiere AWS CLI para actividades como la configuración de credenciales. Para obtener más información sobre el AWS CLI, consulte [¿Qué es el AWS Command Line Interface?](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) en la *Guía AWS Command Line Interface del usuario*.

Para instalarlo AWS CLI, consulte [Instalación o actualización de la última versión de AWS CLI en la](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) *Guía del AWS Command Line Interface usuario*.

## Paso 5: utilícelo AWS CLI para configurar AWS las credenciales
<a name="prerequisites-configure-credentials"></a>

**Cómo configurar las credenciales con IAM Identity Center**
+ Para configurar las credenciales con el Centro de identidades de IAM, consulte [Configurar su perfil con el asistente de AWS configuración de sso](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html#cli-configure-sso-configure).

**Para configurar las credenciales con AWS CLI**

1. Ejecuta el comando `aws configure` desde la línea de comandos.

1. Configura lo siguiente. Seleccione cada enlace para obtener más información:

   1. [ID de clave de acceso](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-creds)

   1. [Clave de acceso secreta](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-creds)

   1. [Región de AWS](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-region)

   1. [Formato de salida](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-format)

   En el ejemplo siguiente se muestran los valores de ejemplo.

   ```
   $ aws configure
   AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
   AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
   Default region name [None]: us-west-2
   Default output format [None]: json
   ```

 AWS CLI Almacena esta información en un *perfil* (un conjunto de ajustes) denominado `default` en los `config` archivos `credentials` and. Estos archivos están ubicados en el archivo `.aws` en su directorio personal. De forma predeterminada, la información de este perfil se utiliza cuando se ejecuta un AWS CLI comando que no especifica de forma explícita el perfil que se va a utilizar. Para obtener más información sobre el archivo `credentials`, consulta [Ajustes del archivo de configuración y credenciales](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html) en la *Guía del usuario de AWS Command Line Interface *.

Para obtener más información sobre la configuración de credenciales, como el uso de un archivo de configuración y credenciales existente, consulta [Quick setup](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-quickstart.html) en la *Guía del usuario de AWS Command Line Interface *.

## Paso 6: (opcional) Instalar el AWS kit de herramientas para VS Code
<a name="prerequisites-install-vscode"></a>

Para los desarrolladores que prefieren un entorno de desarrollo integrado, el AWS Toolkit for VS Code ofrece potentes funciones para el desarrollo sin servidor, como la depuración visualCodeLens , la integración y los flujos de trabajo de implementación simplificados.

**Requisitos previos para el desarrollo de VS Code**
+ Visual Studio Code (versión 1.73.0 o una versión posterior) está instalado en el sistema
+ Extensión de compatibilidad con el lenguaje YAML para VS Code

**Para instalar el AWS kit de herramientas para VS Code**

1. Abra Visual Studio Code

1. Abra a la vista de extensiones (Ctrl\$1Shift\$1X o Cmd\$1Shift\$1X)

1. Busque "AWS Toolkit»

1. Instale la extensión «AWS Toolkit» de Amazon Web Services

1. Instale la extensión «YAML» de Red Hat (necesaria para las funciones de la plantilla CodeLens SAM)

**Ventajas de usar VS Code con SAM AWS **
+ Depuración visual: establezca puntos de interrupción y revise las funciones de Lambda de forma local
+ CodeLens integración: cree, implemente e invoque funciones directamente desde su plantilla SAM
+ Terminal integrado: acceda a AWS CLI los comandos de AWS SAM sin salir del editor
+ Validación de plantillas: validación en tiempo real y IntelliSense para plantillas SAM

Para obtener información sobre cómo configurar sus AWS credenciales en VS Code, consulte [Configuración de credenciales](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/setup-credentials.html) en la Guía del usuario de AWS Toolkit for VS Code.

## Siguientes pasos
<a name="prerequisites-next-steps"></a>
+ Ahora está listo para instalar AWS SAMCLI y empezar a usarlo AWS SAM. Para instalar el AWS SAMCLI, consulte[Instala la AWS SAM CLI](install-sam-cli.md).
+ Para configurar Visual Studio Code para el desarrollo sin servidor, consulte [Configuración del AWS Toolkit for VS](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/setting-up.html) Code.

# Instala la AWS SAM CLI
<a name="install-sam-cli"></a>

Instale la versión más reciente de la interfaz de línea de AWS Serverless Application Model comandos (AWS SAMCLI) en los sistemas operativos compatibles siguiendo las instrucciones de[Paso 4: Instale el AWS CLI](prerequisites.md#prerequisites-install-cli).

Para obtener información sobre la administración de una versión instalada actualmente de AWS SAMCLI, incluido cómo actualizar, desinstalar o administrar las compilaciones nocturnas, consulte[Administración de versiones de AWS SAM CLI](manage-sam-cli-versions.md).

**¿Es la primera vez que instala AWS SAM CLI?**  
Completa todos los [requisitos previos](prerequisites.md) de la sección anterior antes de continuar. Esto incluye:  
Registrarse para obtener una AWS cuenta.
Configurar el acceso seguro a AWS.
Creación de un identificador de claves de acceso y de una claves de acceso secreta.
Instalación del AWS CLI.
Configuración de AWS credenciales.

**Topics**
+ [

## Instalación de la AWS SAM CLI
](#install-sam-cli-instructions)
+ [

## Solución de errores de la instalación
](#sam-cli-troubleshoot-install)
+ [

## Siguientes pasos
](#install-sam-cli-next-steps)
+ [

# Opcional: Comprobación de la integridad del instalador de la CLI de AWS SAM
](reference-sam-cli-install-verify.md)

## Instalación de la AWS SAM CLI
<a name="install-sam-cli-instructions"></a>

**nota**  
A partir de septiembre de 2023, AWS dejará de mantener el Homebrew instalador AWS gestionado de AWS SAMCLI (`aws/tap/aws-sam-cli`). Si lo utiliza Homebrew para instalar y administrar AWS SAMCLI, consulte las siguientes opciones:   
Para seguir utilizando Homebrew, puedes utilizar el instalador gestionado por la comunidad. Para obtener más información, consulta [Administración de CLI de AWS SAM con la Homebrew](manage-sam-cli-versions.md#manage-sam-cli-versions-homebrew).
Se recomienda utilizar uno de los métodos de instalación propios que se documentan en esta página. Antes de utilizar uno de estos métodos, consulta [Cambiar de Homebrew](manage-sam-cli-versions.md#manage-sam-cli-versions-switch).
Para obtener más información, consulte [Release version: 1.121.0](https://github.com/aws/aws-sam-cli/releases).

 Para instalarlo AWS SAMCLI, siga las instrucciones de su sistema operativo. 

### Linux
<a name="install-sam-cli-instructions-linux"></a>

------
#### [ x86\$164 - command line installer ]

1. Descarga el [archivo .zip de AWS SAM CLI](https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-linux-x86_64.zip) a un directorio de tu elección.

1. **(Opcional)** Puedes comprobar la integridad del instalador antes de la instalación. Para obtener instrucciones, consulta [Opcional: Comprobación de la integridad del instalador de la CLI de AWS SAM](reference-sam-cli-install-verify.md).

1. Descomprime los archivos de instalación en el directorio que prefieras. A continuación, se muestra un ejemplo de uso del subdirectorio `sam-installation`.
**nota**  
Si el sistema operativo no tiene el comando **unzip** integrado, utiliza un equivalente.

   ```
   $ unzip aws-sam-cli-linux-x86_64.zip -d sam-installation
   ```

1. Instala la AWS SAM CLI ejecutando el `install` ejecutable. Este ejecutable se ubica en el directorio utilizado en el paso anterior. A continuación, se muestra un ejemplo de uso del subdirectorio `sam-installation`:

   ```
   $ sudo ./sam-installation/install
   ```

1. Verifica la instalación.

   ```
   $ sam --version
   ```

   Para confirmar que la instalación se ha realizado correctamente, debería aparecer un resultado que sustituya el siguiente texto entre corchetes por la última versión disponible:

   ```
    SAM CLI, <latest version>
   ```

------
#### [ arm64 - command line installer ]

1. Descarga el [archivo .zip de AWS SAM CLI](https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-linux-arm64.zip) a un directorio de tu elección.

1. **(Opcional)** Puedes comprobar la integridad del instalador antes de la instalación. Para obtener instrucciones, consulta [Opcional: Comprobación de la integridad del instalador de la CLI de AWS SAM](reference-sam-cli-install-verify.md).

1. Descomprime los archivos de instalación en el directorio que prefieras. A continuación, se muestra un ejemplo de uso del subdirectorio `sam-installation`.
**nota**  
Si el sistema operativo no tiene el comando **unzip** integrado, utiliza un equivalente.

   ```
   $ unzip aws-sam-cli-linux-arm64.zip -d sam-installation
   ```

1. Instala la AWS SAM CLI ejecutando el `install` ejecutable. Este ejecutable se ubica en el directorio utilizado en el paso anterior. A continuación, se muestra un ejemplo de uso del subdirectorio `sam-installation`:

   ```
   $ sudo ./sam-installation/install
   ```

1. Verifica la instalación.

   ```
   $ sam --version
   ```

   Para confirmar que la instalación se ha realizado correctamente, debería aparecer un resultado como el siguiente, pero que reemplace el texto entre corchetes por la última versión de la CLI de SAM:

   ```
    SAM CLI, <latest version>
   ```

------

### macOS
<a name="install-sam-cli-instructions-macos"></a>

#### Pasos de instalación
<a name="install-sam-cli-instructions-macos-steps"></a>

Utilice el instalador del paquete para instalar el AWS SAMCLI. Además, el instalador del paquete tiene dos métodos de instalación entre los que puede elegir: **GUI** y **Línea de comandos**. Puede instalarlo para **todos los usuarios** o solo para **el usuario actual**. Para realizar la instalación para todos los usuarios, se requiere la autorización del superusuario. 

**nota**  
AWS SAM La CLI no admite versiones de macOS anteriores a macOS 13.x. Actualice a una versión compatible de macOS o instale AWS SAM CLI conHomebrew.

------
#### [ GUI - All users ]

**Descarga del instalador del paquete para instalar la CLI de AWS SAM**
**nota**  
 Si instalaste previamente la AWS SAM CLI mediante Homebrew o pip, primero debes desinstalarlo. Para obtener instrucciones, consulta [Desinstalación de la AWS SAM CLI](manage-sam-cli-versions.md#manage-sam-cli-versions-uninstall). 

1.  Descargue el `pkg` para macOS al directorio que elija: 
   +  **Para equipos Mac con procesadores Intel, elija x86\$164** [— -x86\$164.pkg aws-sam-cli-macos](https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-macos-x86_64.pkg) 
   +  **[Para equipos Mac con Apple Silicon, selecciona arm64 — -arm64.pkg aws-sam-cli-macos](https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-macos-arm64.pkg)** 
**nota**  
Tiene la opción de comprobar la integridad del instalador antes de la instalación. Para obtener instrucciones, consulta [Opcional: Comprobación de la integridad del instalador de la CLI de AWS SAM](reference-sam-cli-install-verify.md).

1.  Ejecuta el archivo descargado y sigue las instrucciones que aparecen en pantalla para continuar con los pasos de **introducción**, **léeme** y **licencia**. 

1.  En **Destination Select**, selecciona **Instalar para todos los usuarios de este equipo**. 

1.  Para el **tipo de instalación**, elige dónde se instalará la CLI de AWS SAM y pulsa **Instalar**. La ubicación predeterminada recomendada es `/usr/local/aws-sam-cli`. 
**nota**  
 Para invocar la AWS SAM CLI con el comando **sam**, el instalador crea automáticamente un enlace simbólico entre `/usr/local/bin/sam` y `/usr/local/aws-sam-cli/sam` o la carpeta de instalación que elijas. 

1.  El AWS SAM CLI, procederán a la instalación y mostrarán el siguiente mensaje: «**La instalación se ha realizado correctamente**». Pulsa **Cerrar**. 

**Para comprobar que la instalación se ha realizado correctamente**
+  Comprueba que la AWS SAM CLI se ha instalado correctamente y que el enlace simbólico está configurado ejecutando: 

  ```
  $ which sam
  /usr/local/bin/sam
  $ sam --version
  SAM CLI, <latest version>
  ```

------
#### [ GUI - Current user ]

**Descarga e instalación de la CLI de AWS SAM**
**nota**  
 Si instalaste previamente la AWS SAM CLI mediante Homebrew o pip, primero debes desinstalarlo. Para obtener instrucciones, consulta [Desinstalación de la AWS SAM CLI](manage-sam-cli-versions.md#manage-sam-cli-versions-uninstall). 

1.  Descargue el `pkg` para macOS al directorio que elija: 
   +  **Para equipos Mac con procesadores Intel, elige** [x86\$164 — -x86\$164.pkg aws-sam-cli-macos](https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-macos-x86_64.pkg) 
   +  **[Para equipos Mac con Apple Silicon, selecciona arm64 — -arm64.pkg aws-sam-cli-macos](https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-macos-arm64.pkg)** 
**nota**  
Tiene la opción de comprobar la integridad del instalador antes de la instalación. Para obtener instrucciones, consulta [Opcional: Comprobación de la integridad del instalador de la CLI de AWS SAM](reference-sam-cli-install-verify.md).

1.  Ejecuta el archivo descargado y sigue las instrucciones que aparecen en pantalla para continuar con los pasos de **introducción**, **léeme** y **licencia**. 

1.  En **Destination Select**, selecciona **Instalar solo para mí**. Si no ves esta opción, ve al paso siguiente. 

1.  En **Tipos de instancias**, haga lo siguiente: 

   1. Elige dónde se instalará la CLI de AWS SAM. La ubicación predeterminada es `/usr/local/aws-sam-cli`. Selecciona una ubicación para la que tengas permisos de escritura. Para cambiar la ubicación de instalación, selecciona **local** y elige su ubicación. Pulsa **Continuar** cuando hayas terminado. 

   1.  Si en el paso anterior no tenías la opción de elegir **Instalar solo para mí**, selecciona **Cambiar ubicación de instalación** > **Instalar solo para mí** y pulsa **Continuar**. 

   1.  Pulsa **Instalar**. 

1.  El AWS SAM CLI procederán a la instalación y mostrarán «**La instalación se ha realizado correctamente**». Pulsa **Cerrar**. 

**Para crear un enlace simbólico**
+  Para invocar AWS SAM CLI con el comando **sam**, debes crear manualmente un enlace simbólico entre la CLI de AWS SAM y su `$PATH`. Crea tu enlace simbólico modificando y ejecutando el siguiente comando: 

  ```
  $ sudo ln -s /path-to/aws-sam-cli/sam /path-to-symlink-directory/sam
  ```
  +  *sudo*— Si su usuario tiene permisos de escritura para`$PATH`, no **sudo** es obligatorio. De lo contrario, se requiere el **sudo**. 
  +  *path-to*— Ruta a la que instalaste el AWS SAMCLI programa. Por ejemplo, `/Users/myUser/Desktop`. 
  +  *path-to-symlink-directory*— Tu variable de `$PATH` entorno. La ubicación predeterminada es `/usr/local/bin`. 

**Para comprobar que la instalación se ha realizado correctamente**
+  Comprueba que la AWS SAM CLI se ha instalado correctamente y que el enlace simbólico está configurado ejecutando: 

  ```
  $ which sam
  /usr/local/bin/sam
  $ sam --version
  SAM CLI, <latest version>
  ```

------
#### [ Command line - All users ]

**Descarga e instalación de la CLI de AWS SAM**
**nota**  
 Si instalaste previamente la AWS SAM CLI mediante Homebrew o pip, primero debes desinstalarlo. Para obtener instrucciones, consulta [Desinstalación de la AWS SAM CLI](manage-sam-cli-versions.md#manage-sam-cli-versions-uninstall). 

1.  Descargue el `pkg` para macOS al directorio que elija: 
   +  **Para ordenadores Mac con procesadores Intel, elija x86\$164** [— -x86\$164.pkg aws-sam-cli-macos](https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-macos-x86_64.pkg) 
   +  **[Para equipos Mac con Apple Silicon, selecciona arm64 — -arm64.pkg aws-sam-cli-macos](https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-macos-arm64.pkg)** 
**nota**  
Tiene la opción de comprobar la integridad del instalador antes de la instalación. Para obtener instrucciones, consulta [Opcional: Comprobación de la integridad del instalador de la CLI de AWS SAM](reference-sam-cli-install-verify.md).

1.  Modifica y ejecuta el script de instalación: 

   ```
   $ sudo installer -pkg path-to-pkg-installer/name-of-pkg-installer -target /
   installer: Package name is AWS SAM CLI
   installer: Upgrading at base path /
   installer: The upgrade was successful.
   ```
**nota**  
 Para invocar la CLI de AWS SAM con el **sam** comando, el instalador crea automáticamente un enlace simbólico entre `/usr/local/bin/sam` y `/usr/local/aws-sam-cli/sam`. 

**Para comprobar que la instalación se ha realizado correctamente**
+  Comprueba que la AWS SAM CLI se ha instalado correctamente y que el enlace simbólico está configurado ejecutando: 

  ```
  $ which sam
  /usr/local/bin/sam
  $ sam --version
  SAM CLI, <latest version>
  ```

------
#### [ Command line - Current user ]

**Descarga e instalación de la CLI de AWS SAM**
**nota**  
 Si instalaste previamente la AWS SAM CLI mediante Homebrew o pip, primero debes desinstalarlo. Para obtener instrucciones, consulta [Desinstalación de la AWS SAM CLI](manage-sam-cli-versions.md#manage-sam-cli-versions-uninstall). 

1.  Descargue el `pkg` para macOS al directorio que elija: 
   +  **Para equipos Mac con procesadores Intel, elige** [x86\$164 — -x86\$164.pkg aws-sam-cli-macos](https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-macos-x86_64.pkg) 
   +  **[Para equipos Mac con Apple Silicon, selecciona arm64 — -arm64.pkg aws-sam-cli-macos](https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-macos-arm64.pkg)** 
**nota**  
Tiene la opción de comprobar la integridad del instalador antes de la instalación. Para obtener instrucciones, consulta [Opcional: Comprobación de la integridad del instalador de la CLI de AWS SAM](reference-sam-cli-install-verify.md).

1.  Define un directorio de instalación en el que tengas permisos de escritura. A continuación, cree un archivo `xml` con la plantilla y modifíquelo para que refleje el directorio de instalación. El directorio debe existir previamente. 

    Por ejemplo, si lo *path-to-my-directory* reemplaza por`/Users/myUser/Desktop`, la carpeta del `aws-sam-cli` programa se instalará allí. 

   ```
   <?xml version="1.0" encoding="UTF-8"?>
   <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
   <plist version="1.0">
     <array>
       <dict>
         <key>choiceAttribute</key>
         <string>customLocation</string>
         <key>attributeSetting</key>
         <string>path-to-my-directory</string>
         <key>choiceIdentifier</key>
         <string>default</string>
       </dict>
     </array>
   </plist>
   ```

1.  Guarda el archivo `xml` y comprueba que es válido ejecutando lo siguiente: 

   ```
   $ installer -pkg path-to-pkg-installer \
   -target CurrentUserHomeDirectory \
   -showChoicesAfterApplyingChangesXML path-to-your-xml-file
   ```

    El resultado debes mostrar las preferencias que se aplicarán al programa AWS SAM CLI. 

1.  Ejecute lo siguiente para instalar AWS SAMCLI: 

   ```
   $ installer -pkg path-to-pkg-installer \
   -target CurrentUserHomeDirectory \
   -applyChoiceChangesXML path-to-your-xml-file
   
   # Example output
   installer: Package name is AWS SAM CLI
   installer: choices changes file 'path-to-your-xml-file' applied
   installer: Upgrading at base path base-path-of-xml-file
   installer: The upgrade was successful.
   ```

**Para crear un enlace simbólico**
+  Para invocar AWS SAM CLI con el comando **sam**, debes crear manualmente un enlace simbólico entre la CLI de AWS SAM y su `$PATH`. Crea tu enlace simbólico modificando y ejecutando el siguiente comando: 

  ```
  $ sudo ln -s /path-to/aws-sam-cli/sam /path-to-symlink-directory/sam
  ```
  +  *sudo*— Si su usuario tiene permisos de escritura para`$PATH`, no **sudo** es obligatorio. De lo contrario, se requiere el **sudo**. 
  +  *path-to*— Ruta a la que instalaste el AWS SAMCLI programa. Por ejemplo, `/Users/myUser/Desktop`. 
  +  *path-to-symlink-directory*— Tu variable de `$PATH` entorno. La ubicación predeterminada es `/usr/local/bin`. 

**Para comprobar que la instalación se ha realizado correctamente**
+  Comprueba que la AWS SAM CLI se ha instalado correctamente y que el enlace simbólico está configurado ejecutando: 

  ```
  $ which sam
  /usr/local/bin/sam
  $ sam --version
  SAM CLI, <latest version>
  ```

------

### Windows
<a name="install-sam-cli-instructions-windows"></a>

Los archivos Windows Installer (MSI) son los archivos de instalación de paquetes para el sistema operativo Windows.

Siga estos pasos para instalar la CLI de AWS SAM mediante el archivo MSI.

1. Descarga la CLI de AWS SAM de [64 bits](https://github.com/aws/aws-sam-cli/releases/latest/download/AWS_SAM_CLI_64_PY3.msi).

1. **(Opcional)** Puedes comprobar la integridad del instalador antes de la instalación. Para obtener instrucciones, consulta [Opcional: Comprobación de la integridad del instalador de la CLI de AWS SAM](reference-sam-cli-install-verify.md). 

1. Verifica la instalación.

   Después de completar la instalación, verifíquela abriendo una nueva línea de comandos o línea de PowerShell comandos. Debería poder invocar `sam` en la línea de comandos.

   ```
   sam --version
   ```

   Tras una instalación correcta del AWS SAMCLI, debería ver un resultado como el siguiente:

   ```
   SAM CLI, <latest version>
   ```

1. Habilite las rutas largas (solo en Windows 10 y versiones posteriores).
**importante**  
 AWS SAMCLIEs posible que interactúen con las rutas de archivo que superen el límite máximo de rutas de Windows. Esto puede provocar errores durante la ejecución de `sam init` debido a las limitaciones de **MAX\$1PATH** en Windows 10. Para resolver este problema, debes configurar el comportamiento de las nuevas rutas de acceso largo.

   Para habilitar las rutas largas, consulta [Habilitar las rutas largas en Windows 10, versión 1607 y versiones posteriores,](https://learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=powershell#enable-long-paths-in-windows-10-version-1607-and-later) en la *documentación de desarrollo de aplicaciones de Microsoft Windows*.

1. Instala Git

   Para descargar aplicaciones de muestra mediante el comando `sam init`, también debes instalar Git. Para ver las instrucciones, consulta la [Instalación de Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git).

## Solución de errores de la instalación
<a name="sam-cli-troubleshoot-install"></a>

### Linux
<a name="sam-cli-troubleshoot-install-linux"></a>

#### Error de Docker: «No se puedes conectar al daemon de Docker. ¿Se está ejecutando el daemon de Docker en este host?»
<a name="serverless-sam-cli-install-linux-troubleshooting-docker-deamon"></a>

En algunos casos, es posible que tengas que reiniciar la instancia para que `ec2-user` tengas los permisos necesarios para acceder al daemon de Docker. Si recibes este error, intenta reiniciar la instancia.

#### Error del intérprete de comandos: «no se ha encontrado el comando»
<a name="serverless-sam-cli-install-linux-troubleshooting-sam-cli-not-found"></a>

Si recibes este error, tu intérprete de comandos no puede localizar el ejecutable AWS SAMCLI en la ruta. Comprueba la ubicación del directorio en el que instalaste el ejecutable AWS SAMCLI y, a continuación, comprueba que el directorio se encuentra en su ruta.

#### AWS SAMCLIerror: «/lib64/libc.so.6: no se ha encontrado la versión `GLIBC\$12.14' (requerida por /.so.1)» usr/local/aws-sam-cli/dist/libz
<a name="serverless-sam-cli-install-linux-troubleshooting-sam-cli-missing-lib"></a>

Si recibes este error, significa que estás usando una versión no admitida de Linux y que la versión integrada de glibc es obsoleta. Haz una de estas dos operaciones:
+ Actualiza el host de Linux a la versión de 64 bits de una distribución reciente de CentOS, Fedora, Ubuntu o Amazon Linux 2.
+ Siga estas instrucciones para [Instala la AWS SAM CLI](#install-sam-cli).

### macOS
<a name="sam-cli-troubleshoot-install-macos"></a>

#### Error en la instalación
<a name="sam-cli-troubleshoot-install-macos-install-failed"></a>

![\[Imagen del instalador AWS SAMCLI que muestra un mensaje de error en la instalación\]](http://docs.aws.amazon.com/es_es/serverless-application-model/latest/developerguide/images/sam-cli-troubleshoot-install-macos-install-failed.jpg)


 Si estás instalando la AWS SAMCLI para tu usuario y has seleccionado un directorio de instalación para el que no tienes permisos de escritura, podría producirse este error. Haz una de estas dos operaciones: 

1.  Selecciona otro directorio de instalación para el que tengas permisos de escritura. 

1.  Elimine el instalador. A continuación, descárgala y ejecútalo de nuevo. 

## Siguientes pasos
<a name="install-sam-cli-next-steps"></a>

Para obtener más información sobre las aplicaciones sin servidor de AWS SAM CLI y comenzar a crear las suyas, consulta los siguientes enlaces:
+ [Tutorial: Implemente una aplicación Hello World con AWS SAM](serverless-getting-started-hello-world.md)— Step-by-step instrucciones para descargar, crear e implementar una aplicación básica sin servidor.
+ [El AWS SAM taller completo](https://catalog.workshops.aws/complete-aws-sam/en-US): un taller diseñado para enseñarle muchas de las principales funciones que AWS SAM ofrece.
+ [AWS SAM ejemplos de aplicaciones y patrones](https://serverlessland.com/patterns?framework=AWS+SAM): ejemplos de aplicaciones y patrones de autores de la comunidad con los que puede seguir experimentando.

# Opcional: Comprobación de la integridad del instalador de la CLI de AWS SAM
<a name="reference-sam-cli-install-verify"></a>

Al instalar la interfaz de línea de AWS Serverless Application Model comandos (AWS SAMCLI) mediante un instalador de paquetes, puede comprobar su integridad antes de la instalación. Este paso es opcional, pero muy recomendable. 

Las dos opciones de verificación que tiene a su disposición son:
+ Verifica la firma del archivo instalador.
+ Comprueba el valor hash del instalador del paquete.

Cuando esté disponible para tu plataforma, te recomendamos que verifique la opción del archivo de firma. Esta opción ofrece un nivel de seguridad adicional, ya que los valores clave se publican aquí y se administran por separado desde nuestro repositorio GitHub.

**Topics**
+ [

## Verifica el archivo de la firma del instalador
](#reference-sam-cli-install-verify-signature)
+ [

## Verifica el valor del hash
](#reference-sam-cli-install-verify-hash)

## Verifica el archivo de la firma del instalador
<a name="reference-sam-cli-install-verify-signature"></a>

### Linux
<a name="reference-sam-cli-install-verify-signature-linux"></a>

#### arm64: instalador de línea de comandos
<a name="reference-sam-cli-install-verify-signature-linux-arm64"></a>

AWS SAM usa [GnuPG](https://www.gnupg.org/) para firmar AWS SAMCLI el instalador .zip. La verificación se realiza en los siguientes pasos:

1. Utiliza la clave pública principal para verificar la clave pública del firmante.

1. Utiliza la clave pública del firmante para verificar el instalador del paquete AWS SAMCLI.

**Para verificar la integridad de la clave pública del firmante**

1. Copias la clave pública principal y guárdala en su máquina local como un archivo `.txt`. Por ejemplo, *`primary-public-key.txt`*.

   ```
   -----BEGIN PGP PUBLIC KEY BLOCK-----
   Version: GnuPG v2.0.22 (GNU/Linux)
   
   mQINBGRuSzMBEADsqiwOy78w7F4+sshaMFRIwRGNRm94p5Qey2KMZBxekFtoryVD
   D9jEOnvupx4tvhfBHz5EcUHCEOdl4MTqdBy6vVAshozgxVb9RE8JpECn5lw7XC69
   4Y7Gy1TKKQMEWtDXElkGxIFdUWvWjSnPlzfnoXwQYGeE93CUS3h5dImP22Yk1Ct6
   eGGhlcbg1X4L8EpFMj7GvcsU8f7ziVI/PyC1Xwy39Q8/I67ip5eU5ddxO/xHqrbL
   YC7+8pJPbRMej2twT2LrcpWWYAbprMtRoa6WfE0/thoo3xhHpIMHdPfAA86ZNGIN
   kRLjGUg7jnPTRW4Oin3pCc8nT4Tfc1QERkHm641gTC/jUvpmQsM6h/FUVP2i5iE/
   JHpJcMuL2Mg6zDo3x+3gTCf+Wqz3rZzxB+wQT3yryZs6efcQy7nROiRxYBxCSXX0
   2cNYzsYLb/bYaW8yqWIHD5IqKhw269gp2E5Khs60zgS3CorMb5/xHgXjUCVgcu8a
   a8ncdf9fjl3WS5p0ohetPbO2ZjWv+MaqrZOmUIgKbA4RpWZ/fU97P5BW9ylwmIDB
   sWy0cMxg8MlvSdLytPieogaM0qMg3u5qXRGBr6Wmevkty0qgnmpGGc5zPiUbtOE8
   CnFFqyxBpj5IOnG0KZGVihvn+iRxrv6GO7WWO92+Dc6m94U0EEiBR7QiOwARAQAB
   tDRBV1MgU0FNIENMSSBQcmltYXJ5IDxhd3Mtc2FtLWNsaS1wcmltYXJ5QGFtYXpv
   bi5jb20+iQI/BBMBCQApBQJkbkszAhsvBQkHhM4ABwsJCAcDAgEGFQgCCQoLBBYC
   AwECHgECF4AACgkQQv1fenOtiFqTuhAAzi5+ju5UVOWqHKevOJSO08T4QB8HcqAE
   SVO3mY6/j29knkcL8ubZP/DbpV7QpHPI2PB5qSXsiDTP3IYPbeY78zHSDjljaIK3
   njJLMScFeGPyfPpwMsuY4nzrRIgAtXShPA8N/k4ZJcafnpNqKj7QnPxiC1KaIQWm
   pOtvb8msUF3/s0UTa5Ys/lNRhVC0eGg32ogXGdojZA2kHZWdm9udLo4CDrDcrQT7
   NtDcJASapXSQL63XfAS3snEc4e1941YxcjfYZ33rel8K9juyDZfi1slWR/L3AviI
   QFIaqSHzyOtP1oinUkoVwL8ThevKD3Ag9CZflZLzNCV7yqlF8RlhEZ4zcE/3s9El
   WzCFsozb5HfE1AZonmrDh3SyOEIBMcS6vG5dWnvJrAuSYv2rX38++K5Pr/MIAfOX
   DOI1rtA+XDsHNv9lSwSy0lt+iClawZANO9IXCiN1rOYcVQlwzDFwCNWDgkwdOqS0
   gOA2f8NF9lE5nBbeEuYquoOl1Vy8+ICbgOFs9LoWZlnVh7/RyY6ssowiU9vGUnHI
   L8f9jqRspIz/Fm3JD86ntZxLVGkeZUz62FqErdohYfkFIVcv7GONTEyrz5HLlnpv
   FJ0MR0HjrMrZrnOVZnwBKhpbLocTsH+3t5It4ReYEX0f1DIOL/KRwPvjMvBVkXY5
   hblRVDQoOWc=
   =d9oG
   -----END PGP PUBLIC KEY BLOCK-----
   ```

1. Importe la clave pública principal en su conjunto de claves.

   ```
   $ gpg --import primary-public-key.txt
   							
   gpg: directory `/home/.../.gnupg' created
   gpg: new configuration file `/home/.../.gnupg/gpg.conf' created
   gpg: WARNING: options in `/home/.../.gnupg/gpg.conf' are not yet active during this run
   gpg: keyring `/home/.../.gnupg/secring.gpg' created
   gpg: keyring `/home/.../.gnupg/pubring.gpg' created
   gpg: /home/.../.gnupg/trustdb.gpg: trustdb created
   gpg: key 73AD885A: public key "AWS SAM CLI Primary <aws-sam-cli-primary@amazon.com>" imported
   gpg: Total number processed: 1
   gpg:               imported: 1  (RSA: 1)
   ```

1. Copias la clave pública del firmante y guárdala en su máquina local como un archivo `.txt`. Por ejemplo, *`signer-public-key.txt`*.

   ```
   -----BEGIN PGP PUBLIC KEY BLOCK-----
   Version: GnuPG v2.0.22 (GNU/Linux)
   
   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
   LtZnq+n4SfeNbZjD2FQWZR4CrA==
   =lHfs
   -----END PGP PUBLIC KEY BLOCK-----
   ```

1. Importe la clave pública del firmante en su conjunto de claves.

   ```
   $ gpg --import signer-public-key.txt
   							
   gpg: key 4094ABB1BEDFDAB4: public key "AWS SAM CLI Team <aws-sam-cli-signer@amazon.com>" imported
   gpg: Total number processed: 1
   gpg:               imported: 1  (RSA: 1)
   gpg: no ultimately trusted keys found
   ```

   Tome nota del valor clave de la salida. Por ejemplo, *`4094ABB1BEDFDAB4`*.

1. Utiliza el valor de la clave para obtener y verificar la huella digital de la clave pública del firmante.

   ```
   $ gpg --fingerprint 4094ABB1BEDFDAB4
   							
   pub   rsa4096 2025-05-19 [SCEA] [expires: 2027-05-19]
         EF46 3E86 CA31 933B B688  CC1A 4094 ABB1 BEDF DAB4
   uid           [ unknown] AWS SAM CLI Team <aws-sam-cli-signer@amazon.com>
   ```

   La huella digital debe coincidir con la siguiente.

   ```
   EF46 3E86 CA31 933B B688  CC1A 4094 ABB1 BEDF DAB4
   ```

   Si la cadena de huellas digitales no coincide, no usa el instalador de la CLI de AWS SAM. [Crea un problema](https://github.com/aws/aws-sam-cli/issues/new?assignees=&labels=stage%2Fneeds-triage&projects=&template=Bug_report.md&title=Bug%3A+TITLE) *en el repositorio para comunicarte con el AWS SAM equipo. aws-sam-cli GitHub *

1. Verifica las firmas de la clave pública del firmante:

   ```
   $ gpg --check-sigs 4094ABB1BEDFDAB4
   						  
   pub   rsa4096 2025-05-19 [SCEA] [expires: 2027-05-19]
         EF463E86CA31933BB688CC1A4094ABB1BEDFDAB4
   uid           [ unknown] AWS SAM CLI Team <aws-sam-cli-signer@amazon.com>
   sig!3        4094ABB1BEDFDAB4 2025-05-19  [self-signature]
   sig!         42FD5F7A73AD885A 2025-05-19 AWS SAM CLI Primary <aws-sam-cli-primary@amazon.com>
   ```

   Si ve `1 signature not checked due to a missing key`, repita los pasos anteriores para importar las claves públicas principal y del firmante a su conjunto de claves.

   Debería ver en la lista los valores clave de la clave pública principal y de la clave pública del firmante.

Ahora que ha comprobado la integridad de la clave pública del firmante, puede utilizarla para comprobar el instalador del paquete AWS SAMCLI.

**Para comprobar la integridad del instalador del paquete de la CLI de AWS SAM**

1. **Obtener el archivo de firma del paquete de la CLI de AWS SAM**: descargue el archivo de firma para el instalador del paquete AWS SAMCLI mediante el siguiente comando:

   ```
   $ wget https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-linux-arm64.zip.sig
   ```

1. **Verifica el archivo de firma**: pase los archivos descargados `.sig` y `.zip` como parámetros al comando `gpg`. A continuación, se muestra un ejemplo:

   ```
   $ gpg --verify aws-sam-cli-linux-arm64.zip.sig aws-sam-cli-linux-arm64.zip
   ```

   El resultado debería tener un aspecto similar al siguiente:

   ```
   gpg: Signature made Mon 19 May 2025 01:21:57 AM UTC using RSA key ID 4094ABB1BEDFDAB4
   gpg: Good signature from "AWS SAM CLI Team <aws-sam-cli-signer@amazon.com>"
   gpg: WARNING: This key is not certified with a trusted signature!
   gpg:          There is no indication that the signature belongs to the owner.
   Primary key fingerprint: EF46 3E86 CA31 933B B688  CC1A 4094 ABB1 BEDF DAB4
   ```
   + Se puede ignorar el mensaje `WARNING: This key is not certified with a trusted signature!`. Esto se produce porque no existe una cadena de confianza entre su clave PGP personal (si es su caso) y la clave PGP de la CLI de AWS SAM . Para obtener más información, consulta [ Red de confianza](https://en.wikipedia.org/wiki/Web_of_trust).
   + Si el resultado incluye la expresión `BAD signature`, verifique si realizó el procedimiento de forma correcta. Si sigues recibiendo esta respuesta, ponte en contacto con el AWS SAM equipo [creando un problema](https://github.com/aws/aws-sam-cli/issues/new?assignees=&labels=stage%2Fneeds-triage&projects=&template=Bug_report.md&title=Bug%3A+TITLE) en el *aws-sam-cli GitHub repositorio* y evita usar el archivo descargado.

   El mensaje `Good signature from "AWS SAM CLI Team <aws-sam-cli-signer@amazon.com>"` indica que la firma está verificada y que puede continuar con la instalación.

#### x86\$164: instalador de línea de comandos
<a name="reference-sam-cli-install-verify-signature-linux-x8664"></a>

AWS SAM usa [GnuPG](https://www.gnupg.org/) para firmar AWS SAMCLI el instalador .zip. La verificación se realiza en los siguientes pasos:

1. Utiliza la clave pública principal para verificar la clave pública del firmante.

1. Utiliza la clave pública del firmante para verificar el instalador del paquete AWS SAMCLI.

**Para verificar la integridad de la clave pública del firmante**

1. Copias la clave pública principal y guárdala en su máquina local como un archivo `.txt`. Por ejemplo, *`primary-public-key.txt`*.

   ```
   -----BEGIN PGP PUBLIC KEY BLOCK-----
   Version: GnuPG v2.0.22 (GNU/Linux)
   
   mQINBGRuSzMBEADsqiwOy78w7F4+sshaMFRIwRGNRm94p5Qey2KMZBxekFtoryVD
   D9jEOnvupx4tvhfBHz5EcUHCEOdl4MTqdBy6vVAshozgxVb9RE8JpECn5lw7XC69
   4Y7Gy1TKKQMEWtDXElkGxIFdUWvWjSnPlzfnoXwQYGeE93CUS3h5dImP22Yk1Ct6
   eGGhlcbg1X4L8EpFMj7GvcsU8f7ziVI/PyC1Xwy39Q8/I67ip5eU5ddxO/xHqrbL
   YC7+8pJPbRMej2twT2LrcpWWYAbprMtRoa6WfE0/thoo3xhHpIMHdPfAA86ZNGIN
   kRLjGUg7jnPTRW4Oin3pCc8nT4Tfc1QERkHm641gTC/jUvpmQsM6h/FUVP2i5iE/
   JHpJcMuL2Mg6zDo3x+3gTCf+Wqz3rZzxB+wQT3yryZs6efcQy7nROiRxYBxCSXX0
   2cNYzsYLb/bYaW8yqWIHD5IqKhw269gp2E5Khs60zgS3CorMb5/xHgXjUCVgcu8a
   a8ncdf9fjl3WS5p0ohetPbO2ZjWv+MaqrZOmUIgKbA4RpWZ/fU97P5BW9ylwmIDB
   sWy0cMxg8MlvSdLytPieogaM0qMg3u5qXRGBr6Wmevkty0qgnmpGGc5zPiUbtOE8
   CnFFqyxBpj5IOnG0KZGVihvn+iRxrv6GO7WWO92+Dc6m94U0EEiBR7QiOwARAQAB
   tDRBV1MgU0FNIENMSSBQcmltYXJ5IDxhd3Mtc2FtLWNsaS1wcmltYXJ5QGFtYXpv
   bi5jb20+iQI/BBMBCQApBQJkbkszAhsvBQkHhM4ABwsJCAcDAgEGFQgCCQoLBBYC
   AwECHgECF4AACgkQQv1fenOtiFqTuhAAzi5+ju5UVOWqHKevOJSO08T4QB8HcqAE
   SVO3mY6/j29knkcL8ubZP/DbpV7QpHPI2PB5qSXsiDTP3IYPbeY78zHSDjljaIK3
   njJLMScFeGPyfPpwMsuY4nzrRIgAtXShPA8N/k4ZJcafnpNqKj7QnPxiC1KaIQWm
   pOtvb8msUF3/s0UTa5Ys/lNRhVC0eGg32ogXGdojZA2kHZWdm9udLo4CDrDcrQT7
   NtDcJASapXSQL63XfAS3snEc4e1941YxcjfYZ33rel8K9juyDZfi1slWR/L3AviI
   QFIaqSHzyOtP1oinUkoVwL8ThevKD3Ag9CZflZLzNCV7yqlF8RlhEZ4zcE/3s9El
   WzCFsozb5HfE1AZonmrDh3SyOEIBMcS6vG5dWnvJrAuSYv2rX38++K5Pr/MIAfOX
   DOI1rtA+XDsHNv9lSwSy0lt+iClawZANO9IXCiN1rOYcVQlwzDFwCNWDgkwdOqS0
   gOA2f8NF9lE5nBbeEuYquoOl1Vy8+ICbgOFs9LoWZlnVh7/RyY6ssowiU9vGUnHI
   L8f9jqRspIz/Fm3JD86ntZxLVGkeZUz62FqErdohYfkFIVcv7GONTEyrz5HLlnpv
   FJ0MR0HjrMrZrnOVZnwBKhpbLocTsH+3t5It4ReYEX0f1DIOL/KRwPvjMvBVkXY5
   hblRVDQoOWc=
   =d9oG
   -----END PGP PUBLIC KEY BLOCK-----
   ```

1. Importe la clave pública principal en su conjunto de claves.

   ```
   $ gpg --import primary-public-key.txt
   							
   gpg: directory `/home/.../.gnupg' created
   gpg: new configuration file `/home/.../.gnupg/gpg.conf' created
   gpg: WARNING: options in `/home/.../.gnupg/gpg.conf' are not yet active during this run
   gpg: keyring `/home/.../.gnupg/secring.gpg' created
   gpg: keyring `/home/.../.gnupg/pubring.gpg' created
   gpg: /home/.../.gnupg/trustdb.gpg: trustdb created
   gpg: key 73AD885A: public key "AWS SAM CLI Primary <aws-sam-cli-primary@amazon.com>" imported
   gpg: Total number processed: 1
   gpg:               imported: 1  (RSA: 1)
   ```

1. Copias la clave pública del firmante y guárdala en su máquina local como un archivo `.txt`. Por ejemplo, *`signer-public-key.txt`*.

   ```
   -----BEGIN PGP PUBLIC KEY BLOCK-----
   Version: GnuPG v2.0.22 (GNU/Linux)
   
   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
   LtZnq+n4SfeNbZjD2FQWZR4CrA==
   =lHfs
   -----END PGP PUBLIC KEY BLOCK-----
   ```

1. Importe la clave pública del firmante en su conjunto de claves.

   ```
   $ gpg --import signer-public-key.txt
   							
   gpg: key 4094ABB1BEDFDAB4: public key "AWS SAM CLI Team <aws-sam-cli-signer@amazon.com>" imported
   gpg: Total number processed: 1
   gpg:               imported: 1  (RSA: 1)
   gpg: no ultimately trusted keys found
   ```

   Tome nota del valor clave de la salida. Por ejemplo, *`4094ABB1BEDFDAB4`*.

1. Utiliza el valor de la clave para obtener y verificar la huella digital de la clave pública del firmante.

   ```
   $ gpg --fingerprint 4094ABB1BEDFDAB4
   						  
   pub   rsa4096 2025-05-19 [SCEA] [expires: 2027-05-19]
         EF46 3E86 CA31 933B B688  CC1A 4094 ABB1 BEDF DAB4
   uid           [ unknown] AWS SAM CLI Team <aws-sam-cli-signer@amazon.com>
   ```

   La huella digital debe coincidir con la siguiente.

   ```
   EF46 3E86 CA31 933B B688  CC1A 4094 ABB1 BEDF DAB4
   ```

   Si la cadena de huellas digitales no coincide, no usa el instalador de la CLI de AWS SAM. [Crea un problema](https://github.com/aws/aws-sam-cli/issues/new?assignees=&labels=stage%2Fneeds-triage&projects=&template=Bug_report.md&title=Bug%3A+TITLE) *en el repositorio para comunicarte con el AWS SAM equipo. aws-sam-cli GitHub *

1. Verifica las firmas de la clave pública del firmante:

   ```
   $ gpg --check-sigs 4094ABB1BEDFDAB4
   							
   pub   rsa4096 2025-05-19 [SCEA] [expires: 2027-05-19]
         EF463E86CA31933BB688CC1A4094ABB1BEDFDAB4
   uid           [ unknown] AWS SAM CLI Team <aws-sam-cli-signer@amazon.com>
   sig!3        4094ABB1BEDFDAB4 2025-05-19  [self-signature]
   sig!         42FD5F7A73AD885A 2025-05-19 AWS SAM CLI Primary <aws-sam-cli-primary@amazon.com>
   ```

   Si ve `1 signature not checked due to a missing key`, repita los pasos anteriores para importar las claves públicas principal y del firmante a su conjunto de claves.

   Debería ver en la lista los valores clave de la clave pública principal y de la clave pública del firmante.

Ahora que ha comprobado la integridad de la clave pública del firmante, puede utilizarla para comprobar el instalador del paquete AWS SAMCLI.

**Para comprobar la integridad del instalador del paquete de la CLI de AWS SAM**

1. **Obtener el archivo de firma del paquete de la CLI de AWS SAM**: descargue el archivo de firma para el instalador del paquete AWS SAMCLI mediante el siguiente comando:

   ```
   $ wget https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-linux-x86_64.zip.sig
   ```

1. **Verifica el archivo de firma**: pase los archivos descargados `.sig` y `.zip` como parámetros al comando `gpg`. A continuación, se muestra un ejemplo:

   ```
   $ gpg --verify aws-sam-cli-linux-x86_64.zip.sig aws-sam-cli-linux-x86_64.zip
   ```

   El resultado debería tener un aspecto similar al siguiente:

   ```
   gpg: Signature made Mon 19 May 2025 01:21:57 AM UTC using RSA key ID 4094ABB1BEDFDAB4
   gpg: Good signature from "AWS SAM CLI Team <aws-sam-cli-signer@amazon.com>"
   gpg: WARNING: This key is not certified with a trusted signature!
   gpg:          There is no indication that the signature belongs to the owner.
   Primary key fingerprint: EF46 3E86 CA31 933B B688  CC1A 4094 ABB1 BEDF DAB4
   ```
   + Se puede ignorar el mensaje `WARNING: This key is not certified with a trusted signature!`. Esto se produce porque no existe una cadena de confianza entre su clave PGP personal (si es su caso) y la clave PGP de la CLI de AWS SAM . Para obtener más información, consulta [ Red de confianza](https://en.wikipedia.org/wiki/Web_of_trust).
   + Si el resultado incluye la expresión `BAD signature`, verifique si realizó el procedimiento de forma correcta. Si sigues recibiendo esta respuesta, ponte en contacto con el AWS SAM equipo [creando un problema](https://github.com/aws/aws-sam-cli/issues/new?assignees=&labels=stage%2Fneeds-triage&projects=&template=Bug_report.md&title=Bug%3A+TITLE) en el *aws-sam-cli GitHub repositorio* y evita usar el archivo descargado.

   El mensaje `Good signature from "AWS SAM CLI Team <aws-sam-cli-signer@amazon.com>"` indica que la firma está verificada y que puede continuar con la instalación.

### macOS
<a name="reference-sam-cli-install-verify-signature-macos"></a>

#### Instalador de interfaz gráfica de usuario y línea de comandos
<a name="reference-sam-cli-install-verify-signature-macos-installer"></a>

Puede comprobar la integridad del archivo de firmas del instalador del paquete de la CLI de AWS SAM mediante la herramienta `pkgutil` o manualmente.

**Para verificarlo, utilice pkgutil**

1. Ejecuta el siguiente comando, que proporciona la ruta al instalador descargado en la máquina local:

   ```
   $ pkgutil --check-signature /path/to/aws-sam-cli-installer.pkg
   ```

   A continuación, se muestra un ejemplo:

   ```
   $ pkgutil --check-signature /Users/user/Downloads/aws-sam-cli-macos-arm64.pkg
   ```

1. En la salida, localice el **SHA256 fingerprint** para **Developer ID Installer: AMZN Mobile LLC**. A continuación, se muestra un ejemplo:

   ```
   Package "aws-sam-cli-macos-arm64.pkg":
      Status: signed by a developer certificate issued by Apple for distribution
      Notarization: trusted by the Apple notary service
      Signed with a trusted timestamp on: 2026-01-28 07:39:16 +0000
      Certificate Chain:
       1. Developer ID Installer: AMZN Mobile LLC (94KV3E626L)
          Expires: 2030-09-26 00:18:06 +0000
          SHA256 Fingerprint:
              5C 45 BE 63 FD 52 10 07 2D 66 56 77 5C A9 FF 25 91 6D 3F 01 F7 0E
              9A 8A 05 F6 2D 62 B2 88 8D A9
          ------------------------------------------------------------------------
       2. Developer ID Certification Authority
          Expires: 2031-09-17 00:00:00 +0000
          SHA256 Fingerprint:
              F1 6C D3 C5 4C 7F 83 CE A4 BF 1A 3E 6A 08 19 C8 AA A8 E4 A1 52 8F
              D1 44 71 5F 35 06 43 D2 DF 3A
          ------------------------------------------------------------------------
       3. Apple Root CA
          Expires: 2035-02-09 21:40:36 +0000
          SHA256 Fingerprint:
              B0 B1 73 0E CB C7 FF 45 05 14 2C 49 F1 29 5E 6E DA 6B CA ED 7E 2C
              68 C5 BE 91 B5 A1 10 01 F0 24
   ```

1. **Developer ID Installer: AMZN Mobile LLC SHA256 fingerprint** debe coincidir con el siguiente valor:

   ```
   5C 45 BE 63 FD 52 10 07 2D 66 56 77 5C A9 FF 25 91 6D 3F 01 F7 0E 9A 8A 05 F6 2D 62 B2 88 8D A9
   ```

   Si la cadena de huellas digitales no coincide, no usa el instalador de la CLI de AWS SAM. *Para llegar al AWS SAM equipo, [crea un problema](https://github.com/aws/aws-sam-cli/issues/new?assignees=&labels=stage%2Fneeds-triage&projects=&template=Bug_report.md&title=Bug%3A+TITLE) en el aws-sam-cli GitHub repositorio.* Si la cadena de huellas digitales coincide, puede continuar con el instalador del paquete.

**Verifica el instalador del paquete manualmente**
+ Consulte [Cómo verificar la autenticidad de las actualizaciones de software de Apple descargadas manualmente](https://support.apple.com/en-us/HT202369) en el *sitio web de soporte de Apple*.

### Windows
<a name="reference-sam-cli-install-verify-signature-windows"></a>

El AWS SAMCLI instalador está empaquetado como MSI archivos para el sistema Windows operativo.

**Comprueba la integridad del instalador del paquete**

1. Haga clic derecho en el instalador y abra la ventana **Propiedades**

1. Elija la pestaña **Firmas digitales**.

1. En la **Lista de firmas**, elija **Amazon Services, Inc.** y, a continuación, **Detalles**.

1. Elija la pestaña **General** si aún no lo ha hecho, y luego elija **Ver certificado**.

1. Elija la pestaña **Detalles** y luego elija **Todos** en la lista desplegable **Mostrar**, si aún no está seleccionada.

1. Desplácese hacia abajo hasta que vea el campo **Huella digital** y, a continuación, seleccione **Huella digital**. Así se muestra el valor completo de la huella digital en la ventana inferior.

1. Haga coincidir el valor de la huella digital con el siguiente valor. Si el valor coincide, continúe con la instalación. Si no es así, ponte en contacto con el AWS SAM equipo [creando un problema](https://github.com/aws/aws-sam-cli/issues/new?assignees=&labels=stage%2Fneeds-triage&projects=&template=Bug_report.md&title=Bug%3A+TITLE) en el *aws-sam-cli GitHub repositorio*.

   ```
   cd62479397f09d72a04c7399a254b0a91da53d6c
   ```

## Verifica el valor del hash
<a name="reference-sam-cli-install-verify-hash"></a>

### Linux
<a name="reference-sam-cli-install-verify-hash-linux"></a>

#### x86\$164: instalador de línea de comandos
<a name="reference-sam-cli-install-verify-hash-linux-x8664"></a>

Comprueba la integridad y autenticidad de los archivos de instalación descargados mediante la generación de un valor hash mediante el siguiente comando:

```
$ sha256sum aws-sam-cli-linux-x86_64.zip
```

El resultado debe tener el siguiente aspecto:

```
<64-character SHA256 hash value> aws-sam-cli-linux-x86_64.zip
```

[Compare el valor de hash del SHA-256 de 64 caracteres con el de la versión AWS SAMCLI que desee en las notas de la versión ](https://github.com/aws/aws-sam-cli/releases/latest)AWS SAMCLI en GitHub.

### macOS
<a name="reference-sam-cli-install-verify-hash-macos"></a>

#### Instalador de interfaz gráfica de usuario y línea de comandos
<a name="reference-sam-cli-install-verify-hash-macos-installer"></a>

 Comprueba la integridad y autenticidad del instalador descargado mediante la generación de un valor hash mediante el siguiente comando: 

```
$ shasum -a 256 path-to-pkg-installer/name-of-pkg-installer

# Examples
$ shasum -a 256 ~/Downloads/aws-sam-cli-macos-arm64.pkg
$ shasum -a 256 ~/Downloads/aws-sam-cli-macos-x86_64.pkg
```

 Compare el valor de hash del SHA-256 de 64 caracteres con el valor correspondiente del repositorio [AWS SAMCLI de notas de la versión](https://github.com/aws/aws-sam-cli/releases/latest) GitHub. 

# Tutorial: Implemente una aplicación Hello World con AWS SAM
<a name="serverless-getting-started-hello-world"></a>

En este tutorial, utilizará la interfaz de línea de AWS Serverless Application Model comandos (AWS SAMCLI) para realizar lo siguiente:
+ Inicializa, crea e implementa una aplicación de muestra **Hello World**
+ Realice cambios locales y sincronícelos con AWS CloudFormation.
+ Haga pruebas locales en el host de desarrollo.
+ Elimina la aplicación de muestra de la Nube de AWS.

La aplicación de muestra **Hello World** implementa un backend de API básico. Consta de los recursos siguientes:
+ **Amazon API Gateway**: punto de conexión de la API que utilizarás para invocar tu función.
+ **AWS Lambda**: función que procesa la solicitud HTTP API GET y devuelve el mensaje `hello world`.
+ **AWS Identity and Access Management Función (IAM): proporciona** permisos para que los servicios interactúen de forma segura.

El siguiente diagrama muestra los componentes de esta aplicación:

![\[Diagrama de una función de Lambda que se invoca cuando envía una solicitud GET al punto de conexión de la API Gateway.\]](http://docs.aws.amazon.com/es_es/serverless-application-model/latest/developerguide/images/gs-01.png)


**Topics**
+ [

## Requisitos previos
](#serverless-getting-started-hello-world-prerequisites)
+ [

## Paso 1: inicializar la aplicación de muestra Hello World
](#serverless-getting-started-hello-world-init)
+ [

## Paso 2: crear tu propia aplicación
](#serverless-getting-started-hello-world-build)
+ [

## Paso 3: Implemente la aplicación en Nube de AWS
](#serverless-getting-started-hello-world-deploy)
+ [

## Paso 4: ejecutar la aplicación
](#serverless-getting-started-hello-world-run)
+ [

## Paso 5: Interactúa con tu función en el Nube de AWS
](#serverless-getting-started-hello-world-remote-invoke)
+ [

## Paso 6: Modifique y sincronice su aplicación con Nube de AWS
](#serverless-getting-started-hello-world-sync)
+ [

## Paso 7: (opcional) probar tu aplicación localmente
](#serverless-getting-started-hello-world-test)
+ [

## Paso 8: Elimine la aplicación del Nube de AWS
](#serverless-getting-started-hello-world-delete)
+ [

## Resolución de problemas
](#serverless-getting-started-hello-world-troubleshoot)
+ [

## Más información
](#serverless-getting-started-hello-world-learn)

## Requisitos previos
<a name="serverless-getting-started-hello-world-prerequisites"></a>

Asegúrate de haber completado lo siguiente:
+ [AWS SAM requisitos previos](prerequisites.md)
+ [Instala la AWS SAM CLI](install-sam-cli.md)

**nota**  
Si prefiere usar Visual Studio Code para el desarrollo sin servidor, consulte [Creación de aplicaciones sin servidor](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/sam-get-started.html#serverless-apps-create) en la Guía del usuario del AWS Toolkit for VS Code para obtener instrucciones sobre el uso de la step-by-step interfaz VS Code.

## Paso 1: inicializar la aplicación de muestra Hello World
<a name="serverless-getting-started-hello-world-init"></a>

En este paso, utilizarás la AWS SAM CLI para crear un proyecto de aplicación de muestra **Hello World** en su unidad local.

**Para inicializar la aplicación de muestra Hello World**

1. En la línea de comandos, ejecuta lo siguiente desde el directorio de inicio que desees:

   ```
   $ sam init
   ```
**nota**  
Este comando inicializa la aplicación sin servidor y crea el directorio del proyecto. El directorio contiene varios archivos y carpetas, incluido el `template.yaml` archivo, que es su AWS SAM plantilla.  
La versión de Python instalada debe coincidir con la propiedad `Runtime` especificada en`template.yaml`. Para las cargas de trabajo de producción, recomendamos usar Python 3.12 o versiones anteriores que sean totalmente compatibles con los entornos AWS . Si las versiones de Python no coinciden, se producirán errores de compilación.  
Para resolver problemas de compatibilidad de versiones:  
 Especifique un [tiempo de ejecución](sam-cli-command-reference-sam-init.md#sam-cli-command-reference-sam-init-options-runtime) compatible durante la inicialización: `sam init --runtime python3.9`
Modifique la propiedad `Runtime` en `template.yaml` después de la inicialización

1. La AWS SAM CLI te guiará a través de la inicialización de una nueva aplicación. Configura lo siguiente:

   1. Selecciona **Plantillas de inicio rápido de AWS ** para elegir una plantilla de inicio.

   1. Selecciona la plantilla **Ejemplo de Hello World** y descárgala.

   1. Usa el tiempo de ejecución de Python y el tipo de paquete `zip`.

   1. Para este tutorial, opte por no participar en el rastreo. AWS X-Ray Para obtener más información, consulte [¿Qué es? AWS X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html) en la *Guía para AWS X-Ray desarrolladores*.

   1. Para este tutorial, opte por no monitorizar con Amazon CloudWatch Application Insights. Para obtener más información, 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*.

   1. Para este tutorial, debe desactivar el parámetro de registro estructurado en formato JSON en las funciones de Lambda.

   1. Asigna el nombre **sam-app** a tu aplicación.

   Para usar el flujo interactivo de la CLI de AWS SAM:
   + Los corchetes (`[ ]`) indican los valores predeterminados. Deja la respuesta en blanco para seleccionar el valor predeterminado.
   + Escribe **`y`** para **sí** y **`n`** para **no**.

   A continuación, se muestra un ejemplo de flujo interactivo con `sam init`.

   ```
   $ sam init
   ...
   Which template source would you like to use?
       1 - AWS Quick Start Templates
       2 - Custom Template Location
   Choice: 1
   
   Choose an AWS Quick Start application template
       1 - Hello World Example
       2 - Data processing
       3 - Hello World Example with Powertools for AWS Lambda
       4 - Multi-step workflow
       5 - Scheduled task
       6 - Standalone function
       7 - Serverless API
       8 - Infrastructure event management 
       9 - Lambda Response Streaming
      10 - GraphQLApi Hello World Example
      11 - Full Stack
      12 - Lambda EFS example
      13 - Serverless Connector Hello World Example
      14 - Multi-step workflow with Connectors
      15 - DynamoDB Example
      16 - Machine Learning
   Template: 1
   
   Use the most popular runtime and package type? (Python and zip) [y/N]: y
   
   Would you like to enable X-Ray tracing on the function(s) in your application?  [y/N]: ENTER
   
   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]: ENTER
   					
   Would you like to set Structured Logging in JSON format on your Lambda functions?  [y/N]: ENTER
   
   Project name [sam-app]: ENTER
   ```

1.  AWS SAMCLIDescarga la plantilla inicial y crea la estructura de directorios del proyecto de la aplicación en su máquina local. A continuación, se muestra un ejemplo de resultados del AWS SAM CLI output.

   ```
   Cloning from https://github.com/aws/aws-sam-cli-app-templates (process may take a moment)
   
       -----------------------
       Generating application:
       -----------------------
       Name: sam-app
       Runtime: python3.9
       Architectures: x86_64
       Dependency Manager: pip
       Application Template: hello-world
       Output Directory: .
       Configuration file: sam-app/samconfig.toml
   
       Next steps can be found in the README file at sam-app/README.md
   
   
   Commands you can use next
   =========================
   [*] Create pipeline: cd sam-app && sam pipeline init --bootstrap
   [*] Validate SAM template: cd sam-app && sam validate
   [*] Test Function in the Cloud: cd sam-app && sam sync --stack-name {stack-name} --watch
   ```

1. Desde la línea de comandos, dirígete al directorio `sam-app` recién creado. A continuación se muestra un ejemplo de lo que la CLI de AWS SAM ha creado:
**nota**  
Si el comando `tree` no se instala automáticamente, ejecute este comando: `brew install tree`

   ```
   $ cd sam-app
   
   $ tree
   
   ├── README.md
   ├── __init__.py
   ├── events
   │   └── event.json
   ├── hello_world
   │   ├── __init__.py
   │   ├── app.py
   │   └── requirements.txt
   ├── samconfig.toml
   ├── template.yaml
   └── tests
       ├── __init__.py
       ├── integration
       │   ├── __init__.py
       │   └── test_api_gateway.py
       ├── requirements.txt
       └── unit
           ├── __init__.py
           └── test_handler.py
           
   6 directories, 14 files
   ```

   Algunos archivos importantes que hay que destacar:
   + `hello_world/app.py`: contiene el código de tu función de Lambda.
   + `hello_world/requirements.txt`: contiene cualquier dependencia de Python que tu función de Lambda necesite.
   + `samconfig.toml`— Archivo de configuración para su aplicación que almacena los parámetros predeterminados utilizados por AWS SAMCLI.
   + `template.yaml`— La AWS SAM plantilla que contiene el código de infraestructura de la aplicación.

¡Ya tienes una aplicación sin servidor creada enteramente en tu equipo local\$1

## Paso 2: crear tu propia aplicación
<a name="serverless-getting-started-hello-world-build"></a>

En este paso, usa AWS SAM CLI para crear la aplicación y prepararla para la implementación. Mientras la está creando, la de AWS SAM CLI crea un directorio de `.aws-sam` y organiza allí las dependencias de las funciones, el código del proyecto y los archivos del proyecto.

**Para crear tu aplicación**
+ En tu línea de comandos, desde el directorio del proyecto `sam-app`, ejecuta lo siguiente:

  ```
  $ sam build
  ```
**nota**  
 Si no tienes Python en tu equipo local, usa el comando **sam build --use-container ** en su lugar. La AWS SAM CLI creará un contenedor de Docker que incluye el tiempo de ejecución y las dependencias de tu función. Este comando requiere que tengas Docker en tu equipo local. Para instalarDocker, consulta [Instalar Docker](install-docker.md).

  A continuación, se muestra un ejemplo de resultados de la CLI de AWS SAM.

  ```
  $ sam build
  Starting Build use cache
  Manifest file is changed (new hash: 3298f1304...d4d421) or dependency folder (.aws-sam/deps/4d3dfad6-a267-47a6-a6cd-e07d6fae318c) is missing for (HelloWorldFunction), downloading dependencies and copying/building source
  Building codeuri: /Users/.../Demo/sam-tutorial1/sam-app/hello_world runtime: python3.9 metadata: {} architecture: x86_64 functions: HelloWorldFunction
  Running PythonPipBuilder:CleanUp
  Running PythonPipBuilder:ResolveDependencies
  Running PythonPipBuilder:CopySource
  Running PythonPipBuilder:CopySource
  
  Build Succeeded
  
  Built Artifacts  : .aws-sam/build
  Built Template   : .aws-sam/build/template.yaml
  
  Commands you can use next
  =========================
  [*] Validate SAM template: sam validate
  [*] Invoke Function: sam local invoke
  [*] Test Function in the Cloud: sam sync --stack-name {{stack-name}} --watch
  [*] Deploy: sam deploy --guided
  ```

  El siguiente es un ejemplo abreviado del directorio de `.aws-sam` creado por la CLI de AWS SAM :

  ```
  .aws-sam
  ├── build
  │   ├── HelloWorldFunction
  │   │   ├── __init__.py
  │   │   ├── app.py
  │   │   └── requirements.txt
  │   └── template.yaml
  └── build.toml
  ```

Algunos archivos importantes que hay que destacar:
+ `build/HelloWorldFunction`: contiene el código y las dependencias de tu función de Lambda. La AWS SAM CLI crea un directorio para cada función de tu aplicación.
+ `build/template.yaml`— Contiene una copia de la AWS SAM plantilla a la que se hace referencia CloudFormation en el momento de la implementación.
+ `build.toml`: archivo de configuración que almacena los valores de los parámetros predeterminados a los que hace referencia la AWS SAM CLI al crear e implementar la aplicación.

Ahora estás listo o lista para implementar la aplicación en la Nube de AWS.

## Paso 3: Implemente la aplicación en Nube de AWS
<a name="serverless-getting-started-hello-world-deploy"></a>

**nota**  
Este paso requiere la configuración de AWS las credenciales. Para obtener más información, consulta [Paso 5: utilícelo AWS CLI para configurar AWS las credenciales](prerequisites.md#prerequisites-configure-credentials) en [AWS SAM requisitos previos](prerequisites.md).

En este paso, utiliza la AWS SAM CLI para implementar la aplicación en la Nube de AWS. AWS SAMCLIHará lo siguiente:
+ Guiarte a través de la configuración de los ajustes de la aplicación para la implementación.
+ Cargar tus archivos de aplicación en Amazon Simple Storage Service (Amazon S3).
+ Transforma tu AWS SAM plantilla en una CloudFormation plantilla. A continuación, carga la plantilla en el CloudFormation servicio para aprovisionar AWS los recursos.

**Para implementar la aplicación**

1. En tu línea de comandos, desde el directorio del proyecto `sam-app`, ejecuta lo siguiente:

   ```
   $ sam deploy --guided
   ```

1. Sigue el flujo interactivo de la CLI de AWS SAM para configurar los ajustes de la aplicación. Configura lo siguiente:

   1. El **nombre de la CloudFormation pila**: una pila es un conjunto de AWS recursos que puedes gestionar como una sola unidad. Para obtener más información, consulta [Trabajar con pilas](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacks.html) en la *Guía del usuario de AWS CloudFormation *.

   1. El **Región de AWS**lugar en el que desplegar tu CloudFormation pila. Para obtener más información, consulta [CloudFormation Puntos de conexión de](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-endpoints.html) en la *AWS CloudFormation Guía de usuario*.

   1. Para este tutorial, desactiva **confirmar los cambios antes de la implementación**.

   1. Permitir **la creación de funciones de IAM**: permite AWS SAM crear la función de IAM necesaria para que el recurso de API Gateway y el recurso de función de Lambda interactúen.

   1. Para este tutorial, desactiva **deshabilitar la reversión**.

   1. Permitir **HelloWorldFunction sin autorización definida**: este mensaje se muestra porque su punto final de API Gateway está configurado para ser de acceso público, sin autorización. Dado que esta es la configuración prevista para tu aplicación Hello World, deje que la CLI de AWS SAM continúe. Para obtener más información acerca de la autorización de configuración, consulta [Controla el acceso a la API con tu AWS SAM plantilla](serverless-controlling-access-to-apis.md).

   1. **Guardar los argumentos en el archivo de configuración**: esto actualizará el archivo `samconfig.toml` de la aplicación con tus preferencias de implementación.

   1. Selecciona el **nombre del archivo de configuración** predeterminado.

   1. Selecciona el **entorno de configuración** predeterminado.

   A continuación se muestra un ejemplo del flujo interactivo `sam deploy --guided`:

   ```
   $ sam deploy --guided
   
   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]: n
       #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.  AWS SAMCLIDespliega la aplicación de la siguiente manera:
   + La AWS SAM CLI crea un bucket de Amazon S3 y carga el directorio `.aws-sam`.
   +  AWS SAMCLITransforma la AWS SAM plantilla en ella CloudFormation y la carga en el CloudFormation servicio.
   + CloudFormation aprovisiona sus recursos.

   Durante la implementación, la AWS SAM CLI muestra tu progreso. El siguiente es un ejemplo de output:

   ```
   Looking for resources needed for deployment:
   
       Managed S3 bucket: aws-sam-cli-managed-default-samclisam-s3-demo-bucket-1a4x26zbcdkqr
       A different default S3 bucket can be set in samconfig.toml
   
       Parameter "stack_name=sam-app" in [default.deploy.parameters] is defined as a global parameter [default.global.parameters].
       This parameter will be only saved under [default.global.parameters] in /Users/.../Demo/sam-tutorial1/sam-app/samconfig.toml.
   
       Saved arguments to config file
       Running 'sam deploy' for future deployments will use the parameters saved above.
       The above parameters can be changed by modifying samconfig.toml
       Learn more about samconfig.toml syntax at
       https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-config.html
   
   File with same data already exists at sam-app/da3c598813f1c2151579b73ad788cac8, skipping upload
   
       Deploying with following values
       ===============================
       Stack name                   : sam-app
       Region                       : us-west-2
       Confirm changeset            : False
       Disable rollback             : False
       Deployment s3 bucket         : aws-sam-cli-managed-default-samclisam-s3-demo-bucket-1a4x26zbcdkqr
       Capabilities                 : ["CAPABILITY_IAM"]
       Parameter overrides          : {}
       Signing Profiles             : {}
   
   Initiating deployment
   =====================
   
   File with same data already exists at sam-app/2bebf67c79f6a743cc5312f6dfc1efee.template, skipping upload
   
   
   Waiting for changeset to be created..
   
   CloudFormation stack changeset
   ---------------------------------------------------------------------------------------------------------------------------------------------
   Operation                           LogicalResourceId                   ResourceType                        Replacement
   ---------------------------------------------------------------------------------------------------------------------------------------------
   * Modify                            HelloWorldFunction                  AWS::Lambda::Function               False
   * Modify                            ServerlessRestApi                   AWS::ApiGateway::RestApi            False
   - Delete                            AwsSamAutoDependencyLayerNestedSt   AWS::CloudFormation::Stack          N/A
                                       ack
   ---------------------------------------------------------------------------------------------------------------------------------------------
   
   
   Changeset created successfully. arn:aws:cloudformation:us-west-2:012345678910:changeSet/samcli-deploy1678917603/22e05525-08f9-4c52-a2c4-f7f1fd055072
   
   
   2023-03-15 12:00:16 - Waiting for stack create/update to complete
   
   CloudFormation events from stack operations (refresh every 0.5 seconds)
   ---------------------------------------------------------------------------------------------------------------------------------------------
   ResourceStatus                      ResourceType                        LogicalResourceId                   ResourceStatusReason
   ---------------------------------------------------------------------------------------------------------------------------------------------
   UPDATE_IN_PROGRESS                  AWS::Lambda::Function               HelloWorldFunction                  -
   UPDATE_COMPLETE                     AWS::Lambda::Function               HelloWorldFunction                  -
   UPDATE_COMPLETE_CLEANUP_IN_PROGRE   AWS::CloudFormation::Stack          sam-app                             -
   SS
   DELETE_IN_PROGRESS                  AWS::CloudFormation::Stack          AwsSamAutoDependencyLayerNestedSt   -
                                                                           ack
   DELETE_COMPLETE                     AWS::CloudFormation::Stack          AwsSamAutoDependencyLayerNestedSt   -
                                                                           ack
   UPDATE_COMPLETE                     AWS::CloudFormation::Stack          sam-app                             -
   ---------------------------------------------------------------------------------------------------------------------------------------------
   
   CloudFormation outputs from deployed stack
   ----------------------------------------------------------------------------------------------------------------------------------------------
   Outputs
   ----------------------------------------------------------------------------------------------------------------------------------------------
   Key                 HelloWorldFunctionIamRole
   Description         Implicit IAM Role created for Hello World function
   Value               arn:aws:iam::012345678910:role/sam-app-HelloWorldFunctionRole-15GLOUR9LMT1W
   
   Key                 HelloWorldApi
   Description         API Gateway endpoint URL for Prod stage for Hello World function
   Value               https://<restapiid>.execute-api.us-west-2.amazonaws.com/Prod/hello/
   
   Key                 HelloWorldFunction
   Description         Hello World Lambda Function ARN
   Value               arn:aws:lambda:us-west-2:012345678910:function:sam-app-HelloWorldFunction-yQDNe17r9maD
   ----------------------------------------------------------------------------------------------------------------------------------------------
   
   
   Successfully created/updated stack - sam-app in us-west-2
   ```

¡Su aplicación ya está implementada y ejecutándose en el Nube de AWS\$1

## Paso 4: ejecutar la aplicación
<a name="serverless-getting-started-hello-world-run"></a>

En este paso, enviarás una solicitud GET al punto de conexión de la API y verás el resultado de la función de Lambda.

**Para obtener el valor del punto de conexión de tu API**

1. A partir de la información que muestra la AWS SAM CLI en el paso anterior, localiza la sección `Outputs`. En esta sección, localiza tu recurso de `HelloWorldApi` para encontrar el valor del punto de conexión HTTP. El siguiente es un ejemplo de output:

   ```
   ----------------------------------------------------------------------------------------------------------------------------------------------
   Outputs
   ----------------------------------------------------------------------------------------------------------------------------------------------
   ...
   Key                 HelloWorldApi
   Description         API Gateway endpoint URL for Prod stage for Hello World function
   Value               https://ets1gv8lxi.execute-api.us-west-2.amazonaws.com/Prod/hello/
   ...
   ----------------------------------------------------------------------------------------------------------------------------------------------
   ```

1. También puedes utilizar el comando **sam list endpoints --output json** para obtener esta información. El siguiente es un ejemplo de output:

   ```
   $ sam list endpoints --output json
   2023-03-15 12:39:19 Loading policies from IAM...
   2023-03-15 12:39:25 Finished loading policies from IAM.
   [
     {
       "LogicalResourceId": "HelloWorldFunction",
       "PhysicalResourceId": "sam-app-HelloWorldFunction-yQDNe17r9maD",
       "CloudEndpoint": "-",
       "Methods": "-"
     },
     {
       "LogicalResourceId": "ServerlessRestApi",
       "PhysicalResourceId": "ets1gv8lxi",
       "CloudEndpoint": [
         "https://ets1gv8lxi.execute-api.us-west-2.amazonaws.com/Prod",
         "https://ets1gv8lxi.execute-api.us-west-2.amazonaws.com/Stage"
       ],
       "Methods": [
         "/hello['get']"
       ]
     }
   ]
   ```

**Para invocar tu función**
+ Mediante el navegador o la línea de comandos, envía una solicitud GET al punto de conexión de la API. A continuación, se muestra un ejemplo con el comando curl:

  ```
  $ curl https://ets1gv8lxi.execute-api.us-west-2.amazonaws.com/Prod/hello/
  {"message": "hello world"}
  ```

## Paso 5: Interactúa con tu función en el Nube de AWS
<a name="serverless-getting-started-hello-world-remote-invoke"></a>

En este paso, utiliza la AWS SAM CLI para invocar la función de Lambda en la Nube de AWS.

**Para invocar una función de Lambda en la nube**

1. Toma nota del `LogicalResourceId` de la función del paso anterior. Debería ser `HelloWorldFunction`.

1. En tu línea de comandos, desde el directorio del proyecto `sam-app`, ejecuta lo siguiente:

   ```
   $ sam remote invoke HelloWorldFunction --stack-name sam-app
   ```

1.  AWS SAMCLIInvoca tu función en la nube y devuelve una respuesta. El siguiente es un ejemplo de output:

   ```
   $ sam remote invoke HelloWorldFunction --stack-name sam-app
   
   Invoking Lambda Function HelloWorldFunction                                       
   START RequestId: d5ef494b-5f45-4086-86fd-d7322fa1a1f9 Version: $LATEST
   END RequestId: d5ef494b-5f45-4086-86fd-d7322fa1a1f9
   REPORT RequestId: d5ef494b-5f45-4086-86fd-d7322fa1a1f9  Duration: 6.62 ms       Billed Duration: 7 ms     Memory Size: 128 MB     Max Memory Used: 67 MB  Init Duration: 164.06 ms
   {"statusCode":200,"body":"{\"message\":\"hello world\"}"}%
   ```

## Paso 6: Modifique y sincronice su aplicación con Nube de AWS
<a name="serverless-getting-started-hello-world-sync"></a>

En este paso, utilizará el AWS SAMCLI **sam sync --watch** comando para sincronizar los cambios locales en Nube de AWS.

**Para usar la sincronización sam**

1. En tu línea de comandos, desde el directorio del proyecto `sam-app`, ejecuta lo siguiente:

   ```
   $ sam sync --watch
   ```

1. La AWS SAM CLI le pide que confirme que está sincronizando una pila de desarrollo. Como el **sam sync --watch** comando implementa automáticamente los cambios locales Nube de AWS en tiempo real, lo recomendamos únicamente para entornos de desarrollo.

   La AWS SAM CLI realiza una implementación inicial antes de comenzar a monitorear los cambios locales. El siguiente es un ejemplo de output:

   ```
   $ sam sync --watch
   The SAM CLI will use the AWS Lambda, Amazon API Gateway, and AWS StepFunctions APIs to upload your code without
   performing a CloudFormation deployment. This will cause drift in your CloudFormation stack.
   **The sync command should only be used against a development stack**.
   
   Confirm that you are synchronizing a development stack.
   
   Enter Y to proceed with the command, or enter N to cancel:
    [Y/n]: y
   Queued infra sync. Waiting for in progress code syncs to complete...
   Starting infra sync.
   Manifest is not changed for (HelloWorldFunction), running incremental build
   Building codeuri: /Users/.../Demo/sam-tutorial1/sam-app/hello_world runtime: python3.9 metadata: {} architecture: x86_64 functions: HelloWorldFunction
   Running PythonPipBuilder:CopySource
   
   Build Succeeded
   
   Successfully packaged artifacts and wrote output template to file /var/folders/45/5ct135bx3fn2551_ptl5g6_80000gr/T/tmpq3x9vh63.
   Execute the following command to deploy the packaged template
   sam deploy --template-file /var/folders/45/5ct135bx3fn2551_ptl5g6_80000gr/T/tmpq3x9vh63 --stack-name <YOUR STACK NAME>
   
   
       Deploying with following values
       ===============================
       Stack name                   : sam-app
       Region                       : us-west-2
       Disable rollback             : False
       Deployment s3 bucket         : aws-sam-cli-managed-default-samclisam-s3-demo-bucket-1a4x26zbcdkqr
       Capabilities                 : ["CAPABILITY_NAMED_IAM", "CAPABILITY_AUTO_EXPAND"]
       Parameter overrides          : {}
       Signing Profiles             : null
   
   Initiating deployment
   =====================
   
   
   2023-03-15 13:10:05 - Waiting for stack create/update to complete
   
   CloudFormation events from stack operations (refresh every 0.5 seconds)
   ---------------------------------------------------------------------------------------------------------------------------------------------
   ResourceStatus                      ResourceType                        LogicalResourceId                   ResourceStatusReason
   ---------------------------------------------------------------------------------------------------------------------------------------------
   UPDATE_IN_PROGRESS                  AWS::CloudFormation::Stack          sam-app                             Transformation succeeded
   CREATE_IN_PROGRESS                  AWS::CloudFormation::Stack          AwsSamAutoDependencyLayerNestedSt   -
                                                                           ack
   CREATE_IN_PROGRESS                  AWS::CloudFormation::Stack          AwsSamAutoDependencyLayerNestedSt   Resource creation Initiated
                                                                           ack
   CREATE_COMPLETE                     AWS::CloudFormation::Stack          AwsSamAutoDependencyLayerNestedSt   -
                                                                           ack
   UPDATE_IN_PROGRESS                  AWS::Lambda::Function               HelloWorldFunction                  -
   UPDATE_COMPLETE                     AWS::Lambda::Function               HelloWorldFunction                  -
   UPDATE_COMPLETE_CLEANUP_IN_PROGRE   AWS::CloudFormation::Stack          sam-app                             -
   SS
   UPDATE_COMPLETE                     AWS::CloudFormation::Stack          sam-app                             -
   ---------------------------------------------------------------------------------------------------------------------------------------------
   
   CloudFormation outputs from deployed stack
   ----------------------------------------------------------------------------------------------------------------------------------------------
   Outputs
   ----------------------------------------------------------------------------------------------------------------------------------------------
   Key                 HelloWorldFunctionIamRole
   Description         Implicit IAM Role created for Hello World function
   Value               arn:aws:iam::012345678910:role/sam-app-HelloWorldFunctionRole-15GLOUR9LMT1W
   
   Key                 HelloWorldApi
   Description         API Gateway endpoint URL for Prod stage for Hello World function
   Value               https://ets1gv8lxi.execute-api.us-west-2.amazonaws.com/Prod/hello/
   
   Key                 HelloWorldFunction
   Description         Hello World Lambda Function ARN
   Value               arn:aws:lambda:us-west-2:012345678910:function:sam-app-HelloWorldFunction-yQDNe17r9maD
   ----------------------------------------------------------------------------------------------------------------------------------------------
   
   
   Stack update succeeded. Sync infra completed.
   
   Infra sync completed.
   CodeTrigger not created as CodeUri or DefinitionUri is missing for ServerlessRestApi.
   ```

A continuación, modificará el código de tu función de Lambda. AWS SAMCLIDetectará automáticamente este cambio y sincronizará la aplicación con el Nube de AWS.

**Para modificar y sincronizar tu aplicación**

1. Abre el archivo `sam-app/hello_world/app.py` con el IDE que prefiera.

1. Cambia el `message` y guarda el archivo. A continuación, se muestra un ejemplo:

   ```
   import json
   ...
   def lambda_handler(event, context):
       ...
       return {
           "statusCode": 200,
           "body": json.dumps({
               "message": "hello everyone!",
               ...
           }),
       }
   ```

1.  AWS SAMCLIDetecta su cambio y sincroniza su aplicación con. Nube de AWS El siguiente es un ejemplo de output:

   ```
   Syncing Lambda Function HelloWorldFunction...
   Manifest is not changed for (HelloWorldFunction), running incremental build
   Building codeuri: /Users/.../Demo/sam-tutorial1/sam-app/hello_world runtime: python3.9 metadata: {} architecture: x86_64 functions: HelloWorldFunction
   Running PythonPipBuilder:CopySource
   Finished syncing Lambda Function HelloWorldFunction.
   ```

1. Para verificar el cambio, vuelves a enviar una solicitud GET al punto de conexión de la API.

   ```
   $ curl https://ets1gv8lxi.execute-api.us-west-2.amazonaws.com/Prod/hello/
   {"message": "hello everyone!"}
   ```

## Paso 7: (opcional) probar tu aplicación localmente
<a name="serverless-getting-started-hello-world-test"></a>

**nota**  
Este paso es opcional.

**importante**  
Este paso requiere que tenga Docker en su equipo local. Debe tener Docker instalado y configurado para utilizar la CLI de AWS SAM para pruebas locales. Para obtener más información, consulte [Instalar Docker](install-docker.md).

En este paso, se utiliza el AWS SAMCLI **sam local** comando para probar la aplicación de forma local. Para ello, la AWS SAM CLI crea un entorno local utilizando Docker. Este entorno local emula el entorno de ejecución basado en la nube de tu función de Lambda.

Debes hacer lo siguiente:

1. Crea un entorno local para tu función de Lambda e invócala.

1. Aloja tu punto de conexión de la API HTTP localmente y úsalo para invocar tu función de Lambda.

**Para invocar una función de Lambda localmente**

1. En tu línea de comandos, desde el directorio del proyecto `sam-app`, ejecuta lo siguiente:

   ```
   $ sam local invoke
   ```

1. La AWS SAM CLI crea un contenedor de Docker local e invoca tu función. El siguiente es un ejemplo de output:

   ```
   $ sam local invoke
   Invoking app.lambda_handler (python3.9)
   Local image was not found.
   Removing rapid images for repo public.ecr.aws/sam/emulation-python3.9
   Building image.....................
   Using local image: public.ecr.aws/lambda/python:3.9-rapid-x86_64.
   
   Mounting /Users/.../Demo/sam-tutorial1/sam-app/.aws-sam/build/HelloWorldFunction as /var/task:ro,delegated inside runtime container
   START RequestId: b046db01-2a00-415d-af97-35f3a02e9eb6 Version: $LATEST
   END RequestId: b046db01-2a00-415d-af97-35f3a02e9eb6
   REPORT RequestId: b046db01-2a00-415d-af97-35f3a02e9eb6    Init Duration: 1.01 ms    Duration: 633.45 ms    Billed Duration: 634 ms    Memory Size: 128 MB    Max Memory Used: 128 MB
   {"statusCode": 200, "body": "{\"message\": \"hello world\"}"}
   ```

**Para alojar tu API de forma local**

1. En tu línea de comandos, desde el directorio del proyecto `sam-app`, ejecuta lo siguiente:

   ```
   $ sam local start-api
   ```

1. La AWS SAM CLI crea un contenedor de Docker local para la función de Lambda y crea un servidor HTTP local para simular el punto de conexión de la API. El siguiente es un ejemplo de output:

   ```
   $ sam local start-api
   Initializing the lambda functions containers.
   Local image is up-to-date
   Using local image: public.ecr.aws/lambda/python:3.9-rapid-x86_64.
   
   Mounting /Users/.../Demo/sam-tutorial1/sam-app/.aws-sam/build/HelloWorldFunction as /var/task:ro,delegated inside runtime container
   Containers Initialization is done.
   Mounting HelloWorldFunction at http://127.0.0.1:3000/hello [GET]
   You can now browse to the above endpoints to invoke your functions. You do not need to restart/reload SAM CLI while working on your functions, changes will be reflected instantly/automatically. If you used sam build before running local commands, you will need to re-run sam build for the changes to be picked up. You only need to restart AWS SAM CLI if you update your AWS SAM template
   2023-03-15 14:25:21 WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
    * Running on http://127.0.0.1:3000
   2023-03-15 14:25:21 Press CTRL+C to quit
   ```

1. Mediante el navegador o la línea de comandos, envía una solicitud GET al punto de conexión de la API local. A continuación, se muestra un ejemplo con el comando curl:

   ```
   $ curl http://127.0.0.1:3000/hello
   {"message": "hello world"}
   ```

## Paso 8: Elimine la aplicación del Nube de AWS
<a name="serverless-getting-started-hello-world-delete"></a>

En este paso, utilizará el AWS SAMCLI **sam delete** comando para eliminar la aplicación del Nube de AWS.

**Para eliminar la aplicación del Nube de AWS**

1. En tu línea de comandos, desde el directorio del proyecto `sam-app`, ejecuta lo siguiente:

   ```
   $ sam delete
   ```

1. La AWS SAM CLI le pedirá que confirme. A continuación, eliminará el bucket y la CloudFormation pila de Amazon S3 de la aplicación. El siguiente es un ejemplo de output:

   ```
   $ sam delete
       Are you sure you want to delete the stack sam-app in the region us-west-2 ? [y/N]: y
       Are you sure you want to delete the folder sam-app in S3 which contains the artifacts? [y/N]: y
       - Deleting S3 object with key c6ce8fa8b5a97dd022ecd006536eb5a4
       - Deleting S3 object with key 5d513a459d062d644f3b7dd0c8b56a2a.template
       - Deleting S3 object with key sam-app/2bebf67c79f6a743cc5312f6dfc1efee.template
       - Deleting S3 object with key sam-app/6b208d0e42ad15d1cee77d967834784b.template
       - Deleting S3 object with key sam-app/da3c598813f1c2151579b73ad788cac8
       - Deleting S3 object with key sam-app/f798cdd93cee188a71d120f14a035b11
       - Deleting Cloudformation stack sam-app
   
   Deleted successfully
   ```

## Resolución de problemas
<a name="serverless-getting-started-hello-world-troubleshoot"></a>

Para solucionar el problema AWS SAMCLI, consulte[Solución de problemas para AWS SAM CLI](sam-cli-troubleshooting.md).

## Más información
<a name="serverless-getting-started-hello-world-learn"></a>

Para seguir informándote sobre ellos AWS SAM, consulta los siguientes recursos:
+ **[El taller completo de AWS SAM](https://s12d.com/sam-ws-en-intro)**: un taller diseñado para enseñarle muchas de las principales características que AWS SAM ofrece.
+ **[Sesiones con SAM](https://www.youtube.com/playlist?list=PLJo-rJlep0ED198FJnTzhIB5Aut_1vDAd)**: serie de vídeos sobre su uso AWS SAM creada por nuestro equipo de AWS Serverless Developer Advocate.
+ **[Serverless Land](https://serverlessland.com/)**: sitio que reúne la información más reciente, blogs, vídeos, códigos y recursos de aprendizaje acerca del AWS sin servidor.

# Conversión de funciones Lambda en aplicaciones AWS SAM
<a name="convert-lambda-to-sam"></a>

Si tiene una función en la consola Lambda que desea administrar en VS Code como infraestructura como código (IaC), puede transferirla a VS Code y, a continuación, convertirla en una plantilla. AWS SAM Con la función convertida en una AWS SAM plantilla, puede controlar el control de versiones de su infraestructura, automatizar las implementaciones, depurar funciones de forma remota y mantener entornos coherentes durante todo el ciclo de vida del desarrollo. Con las funciones de depuración local y remota, también puede solucionar problemas de forma más eficaz revisando el código, inspeccionando las variables y estableciendo puntos de interrupción tanto a nivel local como en la nube. AWS 

Para obtener instrucciones sobre cómo mover las funciones de la consola y configurar el desarrollo local, consulte [Desarrollo local de funciones de Lambda con VS Code](https://docs.aws.amazon.com/lambda/latest/dg/foundation-iac-local-development.html) en la *Guía para desarrolladores de AWS Lambda *. Siga estas instrucciones para mover una función Lambda de la consola a VS Code y, a continuación, convertirla en una AWS SAM plantilla. Una vez hecho esto, puede realizar lo siguiente:
+ **Depure su función de forma remota en la AWS nube.** Para obtener más información, consulte [Depuración de forma remota de funciones de Lambda con Visual Studio Code](https://docs.aws.amazon.com/lambda/latest/dg/debugging.html) en la *Guía para desarrolladores de AWS Lambda *.
+ **Administrar los recursos y permisos asociados en la infraestructura y en el código.** Para obtener más información, consulte [Uso de Lambda con la infraestructura como código (IaC)](https://docs.aws.amazon.com/lambda/latest/dg/foundation-iac.html) en la *Guía para desarrolladores de AWS Lambda *
+ **Implemente y actualice su aplicación mediante. AWS SAMCLI** Para obtener más información, consulte [AWS SAM CLI](using-sam-cli.md).
+ **Diseñar visualmente su arquitectura sin servidor con Infrastructure Composer.** Para obtener más información, consulte [la Guía para desarrolladores de Infrastructure Composer](https://docs.aws.amazon.com/application-composer/latest/dg/what-is-composer.html).

## Más información
<a name="convert-lambda-to-sam-learn"></a>

Para seguir aprendiendo sobre AWS SAM ellos, consulte los siguientes recursos:
+ **[El taller completo de AWS SAM](https://s12d.com/sam-ws-en-intro)**: un taller diseñado para enseñarle muchas de las principales características que AWS SAM ofrece.
+ **[Sesiones con SAM](https://www.youtube.com/playlist?list=PLJo-rJlep0ED198FJnTzhIB5Aut_1vDAd)**: serie de vídeos sobre su uso AWS SAM creada por nuestro equipo de AWS Serverless Developer Advocate.
+ **[Serverless Land](https://serverlessland.com/)**: sitio que reúne la información más reciente, blogs, vídeos, códigos y recursos de aprendizaje acerca del AWS sin servidor.