AWS::Serverless::StateMachine - 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.

AWS::Serverless::StateMachine

Puede utilizar una máquina de estado AWS Step Functions para orquestar funciones de AWS Lambda y otros recursos de AWS para formar flujos de trabajo complejos y sólidos.

Para obtener más información acerca de Step Functions, consulte la AWS Step FunctionsGuía para desarrolladores de .

nota

Al realizar la implementación en AWS CloudFormation, AWS SAM transforma sus recursos de AWS SAM en recursos de AWS CloudFormation. Para obtener más información, consulte Recursos de AWS CloudFormation generados.

Sintaxis

Para declarar esta entidad en su plantilla de AWS Serverless Application Model (AWS SAM), use la siguiente sintaxis:

YAML

Type: AWS::Serverless::StateMachine Properties: AutoPublishAlias: String Definition: Map DefinitionSubstitutions: Map DefinitionUri: String | S3Location DeploymentPreference: DeploymentPreference Events: EventSource Logging: LoggingConfiguration Name: String PermissionsBoundary: String Policies: String | List | Map PropagateTags: Boolean RolePath: String Role: String Tags: Map Tracing: TracingConfiguration Type: String

Propiedades

AutoPublishAlias

El nombre del alias de la máquina de estado. Para obtener más información sobre el uso de los alias de máquinas de estado de Step Functions, consulte Gestión de implementaciones continuas con versiones y alias en la Guía para desarrolladores de AWS Step Functions.

DeploymentPreferenceUtilícelo para configurar las preferencias de implementación de su alias. Si no especificaDeploymentPreference, AWS SAM configurará el tráfico para que cambie a la versión más reciente de la máquina de estados de una sola vez.

AWS SAM establece las versiones DeletionPolicy y UpdateReplacePolicy a Retain de forma predeterminada. Las versiones anteriores no se eliminarán automáticamente.

Tipo: cadena

Obligatorio: no

Compatibilidad con AWS CloudFormation: esta propiedad se transfiere directamente a la propiedad Name de un recurso AWS::StepFunctions::StateMachineAlias.

Definition

La definición de máquina de estado es un objeto, en el que el formato del objeto coincide con el formato del archivo de plantilla de AWS SAM, por ejemplo, JSON o YAML. Las definiciones de máquina de estado cumplen con elLenguaje de estados de Amazon.

Para ver un ejemplo de una definición de máquina de estados en línea, consulte Ejemplos.

Debe proporcionar un Definition o un DefinitionUri.

Tipo: mapa

Obligatorio: condicional

Compatibilidad con AWS CloudFormation: esta propiedad es exclusiva de AWS SAM y no tiene un equivalente AWS CloudFormation.

DefinitionSubstitutions

Un string-to-string mapa que especifica las asignaciones de las variables de marcador de posición en la definición de la máquina de estados. Esto permite al cliente inyectar valores obtenidos en tiempo de ejecución, por ejemplo, a partir de funciones intrínsecas, en la definición de máquina de estado.

Tipo: mapa

Obligatorio: no

Compatibilidad con AWS CloudFormation: esta propiedad es similar a la propiedad DefinitionSubstitutions de un recurso AWS::StepFunctions::StateMachine. Si se especifica alguna función intrínseca en una definición de máquina de estados en línea, AWS SAM agrega entradas a esta propiedad para insertarlas en la definición de máquina de estados.

DefinitionUri

La URI de Amazon Simple Storage Service (Amazon S3) o la ruta de archivo local de la definición de la máquina de estados escrita en Amazon States Language.

Si proporciona una ruta de archivo local, la plantilla debe seguir el flujo de trabajo que incluye el comando sam deploy o sam package para transformar la definición correctamente. Para hacerlo, debe utilizar la versión 0.52.0 o posterior de la CLI de AWS SAM.

Debe proporcionar un Definition o un DefinitionUri.

Tipo: Cadena | S3Location

Obligatorio: condicional

Compatibilidad con AWS CloudFormation: esta propiedad se transfiere directamente a la propiedad DefinitionS3Location de un recurso de AWS::StepFunctions::StateMachine.

DeploymentPreference

Los ajustes que permiten y configuran las implementaciones graduales de máquinas de estado. Para obtener más información sobre las implementaciones graduales de Step Functions, consulte Gestión de implementaciones continuas con versiones y alias en la Guía para desarrolladores de AWS Step Functions.

Especifique esta propiedad AutoPublishAlias antes de configurar. La configuración DeploymentPreference se aplicará al alias especificado con AutoPublishAlias.

Cuando especifiqueDeploymentPreference, AWS SAM generará automáticamente el valor de la subpropiedad StateMachineVersionArn.

Tipo: DeploymentPreference

Obligatorio: no

Compatibilidad con AWS CloudFormation: AWS SAM genera y adjunta el valor de la propiedad StateMachineVersionArn a DeploymentPreference y transfiere DeploymentPreference a la propiedad DeploymentPreference de un recurso AWS::StepFunctions::StateMachineAlias.

Events

Especifica los eventos que activan esta máquina de estados. Los eventos constan de un tipo y un conjunto de propiedades que dependen del tipo.

Tipo: EventSource

Obligatorio: no

Compatibilidad con AWS CloudFormation: esta propiedad es exclusiva de AWS SAM y no tiene un equivalente AWS CloudFormation.

Logging

Define qué eventos del historial de ejecución se registran y dónde se registran.

Tipo: LoggingConfiguration

Obligatorio: no

Compatibilidad con AWS CloudFormation: esta propiedad se transfiere directamente a la propiedad LoggingConfiguration de un recurso AWS::StepFunctions::StateMachine.

Name

El nombre de la máquina de estado.

Tipo: cadena

Obligatorio: no

Compatibilidad con AWS CloudFormation: esta propiedad se transfiere directamente a la propiedad StateMachineName de un recurso AWS::StepFunctions::StateMachine.

PermissionsBoundary

El ARN de un límite de permisos que se utilizará para el rol de ejecución de esta máquina de estados. Esta propiedad solo funciona si el rol se genera para usted.

Tipo: cadena

Obligatorio: no

Compatibilidad con AWS CloudFormation: esta propiedad se transfiere directamente a la propiedad PermissionsBoundary de un recurso AWS::IAM::Role.

Policies

Políticas de permisos para esta máquina de estados. Las políticas se añadirán al rol de ejecución predeterminada AWS Identity and Access Management (IAM) de la máquina de estados.

Esta propiedad acepta un valor único o una lista de valores. Entre los valores permitidos se incluyen:

nota

Si especifica la propiedad Role, pasa por alto esta propiedad.

Tipo: Cadena | Lista | Mapa

Obligatorio: no

Compatibilidad con AWS CloudFormation: esta propiedad es exclusiva de AWS SAM y no tiene un equivalente AWS CloudFormation.

PropagateTags

Indique si quiere pasar o no las etiquetas de la propiedad Tags a los recursos generados AWS::Serverless::StateMachine. Especifique True para propagar las etiquetas en los recursos generados.

Tipo: Booleano

Obligatorio: no

Valor predeterminado: False

Compatibilidad con AWS CloudFormation: esta propiedad es exclusiva de AWS SAM y no tiene un equivalente AWS CloudFormation.

Role

El ARN de un rol de IAM que se utilizará como rol de ejecución de esta máquina de estados.

Tipo: cadena

Obligatorio: condicional

Compatibilidad con AWS CloudFormation: esta propiedad se transfiere directamente a la propiedad RoleArn de un recurso de AWS::StepFunctions::StateMachine.

RolePath

La ruta al rol de ejecución IAM de la máquina de estados.

Utilice esta propiedad cuando se genere el rol para usted. No la utilice si el rol se especifica con la propiedad Role.

Tipo: cadena

Obligatorio: condicional

Compatibilidad con AWS CloudFormation: esta propiedad se transfiere directamente a la propiedad Path de un recurso de AWS::IAM::Role.

Tags

Un string-to-string mapa que especifica las etiquetas añadidas a la máquina de estados y la función de ejecución correspondiente. Para obtener información sobre las claves y los valores válidos de las etiquetas, consulte la propiedad Etiquetas de un recurso AWS::StepFunctions::StateMachine.

Tipo: mapa

Obligatorio: no

Compatibilidad con AWS CloudFormation: esta propiedad es similar a la propiedad Tags de un recurso AWS::StepFunctions::StateMachine. AWS SAM agrega automáticamente una etiqueta stateMachine:createdBy:SAM a este recurso y al rol predeterminado que se genera para él.

Tracing

Selecciona si AWS X-Ray está habilitada o no para la máquina de estado. Para obtener más información sobre X-Ray con Step Functions, consulte Step Functions y AWS X-Ray en la Guía para desarrolladores de AWS Step Functions.

Tipo: TracingConfiguration

Obligatorio: no

Compatibilidad con AWS CloudFormation: esta propiedad se transfiere directamente a la propiedad TracingConfiguration de un recurso AWS::StepFunctions::StateMachine.

Type

El tipo de máquina de estado.

Valores válidos: STANDARD o EXPRESS

Tipo: cadena

Obligatorio: no

Valor predeterminado: STANDARD

Compatibilidad con AWS CloudFormation: esta propiedad se transfiere directamente a la propiedad StateMachineType de un recurso AWS::StepFunctions::StateMachine.

Valores devueltos

Ref.

Al proporcionar el ID lógico de este recurso a la función intrínseca Ref, esta devuelve el nombre de recurso de Amazon (ARN) del recurso AWS::StepFunctions::StateMachine subyacente.

Para obtener más información sobre el uso de la función Ref, consulte Ref en la Guía del usuario de AWS CloudFormation.

Ventilador: GetAtt

Fn::GetAtt devuelve un valor para un atributo especificado de este tipo. A continuación se indican los atributos disponibles y los valores devueltos de muestra.

Para obtener más información acerca de cómo usar Fn::GetAtt, consulte Fn::GetAtt en la Guía del usuario de AWS CloudFormation.

Name

Devuelve el nombre de la máquina de estados, como HelloWorld-StateMachine.

Ejemplos

Archivo de definición de máquina de estado

El siguiente es un ejemplo de una máquina de estado definida con un archivo de definición. El archivo my_state_machine.asl.json debe estar escrito en Amazon States Language.

En este ejemplo, las entradas DefinitionSubstitution permiten que la máquina de estados incluya los recursos declarados en el archivo de plantilla de AWS SAM.

YAML

MySampleStateMachine: Type: AWS::Serverless::StateMachine Properties: DefinitionUri: statemachine/my_state_machine.asl.json Role: arn:aws:iam::123456123456:role/service-role/my-sample-role Tracing: Enabled: true DefinitionSubstitutions: MyFunctionArn: !GetAtt MyFunction.Arn MyDDBTable: !Ref TransactionTable

Definición de máquina de estados en línea

A continuación, se muestra un ejemplo de una definición de máquinas de estado insertadas.

En este ejemplo, el archivo de plantilla de AWS SAM está escrito en YAML, por lo que la definición de la máquina de estados también está en YAML. Para declarar una definición de máquina de estados integrada en JSON, escriba el archivo de plantilla de AWS SAM en JSON.

YAML

MySampleStateMachine: Type: AWS::Serverless::StateMachine Properties: Definition: StartAt: MyLambdaState States: MyLambdaState: Type: Task Resource: arn:aws:lambda:us-east-1:123456123456:function:my-sample-lambda-app End: true Role: arn:aws:iam::123456123456:role/service-role/my-sample-role Tracing: Enabled: true