Crea tu aplicación con el sam init comando - AWS Serverless Application Model

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.

Crea tu aplicación con el sam init comando

Después de terminar de leer y empezarCómo usar AWS Serverless Application Model (AWS SAM), estarás listo para crear un AWS SAM proyecto en tu entorno de desarrollador. Su AWS SAM proyecto servirá como punto de partida para escribir su aplicación sin servidor. Para obtener una lista de las opciones de AWS SAMCLI sam init comando, consultesam init.

El AWS Serverless Application Model comando Command Line Interface (AWS SAMCLI) sam init proporciona opciones para inicializar una nueva aplicación sin servidor que consta de:

  • Una AWS SAM plantilla para definir el código de infraestructura.

  • Una estructura de carpetas que organiza la aplicación.

  • Configuración para sus AWS Lambda funciones.

Para crear un AWS SAM proyecto, consulte los temas de estas secciones.

Inicialización de aplicación sin servidor

Cómo inicializar una nueva aplicación sin servidor mediante la CLI de AWS SAM
  1. cd a un directorio de inicio.

  2. Ejecute lo siguiente en la línea de comandos:

    $ sam init
  3. La CLI de AWS SAM lo guiará a través de un flujo interactivo para crear una nueva aplicación sin servidor.

    nota

    Como se detalla enTutorial: Implementar una aplicación Hello World, este comando inicializa la aplicación sin servidor y crea el directorio del proyecto. Este directorio contendrá varios archivos y carpetas. El archivo más importante estemplate.yaml. Esta es tu AWS SAM plantilla. Tu versión de python debe coincidir con la versión de python que aparece en el template.yaml archivo que creó el sam init comando.

Elegir una plantilla inicial

Una plantilla consta de lo siguiente:

  1. Una AWS SAM plantilla para el código de infraestructura.

  2. Un directorio inicial del proyecto que organiza los archivos del proyecto. Por ejemplo, esto puede incluir:

    1. Una estructura para el código de la función de Lambda y sus dependencias.

    2. Una carpeta events que contiene los eventos de prueba para las pruebas locales.

    3. Una carpeta tests para respaldar las pruebas unitarias.

    4. Un archivo samconfig.toml para configurar los ajustes del proyecto.

    5. Un archivo ReadMe y otros archivos básicos de inicio del proyecto.

    A continuación, se muestra un ejemplo de un directorio inicial para un proyecto:

    sam-app
    ├── 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

Puede seleccionar de una lista de plantillas de inicio rápido de AWS disponibles o proporcionar su propia ubicación de plantilla personalizada.

Para elegir una plantilla de inicio AWS rápido
  1. Cuando se le solicite, seleccione Plantillas de inicio rápido de AWS .

  2. Seleccione una plantilla de inicio AWS rápido para empezar. A continuación, se muestra un ejemplo:

    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 - Multi-step workflow
        3 - Serverless API
        4 - Scheduled task
        5 - Standalone function
        6 - Data processing
        7 - Hello World Example With Powertools
        8 - Infrastructure event management
        9 - Serverless Connector Hello World Example
        10 - Multi-step workflow with Connectors
        11 - Lambda EFS example
        12 - DynamoDB Example
        13 - Machine Learning
    Template: 4
Para elegir su propia ubicación de plantilla personalizada
  1. Cuando se le solicite, seleccione la ubicación de la plantilla personalizada.

    Which template source would you like to use?
        1 - AWS Quick Start Templates
        2 - Custom Template Location
    Choice: 2
  2. La CLI de AWS SAM le pedirá que proporcione una ubicación para la plantilla.

    Template location (git, mercurial, http(s), zip, path):

    Proporcione cualquiera de las siguientes ubicaciones al archivo.zip de la plantilla:

    • Repositorio GitHub: la ruta al archivo.zip de su repositorio GitHub. El archivo debe estar en la raíz del repositorio.

    • Repositorio Mercurial: la ruta al archivo.zip de su repositorio Mercurial. El archivo debe estar en la raíz del repositorio.

    • Ruta.zip: una ruta HTTPS o local a su archivo.zip.

  3. La CLI de AWS SAM inicializará la aplicación sin servidor con su plantilla personalizada.

Elija un tiempo de ejecución

Al elegir una plantilla de inicio rápido de AWS , la CLI de AWS SAM le pide que seleccione un tiempo de ejecución para las funciones de Lambda. La lista de opciones que muestra la CLI de AWS SAM son los tiempos de ejecución compatibles de forma nativa con Lambda.

Puede utilizar cualquier otro lenguaje de programación con un tiempo de ejecución personalizado. Para ello, debe crear manualmente la estructura inicial de la aplicación. A continuación, puede utilizar sam init para inicializar rápidamente la aplicación configurando una ubicación de plantilla personalizada.

A partir de su selección, la CLI de AWS SAM crea el directorio de inicio para el código y las dependencias de la función de Lambda.

Si Lambda admite varios administradores de dependencias para su tiempo de ejecución, se le solicitará que elija el administrador de dependencias que prefiera.

Elija un tipo de paquete

Cuando elige una plantilla de inicio rápido de AWS y un tiempo de ejecución, la CLI de AWS SAM le pide que seleccione un tipo de paquete. El tipo de paquete determina cómo se implementan las funciones de Lambda para usarlas con el servicio de Lambda. Los dos tipos de paquetes compatibles son:

  1. Imagen del contenedor: contiene el sistema operativo base, el tiempo de ejecución, las extensiones de Lambda, el código de su aplicación y sus dependencias.

  2. Un archivo de archivo .zip, que incluye el código de la aplicación y sus dependencias.

Para obtener más información sobre paquetes de implementación, consulte Paquetes de implementación de Lambda en la Guía para desarrolladores de AWS Lambda .

A continuación, se muestra un ejemplo de estructura de directorios de una aplicación con una función de Lambda empaquetada como imagen de contenedor. AWS SAMCLIDescarga la imagen y crea un directorio Dockerfile en el directorio de la función para especificar la imagen.

sam-app
├── README.md
├── __init__.py
├── events
│   └── event.json
├── hello_world
│   ├── Dockerfile
│   ├── __init__.py
│   ├── app.py
│   └── requirements.txt
├── samconfig.toml
├── template.yaml
└── tests
    ├── __init__.py
    └── unit
        ├── __init__.py
        └── test_handler.py

A continuación, se muestra un ejemplo de estructura de directorios de una aplicación con una función empaquetada como un archivo de archivos.zip.

sam-app
├── 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

Configura el AWS X-Ray rastreo

Puede optar por activar el AWS X-Ray rastreo. Para obtener más información, consulta ¿Qué es? AWS X-Ray en la Guía para AWS X-Ray desarrolladores.

Si la activas, AWS SAMCLI configura tu AWS SAM plantilla. A continuación, se muestra un ejemplo:

Globals: Function: ... Tracing: Active Api: TracingEnabled: True

Configure la supervisión con Amazon CloudWatch Application Insights

Puede optar por activar la supervisión mediante Amazon CloudWatch Application Insights. Para obtener más información, consulte Amazon CloudWatch Application Insights en la Guía del CloudWatch usuario de Amazon.

Si la activas, AWS SAMCLI configurará tu AWS SAM plantilla. A continuación, se muestra un ejemplo:

Resources: ApplicationResourceGroup: Type: AWS::ResourceGroups::Group Properties: Name: Fn::Join: - '' - - ApplicationInsights-SAM- - Ref: AWS::StackName ResourceQuery: Type: CLOUDFORMATION_STACK_1_0 ApplicationInsightsMonitoring: Type: AWS::ApplicationInsights::Application Properties: ResourceGroupName: Fn::Join: - '' - - ApplicationInsights-SAM- - Ref: AWS::StackName AutoConfigurationEnabled: 'true' DependsOn: ApplicationResourceGroup

Asigne un nombre a la aplicación.

Indique un nombre para su solicitud. La CLI de AWS SAM crea una carpeta de nivel superior para la aplicación con este nombre.

Opciones para el inicio de sesión

Estas son algunas de las opciones principales que puede utilizar con el comando sam init. Para obtener una lista de todas las opciones, consulte sam init.

Inicialice una aplicación mediante una ubicación de plantilla personalizada

Utilice la opción --location y proporcione una ubicación de plantilla personalizada compatible. A continuación, se muestra un ejemplo:

$ sam init --location https://github.com/aws-samples/sessions-with-aws-sam/raw/master/starter-templates/web-app.zip

Inicialice una aplicación sin el flujo interactivo

Utilice la opción --no-interactive y proporcione las opciones de configuración en la línea de comandos para omitir el flujo interactivo. A continuación, se muestra un ejemplo:

$ sam init --no-interactive --runtime go1.x --name go-demo --dependency-manager mod --app-template hello-world

Resolución de problemas

Para solucionar el problema AWS SAMCLI, consulteSolución de problemas para AWS SAM CLI.

Ejemplos

Inicialice una nueva aplicación sin servidor mediante la plantilla Hello World Starter AWS

Para ver este ejemplo, consulte Paso 1: inicializar la aplicación de muestra Hello World en el tutorial: Implementación de una aplicación de Hello World.

Inicialice una nueva aplicación sin servidor con una ubicación de plantilla personalizada

Los siguientes son ejemplos de cómo proporcionar una ubicación GitHub a la plantilla personalizada:

$ sam init --location gh:aws-samples/cookiecutter-aws-sam-python $ sam init --location git+sh://git@github.com/aws-samples/cookiecutter-aws-sam-python.git $ sam init --location hg+ssh://hg@bitbucket.org/repo/template-name

A continuación, se muestra un ejemplo de una ruta de archivo local:

$ sam init --location /path/to/template.zip

A continuación, se muestra un ejemplo de una ruta a la que se puede acceder mediante HTTPS:

$ sam init --location https://github.com/aws-samples/sessions-with-aws-sam/raw/master/starter-templates/web-app.zip

Más información

Para obtener más información sobre el uso del comando sam init, consulte los enlaces siguientes:

Siguientes pasos

Ahora que ha creado su AWS SAM proyecto, está listo para empezar a crear su aplicación. Consulte Defina su infraestructura con AWS SAM para obtener instrucciones detalladas sobre las tareas que debe completar para hacerlo.