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

Crea unAWS Step Functionsstate machine, que puede utilizar para orquestarAWS Lambdafunciones y otrosAWSrecursos 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: Para administrarAWS SAMplantillas que contienen equipos de estado de Step Functions, debe utilizar la versión 0.52.0 o posterior de laAWS SAMCLI:. Para comprobar qué versión tiene, ejecute el comandosam --version.

Sintaxis

Para declarar esta entidad en suAWS Serverless Application Model(AWS SAM), utilice la siguiente sintaxis.

YAML

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

Properties

Definition

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

Para ver un ejemplo de definición de máquina de estado en línea, consulteEjemplos.

Debe proporcionar unaDefinitiono unDefinitionUri.

Type: Mapeo

Obligatorio: Condicional

AWS CloudFormationcompatibilidad: Esta propiedad es específica deAWS SAMy no tiene unAWS CloudFormationequivalente.

DefinitionSubstitutions

Una asignación de cadena a cadena que especifica las asignaciones de variables de marcador de posición en la definición de máquina de estado. Esto permite 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.

Type: Mapeo

Obligatorio: No

AWS CloudFormationcompatibilidad: Esta propiedad es similar a laDefinitionSubstitutionspropiedad de unAWS::StepFunctions::StateMachinerecurso. Si se especifica alguna función intrínseca en una definición de máquina de estado en línea,AWS SAMañade entradas a esta propiedad para inyectarlas en la definición de máquina de estado.

DefinitionUri

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

Si proporciona una ruta de archivo local, la plantilla debe pasar por el flujo de trabajo que incluye elsam deployosam packagepara transformar correctamente la definición. Para ello, debe utilizar la versión 0.52.0 o posterior de laAWS SAMCLI:.

Debe proporcionar unaDefinitiono unDefinitionUri.

Type: Cadena |S3Location

Obligatorio: Condicional

AWS CloudFormationcompatibilidad: Esta propiedad se transfiere directamente alDefinitionS3Locationpropiedad de unAWS::StepFunctions::StateMachinerecurso.

Events

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

Type: EventSource

Obligatorio: No

AWS CloudFormationcompatibilidad: Esta propiedad es específica deAWS SAMy no tiene unAWS CloudFormationequivalente.

Logging

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

Type: LoggingConfiguration

Obligatorio: No

AWS CloudFormationcompatibilidad: Esta propiedad se transfiere directamente alLoggingConfigurationpropiedad de unAWS::StepFunctions::StateMachinerecurso.

Name

El nombre de la máquina de estado.

Type: Cadena

Obligatorio: No

AWS CloudFormationcompatibilidad: Esta propiedad se transfiere directamente alStateMachineNamepropiedad de unAWS::StepFunctions::StateMachinerecurso.

PermissionsBoundary

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

Type: Cadena

Obligatorio: No

AWS CloudFormationcompatibilidad: Esta propiedad se transfiere directamente alPermissionsBoundarypropiedad de unAWS::IAM::Rolerecurso.

Policies

Una o más políticas que necesita la función de ejecución de esta máquina de estado.

Esta propiedad acepta una única cadena o una lista de cadenas. La propiedad puede ser el nombre deAWSadministradoAWS Identity and Access ManagementPolíticas de (IAM),AWS SAMplantillas de políticas o uno o varios documentos de políticas en línea con formato de mapa.

Proporcionas o bien unRoleoPolicies.

Si el archivo deRoleLa propiedad está establecida, se pasa por alto esta propiedad.

Type: String | Lista | Mapa

Obligatorio: Condicional

AWS CloudFormationcompatibilidad: Esta propiedad es específica deAWS SAMy no tiene unAWS CloudFormationequivalente.

Role

ARN de una función de IAM que se utilizará como rol de ejecución de esta máquina de estado.

Debe proporcionar unaRoleoPolicies.

Type: Cadena

Obligatorio: Condicional

AWS CloudFormationcompatibilidad: Esta propiedad se transfiere directamente alRoleArnpropiedad de unAWS::StepFunctions::StateMachinerecurso.

Tags

Una asignación de cadena a cadena que especifica las etiquetas añadidas al equipo de estado y al rol de ejecución correspondiente. Para obtener más información sobre las claves y valores válidos de las etiquetas, consulte laEtiquetaspropiedad de unAWS::StepFunctions::StateMachinerecurso.

Type: Mapeo

Obligatorio: No

AWS CloudFormationcompatibilidad: Esta propiedad es similar a laTagspropiedad de unAWS::StepFunctions::StateMachinerecurso.AWS SAMañade automáticamente unstateMachine:createdBy:SAMetiqueta a este recurso y al rol predeterminado que se genera para él.

Tracing

Selecciona si o noAWS X-Rayestá habilitado para la máquina de estado de. Para obtener más información acerca del uso de X-Ray con Step Functions, consulteAWS X-Rayy Step Functionsen laAWS Step FunctionsGuía para desarrolladores.

Type: TracingConfiguration

Obligatorio: No

AWS CloudFormationcompatibilidad: Esta propiedad se transfiere directamente alTracingConfigurationpropiedad de unAWS::StepFunctions::StateMachinerecurso.

Type

El tipo de máquina de estado de.

Valores válidos: STANDARD o EXPRESS

Type: Cadena

Obligatorio: No

Valor predeterminado: STANDARD

AWS CloudFormationcompatibilidad: Esta propiedad se transfiere directamente alStateMachineTypepropiedad de unAWS::StepFunctions::StateMachinerecurso.

Valores devueltos

Ref.

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

Para obtener más información acerca del uso deRef, consulteRefen laAWS CloudFormationGuía del usuario de.

Fn::GetAtt

Fn::GetAtt devuelve un valor para un atributo especificado de este tipo. Los valores siguientes son los atributos disponibles y los valores devueltos de ejemplo.

Para obtener más información acerca del uso deFn::GetAtt, consulteFn::GetAtten laAWS CloudFormationGuía del usuario de.

Name

Devuelve el nombre de la máquina de estado de, comoHelloWorld-StateMachine.

Ejemplos

Archivo de definición de máquina de estado

A continuación se muestra un ejemplo de máquina de estado definida con un archivo de definición. Lamy_state_machine.asl.jsondebe escribirse en elLenguaje de estados de Amazon.

En este ejemplo, a la acciónDefinitionSubstitutionlas entradas permiten que la máquina de estado incluya recursos declarados en elAWS SAMarchivo de plantilla de.

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 estado en línea

A continuación se muestra un ejemplo de definición de máquina de estado en línea.

En este ejemplo, a la acciónAWS SAMel archivo de plantilla está escrito en YAML, por lo que la definición de máquina de estado también está en YAML. Para declarar una definición de máquina de estado en línea en JSON, escriba suAWS SAMarchivo de plantilla 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