Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

Uso AWS SAM para crear flujos de trabajo de Step Functions

Modo de enfoque
Uso AWS SAM para crear flujos de trabajo de Step Functions - 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.

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.

Puede usarlo AWS Serverless Application Model con Step Functions para crear flujos de trabajo e implementar la infraestructura que necesita, incluidas las funciones APIs y eventos de Lambda, para crear aplicaciones sin servidor.

También puede usar la AWS Serverless Application Model CLI junto con la AWS Toolkit for Visual Studio Code como parte de una experiencia integrada para crear e implementar máquinas de AWS Step Functions estado. Puede desarrollar una aplicación sin servidor con AWS SAM y luego construir su máquina de estado en el IDE de VS Code. Posteriormente, puede validar, empaquetar e implementar sus recursos.

sugerencia

Para implementar un ejemplo de aplicación sin servidor que inicie un flujo de trabajo de Step Functions mediante AWS SAM, consulte Implementar con AWS SAM in The AWS Step Functions Workshop.

¿Por qué usar Step Functions con AWS SAM?

Cuando utilizas Step Functions con AWS SAM , puedes:

  • Comience a usar una plantilla AWS SAM de ejemplo.

  • Crear su máquina de estado en su aplicación sin servidor.

  • Utilice la sustitución de variables para sustituirlas ARNs en su máquina de estados en el momento de la implementación.

    AWS CloudFormation soportes DefinitionSubstitutionsque le permiten añadir referencias dinámicas en la definición de su flujo de trabajo a un valor que proporcione en su CloudFormation plantilla. Puede añadir referencias dinámicas añadiendo sustituciones a la definición del flujo de trabajo mediante la notación ${dollar_sign_brace}. También debe definir estas referencias dinámicas en la DefinitionSubstitutions propiedad del StateMachine recurso de su CloudFormation plantilla. Estas sustituciones se sustituyen por valores reales durante el CloudFormation proceso de creación de pilas. Para obtener más información, consulte DefinitionSubstitutions en AWS SAM plantillas.

  • Especifique la función de su máquina de estados mediante plantillas AWS SAM de políticas.

  • Inicie las ejecuciones de máquinas de estado con API Gateway, EventBridge eventos o según una programación incluida en su AWS SAM plantilla.

Integración de Step Functions con la especificación de AWS SAM

Puede utilizar las plantillas de políticas de AWS SAM para agregar permisos a su máquina de estado. Con estos permisos, puede organizar las funciones de Lambda y AWS otros recursos para crear flujos de trabajo complejos y sólidos.

Integración de Step Functions con la CLI de SAM

Step Functions está integrado con la AWS SAM CLI. Utilice esto para desarrollar rápidamente una máquina de estado en su aplicación sin servidor.

Pruebe el Crear una máquina de estado de Step Functions con AWS SAM tutorial para aprender a utilizarlas AWS SAM para crear máquinas de estado.

Las funciones AWS SAM CLI compatibles incluyen:

Comando de la CLI Descripción
sam init

Inicializa una aplicación sin servidor con una AWS SAM plantilla. Se puede utilizar con una plantilla de SAM para Step Functions.

sam validate Valida una plantilla. AWS SAM
sam package

Empaqueta una AWS SAM aplicación. Crea un archivo ZIP de su código y dependencias y luego lo carga en Amazon S3. Después, el comando devuelve una copia de la plantilla de AWS SAM , sustituyendo las referencias a artefactos locales con la ubicación de Amazon S3 donde el comando cargó los artefactos.

sam deploy Implementa una AWS SAM aplicación.
sam publish

Publica una AWS SAM aplicación en. AWS Serverless Application Repository Este comando toma una AWS SAM plantilla empaquetada y publica la aplicación en la región especificada.

nota

Si usa AWS SAM local, puede emular Lambda y API Gateway localmente. Sin embargo, no puedes emular Step Functions localmente usando AWS SAM.

DefinitionSubstitutions en AWS SAM plantillas

Puede definir máquinas de estado mediante CloudFormation plantillas con AWS SAM. Usando AWS SAM, puede definir la máquina de estados en línea en la plantilla o en un archivo independiente. Los siguientes ejemplos de AWS SAM la plantilla incluye una máquina de estados que simula un flujo de trabajo de negociación de acciones. Esta máquina de estados invoca tres Lambda funciona para comprobar el precio de una acción y determinar si se debe comprar o vender la acción. Luego, esta transacción se registra en un Amazon DynamoDB tabla. El ARNs para el Lambda funciones y DynamoDB la tabla de la siguiente plantilla se especifica mediante DefinitionSubstitutions.

AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Description: | step-functions-stock-trader Sample SAM Template for step-functions-stock-trader Resources: StockTradingStateMachine: Type: AWS::Serverless::StateMachine Properties: DefinitionSubstitutions: StockCheckerFunctionArn: !GetAtt StockCheckerFunction.Arn StockSellerFunctionArn: !GetAtt StockSellerFunction.Arn StockBuyerFunctionArn: !GetAtt StockBuyerFunction.Arn DDBPutItem: !Sub arn:${AWS::Partition}:states:::dynamodb:putItem DDBTable: !Ref TransactionTable Policies: - DynamoDBWritePolicy: TableName: !Ref TransactionTable - LambdaInvokePolicy: FunctionName: !Ref StockCheckerFunction - LambdaInvokePolicy: FunctionName: !Ref StockBuyerFunction - LambdaInvokePolicy: FunctionName: !Ref StockSellerFunction DefinitionUri: statemachine/stock_trader.asl.json StockCheckerFunction: Type: AWS::Serverless::Function Properties: CodeUri: functions/stock-checker/ Handler: app.lambdaHandler Runtime: nodejs18.x Architectures: - x86_64 StockSellerFunction: Type: AWS::Serverless::Function Properties: CodeUri: functions/stock-seller/ Handler: app.lambdaHandler Runtime: nodejs18.x Architectures: - x86_64 StockBuyerFunction: Type: AWS::Serverless::Function Properties: CodeUri: functions/stock-buyer/ Handler: app.lambdaHandler Runtime: nodejs18.x Architectures: - x86_64 TransactionTable: Type: AWS::DynamoDB::Table Properties: AttributeDefinitions: - AttributeName: id AttributeType: S

El siguiente código es la definición de máquina de estado del archivo stock_trader.asl.json que se utiliza en el tutorial Crear una máquina de estado de Step Functions con AWS SAM. Esta definición de máquina de estado contiene varias DefinitionSubstitutions que se denotan mediante notación ${dollar_sign_brace}. Por ejemplo, en lugar de especificar una estática Lambda función ARN para la Check Stock Value tarea, se utiliza la sustitución${StockCheckerFunctionArn}. Esta sustitución se define en la propiedad DefinitionSubstitutions de la plantilla. DefinitionSubstitutions es un mapa de pares de clave-valor para el recurso de la máquina de estado. EnDefinitionSubstitutions, $ {StockCheckerFunctionArn} se asigna al ARN del StockCheckerFunction recurso mediante el CloudFormation función intrínseca. !GetAtt Al implementar la AWS SAM DefinitionSubstitutionsen la plantilla, los valores de la plantilla se sustituyen por los valores reales.

{ "Comment": "A state machine that does mock stock trading.", "StartAt": "Check Stock Value", "States": { "Check Stock Value": { "Type": "Task", "Resource": "arn:aws:states:::lambda:invoke", "OutputPath": "$.Payload", "Parameters": { "Payload.$": "$", "FunctionName": "${StockCheckerFunctionArn}" }, "Next": "Buy or Sell?" }, "Buy or Sell?": { "Type": "Choice", "Choices": [ { "Variable": "$.stock_price", "NumericLessThanEquals": 50, "Next": "Buy Stock" } ], "Default": "Sell Stock" }, "Buy Stock": { "Type": "Task", "Resource": "arn:aws:states:::lambda:invoke", "OutputPath": "$.Payload", "Parameters": { "Payload.$": "$", "FunctionName": "${StockBuyerFunctionArn}" }, "Retry": [ { "ErrorEquals": [ "Lambda.ServiceException", "Lambda.AWSLambdaException", "Lambda.SdkClientException", "Lambda.TooManyRequestsException" ], "IntervalSeconds": 1, "MaxAttempts": 3, "BackoffRate": 2 } ], "Next": "Record Transaction" }, "Sell Stock": { "Type": "Task", "Resource": "arn:aws:states:::lambda:invoke", "OutputPath": "$.Payload", "Parameters": { "Payload.$": "$", "FunctionName": "${StockSellerFunctionArn}" }, "Next": "Record Transaction" }, "Record Transaction": { "Type": "Task", "Resource": "arn:aws:states:::dynamodb:putItem", "Parameters": { "TableName": "${DDBTable}", "Item": { "Id": { "S.$": "$.id" }, "Type": { "S.$": "$.type" }, "Price": { "N.$": "$.price" }, "Quantity": { "N.$": "$.qty" }, "Timestamp": { "S.$": "$.timestamp" } } }, "End": true } } }

Pasos a seguir a continuación

Puede obtener más información sobre el uso de Step Functions AWS SAM con los siguientes recursos:

También puede diseñar y crear sus flujos de trabajo en infraestructura como código (IaC) mediante generadores visuales, como Workflow Studio en Infrastructure Composer. Para obtener más información, consulteUso de Workflow Studio en Infrastructure Composer para crear flujos de trabajo de Step Functions.

PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.