Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

Utiliser Terraform pour déployer des machines d'état dans Step Functions

Mode de mise au point
Utiliser Terraform pour déployer des machines d'état dans Step Functions - AWS Step Functions

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.

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.

Terraform by HashiCorp est un framework permettant de créer des applications utilisant l'infrastructure en tant que code (IaC). Avec Terraform, vous pouvez créer des machines d'état et utiliser des fonctionnalités, telles que la prévisualisation des déploiements d'infrastructure et la création de modèles réutilisables. Les modèles Terraform vous aident à maintenir et à réutiliser le code en le décomposant en petits morceaux.

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, voir Déployer avec Terraform dans The Workshop. AWS Step Functions

Prérequis

Avant de commencer, assurez-vous de remplir les conditions préalables suivantes :

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
  1. Démarrez un nouveau projet Terraform avec la commande suivante.

    terraform init
  2. Ouvrez la console Step Functions pour créer un prototype pour votre machine à états.

  3. Dans Workflow Studio, procédez comme suit :

    1. Créez votre prototype de flux de travail.

    2. 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.

  4. Enregistrez la définition ASL exportée dans le répertoire de votre projet.

    Vous transmettez la définition ASL exportée en tant que paramètre d'entrée à la ressource aws_sfn_state_machineTerraform qui utilise la fonction. templatefile Cette fonction est utilisée dans le champ de définition qui transmet la définition ASL exportée et toutes les substitutions de variables.

    Astuce

    Le fichier de définition ASL pouvant contenir de longs blocs de texte, nous vous recommandons d'éviter la méthode EOF intégrée. Cela facilite la substitution de paramètres dans la définition de votre machine à états.

  5. (Facultatif) Mettez à jour la définition ASL dans votre IDE et visualisez vos modifications à l'aide du AWS Toolkit for Visual Studio Code.

    Capture d'écran de la définition ASL d'un flux de travail dans Visual Studio Code et de sa représentation visuelle.

    Pour éviter d'exporter continuellement votre définition et de la refactoriser dans votre projet, nous vous recommandons d'effectuer des mises à jour localement dans votre IDE et de suivre ces mises à jour avec Git.

  6. Testez votre flux de travail à l'aide de Step Functions Local.

    Astuce

    Vous pouvez également tester localement les intégrations de services avec les fonctions Lambda et API APIs Gateway dans votre machine d'état à l'aide de AWS SAM CLI Local.

  7. 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
  8. Déployez votre machine d'état depuis votre environnement local ou via des pipelines CI/CD à l'aide de la commande suivante.

    terraform apply
  9. (Facultatif) Nettoyez vos ressources et supprimez la machine d'état à l'aide de la commande suivante.

    terraform destroy

Rôles et politiques IAM pour votre machine étatique

Utilisez les politiques d'intégration du service Terraform pour ajouter les autorisations IAM nécessaires à votre machine d'état, par exemple l'autorisation d'invoquer des fonctions Lambda. Vous pouvez également définir des rôles et des politiques explicites et les associer à votre machine d'état.

L'exemple de politique IAM 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_documentdonnées lors de la définition des politiques IAM pour vos machines d'état dans Terraform. Cela vous permet de vérifier si votre politique est mal formée et de remplacer les ressources par des variables.

L'exemple de politique IAM 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.

ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.