AWS::Serverless::StateMachine - AWS Serverless Application Model

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

AWS::Serverless::StateMachine

Crée une machine à AWS Step Functions états, que vous pouvez utiliser pour orchestrer des AWS Lambda fonctions et d'autres AWS ressources afin de créer des flux de travail complexes et robustes.

Pour plus d'informations sur Step Functions, consultez le AWS Step Functions Guide du développeur .

Note

Lorsque vous déployez vers AWS CloudFormation, vos AWS SAM ressources sont AWS SAM transformées en AWS CloudFormation ressources. Pour plus d’informations, consultez Ressources AWS CloudFormation générées.

Syntaxe

Pour déclarer cette entité dans votre modèle AWS Serverless Application Model (AWS SAM), utilisez la syntaxe suivante.

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

Propriétés

AutoPublishAlias

Nom de l’alias de la machine d'état. Pour en savoir plus sur l'utilisation des alias de machine d'état Step Functions, consultez la section Gérer les déploiements continus avec des versions et des alias dans le Guide du développeur AWS Step Functions .

Utiliser DeploymentPreference pour configurer les préférences de déploiement pour votre alias. Si vous ne le spécifiez pasDeploymentPreference, AWS SAM configurera le trafic pour qu'il passe immédiatement à la nouvelle version de State Machine.

AWS SAM définit les versions DeletionPolicy et UpdateReplacePolicy to Retain par défaut. Les versions précédentes ne seront pas supprimées automatiquement.

Type : chaîne

Obligatoire : non

AWS CloudFormation compatibilité : cette propriété est transmise directement à la Name propriété d'une AWS::StepFunctions::StateMachineAlias ressource.

Definition

La définition de la machine à états est un objet dont le format correspond au format de votre fichier AWS SAM modèle, par exemple JSON ou YAML. Les définitions de machine d'état respectent le langage des états Amazon.

Pour un exemple de définition de machine d'état en ligne, consultez Exemples.

Vous devez fournir une Definition ou une DefinitionUri.

Type: carte (map)

Obligatoire : Conditionnelle

AWS CloudFormation compatibilité : cette propriété est unique AWS SAM et n'a pas d' AWS CloudFormation équivalent.

DefinitionSubstitutions

string-to-string Carte qui spécifie les mappages pour les variables d'espace réservé dans la définition de la machine à états. Cela permet au client d'injecter des valeurs obtenues au moment de l'exécution, par exemple à partir de fonctions intrinsèques, dans la définition de la machine d'état.

Type: carte (map)

Obligatoire : non

AWS CloudFormation compatibilité : cette propriété est similaire à celle DefinitionSubstitutions d'une AWS::StepFunctions::StateMachine ressource. Si des fonctions intrinsèques sont spécifiées dans une définition de machine à états en ligne, AWS SAM ajoute des entrées à cette propriété pour les injecter dans la définition de machine à états.

DefinitionUri

L'URI Amazon Simple Storage Service (Amazon S3) ou le chemin d'accès au fichier local de la définition de la machine d'état écrits dans la Langue des états d'Amazon.

Si vous fournissez un chemin d'accès au fichier local, le modèle doit passer par le flux de travail qui inclut le fichier sam deploy ou la commande sam package pour que la définition soit correctement transformée. Pour ce faire, vous devez utiliser la version 0.52.0 ou ultérieure de la CLI AWS SAM .

Vous devez fournir une Definition ou une DefinitionUri.

Type : chaîne |Emplacement S3

Obligatoire : Conditionnelle

AWS CloudFormation compatibilité : cette propriété est transmise directement à la DefinitionS3Location propriété d'une AWS::StepFunctions::StateMachine ressource.

DeploymentPreference

Les paramètres qui permettent et configurent les déploiements de machines à états progressifs. Pour en savoir plus sur les déploiements progressifs de Step Functions, consultez la section Gérer les déploiements continus avec des versions et des alias dans le Guide du développeur AWS Step Functions .

Spécifiez AutoPublishAlias avant de configurer cette propriété. Vos paramètres DeploymentPreference seront appliqués à l'alias spécifié avec AutoPublishAlias.

Lorsque vous spécifiezDeploymentPreference, AWS SAM génère automatiquement la valeur de la StateMachineVersionArn sous-propriété.

Type : DeploymentPreference

Obligatoire : non

AWS CloudFormation compatibilité : AWS SAM génère et attache la valeur de StateMachineVersionArn propriété à la propriété DeploymentPreference d'une AWS::StepFunctions::StateMachineAlias ressource DeploymentPreference et la DeploymentPreference transmet à celle-ci.

Events

Spécifie les événements qui déclenchent cette machine d'état. Les événements sont constitués d'un type et d'un ensemble de propriétés qui dépendent du type.

Type : EventSource

Obligatoire : non

AWS CloudFormation compatibilité : cette propriété est unique AWS SAM et n'a pas d' AWS CloudFormation équivalent.

Logging

Définit quels événements de l'historique d'exécution sont journalisés et à quel emplacement.

Type : LoggingConfiguration

Obligatoire : non

AWS CloudFormation compatibilité : cette propriété est transmise directement à la LoggingConfiguration propriété d'une AWS::StepFunctions::StateMachine ressource.

Name

Nom de la machine d'état.

Type : chaîne

Obligatoire : non

AWS CloudFormation compatibilité : cette propriété est transmise directement à la StateMachineName propriété d'une AWS::StepFunctions::StateMachine ressource.

PermissionsBoundary

L'ARN d'une limite d'autorisations à utiliser pour le rôle d'exécution de cette machine d'état. Cette propriété ne fonctionne que si le rôle est généré pour vous.

Type : chaîne

Obligatoire : non

AWS CloudFormation compatibilité : cette propriété est transmise directement à la PermissionsBoundary propriété d'une AWS::IAM::Role ressource.

Policies

Politiques d'autorisation pour cette machine d'état. Les politiques seront ajoutées au rôle d'exécution par défaut AWS Identity and Access Management (IAM) de la machine à états.

Cette propriété accepte une valeur unique ou une liste de valeurs. Les valeurs autorisées sont les suivantes :

Note

Si vous définissez la propriété Role, cette propriété est ignorée.

Type : chaîne | liste | carte

Obligatoire : non

AWS CloudFormation compatibilité : cette propriété est unique AWS SAM et n'a pas d' AWS CloudFormation équivalent.

PropagateTags

Indiquez s'il faut ou non transmettre les balises de la propriété Tags aux ressources AWS::Serverless::StateMachine que vous avez générées. Spécifiez True pour la propagation des balises dans vos ressources générées.

Type : valeur booléenne

Obligatoire : non

Par défaut : False

AWS CloudFormation compatibilité : cette propriété est unique AWS SAM et n'a pas d' AWS CloudFormation équivalent.

Role

L'ARN d'un rôle IAM à utiliser comme rôle d'exécution de cette machine d'état.

Type : chaîne

Obligatoire : Conditionnelle

AWS CloudFormation compatibilité : cette propriété est transmise directement à la RoleArn propriété d'une AWS::StepFunctions::StateMachine ressource.

RolePath

Le chemin d'accès au rôle d'exécution IAM de la machine d'état.

Utilisez cette propriété lorsque le rôle est généré pour vous. Ne l'utilisez pas lorsque le rôle est spécifié avec la propriété Role.

Type : chaîne

Obligatoire : Conditionnelle

AWS CloudFormation compatibilité : cette propriété est transmise directement à la Path propriété d'une AWS::IAM::Role ressource.

Tags

Une string-to-string carte qui spécifie les balises ajoutées à la machine d'état et le rôle d'exécution correspondant. Pour en savoir plus sur les clés et les valeurs valides pour les étiquettes, consultez la propriété Étiquettes d'une ressource AWS::StepFunctions::StateMachine.

Type: carte (map)

Obligatoire : non

AWS CloudFormation compatibilité : cette propriété est similaire à celle Tags d'une AWS::StepFunctions::StateMachine ressource. AWS SAM ajoute automatiquement une stateMachine:createdBy:SAM balise à cette ressource et au rôle par défaut généré pour celle-ci.

Tracing

Indique si la machine à états AWS X-Ray est activée ou non. Pour plus d'informations sur l'utilisation de X-Ray avec Step Functions, consultez AWS X-Ray et Step Functions dans le Guide du développeur AWS Step Functions .

Type : TracingConfiguration

Obligatoire : non

AWS CloudFormation compatibilité : cette propriété est transmise directement à la TracingConfiguration propriété d'une AWS::StepFunctions::StateMachine ressource.

Type

Le type de la machine d'état.

Valeurs valides : STANDARD ou EXPRESS

Type : chaîne

Obligatoire : non

Par défaut : STANDARD

AWS CloudFormation compatibilité : cette propriété est transmise directement à la StateMachineType propriété d'une AWS::StepFunctions::StateMachine ressource.

Valeurs renvoyées

Réf

Lorsque vous fournissez l'ID logique de cette ressource à la fonction intrinsèque Réf, Réf renvoie l'Amazon Resource Name (ARN) de la ressource sous-jacente AWS::StepFunctions::StateMachine.

Pour plus d'informations sur l'utilisation de la fonction Ref, consultez Ref dans le Guide de l'utilisateur AWS CloudFormation .

Ventilateur : GetAtt

Fn::GetAtt renvoie une valeur pour un attribut de ce type indiqué. Voici les attributs disponibles et des exemples de valeurs de retour.

Pour plus d'informations sur l'utilisation de Fn::GetAtt, consultez Fn::GetAtt dans le Guide de l'utilisateur AWS CloudFormation .

Name

Renvoie le nom de la machine d'état, comme HelloWorld-StateMachine.

Exemples

Fichier de définition de la machine d'état

Voici un exemple de définition de machine à états intégrée qui permet à une fonction lambda d'invoquer une machine à états. Notez que cet exemple attend de la Role propriété qu'elle configure une politique appropriée pour autoriser l'invocation. Le fichier my_state_machine.asl.json doit être écrit dans la Langue des états Amazon.

Dans cet exemple, les DefinitionSubstitution entrées permettent à la machine d'état d'inclure les ressources déclarées dans le fichier AWS SAM modèle.

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

Définition de la machine d'état en ligne

Voici un exemple de définition de machine d'état en ligne.

Dans cet exemple, le fichier AWS SAM modèle est écrit en YAML, de sorte que la définition de la machine d'état est également en YAML. Pour déclarer une définition de machine à états intégrée en JSON, écrivez votre fichier AWS SAM modèle 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