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.
Utiliser Terraform pour déployer des machines d'état dans Step Functions
Terraform
Si vous connaissez Terraform, vous pouvez suivre le cycle de développement décrit dans cette rubrique en tant que modèle pour créer et déployer vos machines d'état dans Terraform. Si vous n'êtes pas familier avec Terraform, nous vous recommandons de suivre d'abord l'atelier Introduction à Terraform AWS pour vous familiariser avec Terraform
Astuce
Pour déployer un exemple de machine à états créée à l'aide de Terraform sur votre ordinateur Compte AWS, consultez le module Gestion des machines à états avec infrastructure en tant que code de The AWS Step Functions
Dans cette rubrique
Prérequis
Avant de commencer, assurez-vous de remplir les conditions préalables suivantes :
-
Installez Terraform sur votre machine. Pour plus d'informations sur l'installation de Terraform, voir Installer
Terraform. -
Installez Step Functions Local sur votre machine. Nous vous recommandons d'installer l'image Docker Step Functions Local pour utiliser Step Functions Local. Pour de plus amples informations, veuillez consulter Tester les machines d'état localement dans Step Functions.
-
Installez AWS SAM CLI. Pour plus d'informations sur l'installation, reportez-vous AWS SAM CLI à la section Installation du manuel du AWS Serverless Application Model développeur.
-
Installez le AWS Toolkit for Visual Studio Code pour afficher le diagramme de flux de travail de vos machines d'état. Pour plus d'informations sur l'installation, reportez-vous AWS Toolkit for Visual Studio Codeà la section Installation du dans le guide de AWS Toolkit for Visual Studio Code l'utilisateur.
Cycle de vie du développement des machines State avec Terraform
La procédure suivante explique comment utiliser un prototype de machine à états que vous créez à l'aide de Workflow Studio dans la console Step Functions comme point de départ pour le développement local avec Terraform et le. AWS Toolkit for Visual Studio Code
Pour consulter l'exemple complet qui traite du développement de machines à états avec Terraform et présente les meilleures pratiques en détail, voir Meilleures pratiques pour l'écriture de projets Step Functions Terraform
Pour démarrer le cycle de développement d'une machine à états avec Terraform
-
Démarrez un nouveau projet Terraform avec la commande suivante.
terraform init
-
Ouvrez la console Step Functions
pour créer un prototype pour votre machine à états. -
Dans Workflow Studio, procédez comme suit :
-
Créez votre prototype de flux de travail.
-
Exportez la définition Amazon States Language (ASL) de votre flux de travail. Pour ce faire, choisissez la liste déroulante Import/Export, puis sélectionnez Exporter la définition. JSON
-
-
Enregistrez la ASL définition exportée dans le répertoire de votre projet.
Vous transmettez la ASL définition exportée en tant que paramètre d'entrée à la ressource
aws_sfn_state_machine
Terraform qui utilise la templatefile
fonction. Cette fonction est utilisée dans le champ de définition qui transmet la ASL définition exportée et toutes les substitutions de variables. Astuce
Étant donné que le fichier de ASL définition peut contenir de longs blocs de texte, nous vous recommandons d'éviter la EOF méthode en ligne. Cela facilite la substitution de paramètres dans la définition de votre machine à états.
-
(Facultatif) Mettez à jour la ASL définition dans votre fichier IDE et visualisez vos modifications à l'aide du AWS Toolkit for Visual Studio Code.
-
Testez votre flux de travail à l'aide de Step Functions Local.
-
Prévisualisez votre machine d'état et d'autres AWS ressources avant de déployer la machine d'état. Pour ce faire, exécutez la commande suivante.
terraform plan
-
Déployez votre machine d'état depuis votre environnement local ou via des pipelines CI/CD
à l'aide de la commande suivante. terraform apply
-
(Facultatif) Nettoyez vos ressources et supprimez la machine d'état à l'aide de la commande suivante.
terraform destroy
IAMrôles et politiques pour votre machine étatique
Utilisez les politiques d'intégration du service Terraform
L'exemple IAM de politique suivant accorde à votre machine d'état l'accès pour appeler une fonction Lambda nommée. myFunction
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": "arn:aws:lambda:us-east-1:123456789012:function:
myFunction
" } ] }
Nous vous recommandons également d'utiliser la source de aws_iam_policy_document
L'exemple IAM de politique suivant utilise la source de aws_iam_policy_document
données et accorde à votre machine d'état l'accès pour appeler une fonction Lambda nommée. myFunction
data "aws_iam_policy_document" "state_machine_role_policy" { statement { effect = "Allow" actions = [ "lambda:InvokeFunction" ] resources = ["${aws_lambda_function.
[[myFunction]]
.arn}:*"] } }
Astuce
Pour voir des modèles AWS architecturaux plus avancés déployés avec Terraform, consultez les exemples de Terraform dans la collection Serverless Land Workflows