Crear una máquina de estado de Step Functions con AWS SAM - AWS Step Functions

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.

Crear una máquina de estado de Step Functions con AWS SAM

En esta guía, descargará, compilará e implementará una AWS SAM aplicación de ejemplo que contiene una máquina de AWS Step Functions estados. Esta aplicación crea un flujo de trabajo bursátil simulado que se ejecuta en un horario predefinido (tenga en cuenta que el horario está desactivado de forma predeterminada para evitar incurrir en gastos).

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

Diagrama que muestra el flujo de trabajo de este tutorial.

A continuación se muestra una vista previa de los comandos que se ejecutan para crear la aplicación de ejemplo. Para obtener más detalles sobre cada uno de estos comandos, consulte las secciones más adelante en esta página

# Step 1 - Download a sample application. For this tutorial you # will follow the prompts to select an AWS Quick Start Template # called 'Multi-step workflow' sam init # Step 2 - Build your application cd project-directory sam build # Step 3 - Deploy your application sam deploy --guided

Requisitos previos

En esta guía se supone que ha completado los pasos de la instalación del AWS SAM CLI sistema operativo. Se supone que ha hecho lo siguiente:

  1. Creó una AWS cuenta.

  2. IAMPermisos configurados.

  3. Ha instalado Homebrew. Nota: Homebrew solo es un requisito previo para Linux y macOS.

  4. Instaló el AWS SAM CLI. Nota: Asegúrese de tener la versión 0.52.0 o posterior. Puede comprobar qué versión tiene ejecutando el comando sam --version.

Paso 1: Descargar una aplicación de ejemplo de AWS SAM

Comando a ejecutar:

sam init

Siga las indicaciones que aparecen en pantalla para seleccionar lo siguiente:

  1. Plantilla: Plantillas de inicio AWS rápido

  2. Idioma: Python, Ruby, Nodejs, Go, Java o. NET

  3. Nombre del proyecto: (nombre que elija, el valor predeterminado es sam-app)

  4. Aplicación de inicio rápido: flujo de trabajo de varios pasos

Qué AWS SAM está haciendo:

Este comando crea un directorio con el nombre que proporcionó para 'Nombre del proyecto' (el valor predeterminado es sam-app). El contenido específico del directorio dependerá del idioma que elija.

A continuación se presentan los contenidos del directorio cuando se elige uno de los tiempos de ejecución de Python:

├── README.md
├── functions
│   ├── __init__.py
│   ├── stock_buyer
│   │   ├── __init__.py
│   │   ├── app.py
│   │   └── requirements.txt
│   ├── stock_checker
│   │   ├── __init__.py
│   │   ├── app.py
│   │   └── requirements.txt
│   └── stock_seller
│       ├── __init__.py
│       ├── app.py
│       └── requirements.txt
├── statemachine
│   └── stock_trader.asl.json
├── template.yaml
└── tests
    └── unit
        ├── __init__.py
        ├── test_buyer.py
        ├── test_checker.py
        └── test_seller.py

Hay dos archivos especialmente interesantes que puede consultar:

Puede ver la siguiente entrada en el archivo template.yaml, que apunta al archivo de definición de máquina de estado:

Properties: DefinitionUri: statemachine/stock_trader.asl.json

Puede resultar útil mantener la definición de la máquina de estados como un archivo independiente en lugar de incrustarla en la AWS SAM plantilla. Por ejemplo, el seguimiento de los cambios en la definición de la máquina de estado es más fácil si no se incluye la definición en la plantilla. Puede usar Workflow Studio para crear y mantener la definición de la máquina de estado y exportar la definición desde la consola directamente al archivo de especificaciones de Amazon States Language sin fusionarla con la plantilla.

Para obtener más información acerca de la aplicación de ejemplo, vea el archivo README.md en el directorio del proyecto.

Paso 2: Cree su aplicación

Comando a ejecutar:

Primero cambie al directorio del proyecto (es decir, el directorio donde se encuentra el archivo template.yaml de la aplicación de ejemplo; de forma predeterminada es sam-app), después, ejecute este comando:

sam build

Ejemplo de resultados:

  
 Build Succeeded

 Built Artifacts  : .aws-sam/build
 Built Template   : .aws-sam/build/template.yaml

 Commands you can use next
 =========================
 [*] Invoke Function: sam local invoke
 [*] Deploy: sam deploy --guided
       

Qué AWS SAM está haciendo:

AWS SAM CLIIncluye abstracciones para varios tiempos de ejecución de Lambda para crear sus dependencias y copia todos los artefactos de compilación en carpetas de ensayo para que todo esté listo para ser empaquetado e implementado. El comando sam build genera todas las dependencias que tiene la aplicación y copia los artefactos de compilación en carpetas bajo .aws-sam/build.

Paso 3: Implemente su aplicación en la nube AWS

Comando a ejecutar:

sam deploy --guided

Siga las indicaciones que aparecen en pantalla. Puede responder con Enter para aceptar las opciones predeterminadas proporcionadas en la experiencia interactiva.

Qué AWS SAM está haciendo:

Este comando despliega la aplicación en la AWS nube. Toma los artefactos de despliegue que crea con el sam build comando, los empaqueta y los carga en un bucket de Amazon S3 creado por AWS SAM CLI, y despliega la aplicación mediante él. AWS CloudFormation En la salida del comando deploy (implementar) puede ver los cambios que se están realizando en su pila de AWS CloudFormation .

Puede comprobar que la máquina de estado de ejemplo de Step Functions se implementó correctamente siguiendo estos pasos:

  1. Inicie sesión en la consola Step Functions AWS Management Console y ábrala en https://console.aws.amazon.com/states/.

  2. En el panel de navegación izquierdo, elija Máquinas de estado.

  3. Busque y elija su nueva máquina de estado en la lista. Se llamará StockTradingStateMachine -<unique-hash>.

  4. Elija la pestaña Definición.

Ahora debería ver una representación visual de su máquina de estado. Puede comprobar que la representación visual coincide con la definición de máquina de estado que se encuentra en el archivo statemachine/stockTrader.asl.json del directorio del proyecto.

Resolución de problemas

SAMCLIerror: «no existe esa opción: --guided»

Al ejecutar sam deploy, verá el siguiente error:

 
Error: no such option: --guided
            

Esto significa que está utilizando una versión anterior de la AWS SAM CLI que no admite el --guided parámetro. Para solucionar este problema, puede actualizar la versión de AWS SAM CLI a la 0.33.0 o posterior, u omitir el --guided parámetro en el comando. sam deploy

SAMCLIerror: «No se pudieron crear los recursos administrados: no se pudieron localizar las credenciales»

Al ejecutar sam deploy, verá el siguiente error:

 
Error: Failed to create managed resources: Unable to locate credentials
            

Esto significa que no ha configurado AWS las credenciales que le permitan AWS SAM CLI realizar llamadas AWS de servicio. Para solucionar este problema, debe configurar AWS las credenciales. Para obtener más información, consulte Configuración de AWS credenciales en la Guía para AWS Serverless Application Model desarrolladores.

Eliminación

Si ya no necesita los AWS recursos que creó al ejecutar este tutorial, puede eliminarlos eliminando la AWS CloudFormation pila que implementó.

Para eliminar la AWS CloudFormation pila creada con este tutorial mediante el AWS Management Console, sigue estos pasos:

  1. Inicie sesión AWS Management Console y abra la AWS CloudFormation consola en https://console.aws.amazon.com/cloudformation.

  2. En el panel de navegación izquierdo, elija Pilas.

  3. En la lista de pilas, elija sam-app (o el nombre de la pila que creó).

  4. Elija Eliminar.

Cuando termine, el estado de la pila cambiará a DELETE_ COMPLETE.

Como alternativa, puedes eliminar la AWS CloudFormation pila ejecutando el siguiente AWS CLI comando:

aws cloudformation delete-stack --stack-name sam-app --region region

Verify Deleted Stack

Si utilizas ambos métodos para eliminar la AWS CloudFormation pila, puedes comprobar que se ha eliminado. Para ello, ve a https://console.aws.amazon.com/cloudformation, selecciona Pilas en el panel de navegación izquierdo y selecciona Eliminado en el menú desplegable situado a la derecha del cuadro de texto de búsqueda. Debería ver el nombre de su pila sam-app (o el nombre de la pila que creó) en la lista de pilas eliminadas.