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.
Construisez un AWS CodeBuild projet utilisant Step Functions
Cet exemple de projet montre comment utiliser AWS Step Functions pour construire un AWS CodeBuild projetez, exécutez des tests, puis envoyez une SNS notification Amazon en fonction des résultats.
Étape 1 : Création de la machine à états
-
Ouvrez la console Step Functions
et choisissez Create state machine. -
Tapez
Start a CodeBuild build
dans la zone de recherche, puis choisissez Démarrer une CodeBuild construction à partir des résultats de recherche renvoyés. -
Choisissez Next (Suivant) pour continuer.
-
Choisissez Exécuter une démo pour créer un ready-to-deploy flux de travail en lecture seule ou choisissez Construire dessus pour créer une définition de machine à états modifiable sur laquelle vous pourrez vous appuyer pour la déployer ultérieurement.
Cet exemple de projet déploie les ressources suivantes :
-
Un AWS CodeBuild build
-
Un SNS sujet sur Amazon
-
Un AWS Step Functions machine d'état
-
Connexe AWS Identity and Access Management (IAM) rôles
L'image suivante montre le graphique du flux de travail pour le projet d'exemple Start a CodeBuild build :
-
-
Choisissez Utiliser le modèle pour poursuivre votre sélection.
Les prochaines étapes dépendent de votre choix précédent :
-
Exécuter une démonstration : vous pouvez passer en revue la machine d'état avant de créer un projet en lecture seule avec des ressources déployées par AWS CloudFormation à votre Compte AWS.
Vous pouvez consulter la définition de la machine d'état et, lorsque vous êtes prêt, choisissez Déployer et exécuter pour déployer le projet et créer les ressources.
Le déploiement peut prendre jusqu'à 10 minutes pour créer des ressources et des autorisations. Vous pouvez utiliser le lien Stack ID pour suivre les progrès dans AWS CloudFormation.
Une fois le déploiement terminé, vous devriez voir votre nouvelle machine d'état dans la console.
-
Tirez parti de cela : vous pouvez revoir et modifier la définition du flux de travail. Vous devrez peut-être définir des valeurs pour les espaces réservés dans l'exemple de projet avant de tenter d'exécuter votre flux de travail personnalisé.
Note
Des frais standard peuvent s'appliquer pour les services déployés sur votre compte.
Étape 2 : Exécuter la machine à états
-
Sur la page State machines, choisissez votre exemple de projet.
-
Sur la page d'exemple de projet, choisissez Démarrer l'exécution.
-
Dans la boîte de dialogue Démarrer l'exécution, procédez comme suit :
-
(Facultatif) Entrez un nom d'exécution personnalisé pour remplacer le nom par défaut généré.
ASCIINon-noms et journalisation
Step Functions accepte les noms des machines d'état, des exécutions, des activités et des étiquettes contenant des caractères autres que des ASCII caractères. Comme ces caractères ne fonctionneront pas avec Amazon CloudWatch, nous vous recommandons de n'utiliser que des ASCII caractères afin de pouvoir suivre les statistiques CloudWatch.
-
(Facultatif) Dans la zone de saisie, entrez les valeurs d'entrée sous la formeJSON. Vous pouvez ignorer cette étape si vous lancez une démonstration.
-
Choisissez Start execution (Démarrer l'exécution).
La console Step Functions vous dirige vers une page de détails d'exécution où vous pouvez choisir les états dans la vue graphique pour explorer les informations associées dans le Détails de l'étape volet.
-
Exemple de code de machine d'état
Dans cet exemple de projet, la machine à états s'intègre CodeBuild à AmazonSNS.
Parcourez cet exemple de machine à états pour voir comment Step Functions utilise une machine à états pour créer un CodeBuild projet, puis envoie un SNS sujet Amazon avec un message indiquant si le travail a réussi ou échoué.
Pour plus d'informations sur la façon dont Step Functions peut contrôler d'autres AWS services, voirIntégrer les services avec Step Functions.
{
"Comment": "An example of using CodeBuild to run tests, get test results and send a notification.",
"StartAt": "Trigger CodeBuild Build",
"States": {
"Trigger CodeBuild Build": {
"Type": "Task",
"Resource": "arn:aws:states:::codebuild:startBuild.sync",
"Parameters": {
"ProjectName": "CodeBuildProject-Dtw1jBhEYGDf"
},
"Next": "Get Test Results"
},
"Get Test Results": {
"Type": "Task",
"Resource": "arn:aws:states:::codebuild:batchGetReports",
"Parameters": {
"ReportArns.$": "$.Build.ReportArns"
},
"Next": "All Tests Passed?"
},
"All Tests Passed?": {
"Type": "Choice",
"Choices": [
{
"Variable": "$.Reports[0].Status",
"StringEquals": "SUCCEEDED",
"Next": "Notify Success"
}
],
"Default": "Notify Failure"
},
"Notify Success": {
"Type": "Task",
"Resource": "arn:aws:states:::sns:publish",
"Parameters": {
"Message": "CodeBuild build tests succeeded",
"TopicArn": "arn:aws:sns:sa-east-1:123456789012:StepFunctionsSample-CodeBuildExecution3da9ead6-bc1f-4441-99ac-591c140019c4-SNSTopic-EVYLVNGW85JP"
},
"End": true
},
"Notify Failure": {
"Type": "Task",
"Resource": "arn:aws:states:::sns:publish",
"Parameters": {
"Message": "CodeBuild build tests failed",
"TopicArn": "arn:aws:sns:sa-east-1:123456789012:StepFunctionsSample-CodeBuildExecution3da9ead6-bc1f-4441-99ac-591c140019c4-SNSTopic-EVYLVNGW85JP"
},
"End": true
}
}
}
Pour plus d'informations sur la configuration IAM lors de l'utilisation de Step Functions avec d'autres AWS services, voirComment Step Functions génère IAM des politiques pour les services intégrés.