Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Utilizzo di Terraform per distribuire macchine a stati in Step Functions
Terraform
Se conosci Terraform, puoi seguire il ciclo di vita di sviluppo descritto in questo argomento come modello per la creazione e la distribuzione delle tue macchine a stati in Terraform. Se non hai familiarità con Terraform, ti consigliamo di completare prima il workshop Introduzione a Terraform per familiarizzare con Terraform
Suggerimento
Per distribuire un esempio di macchina a stati creata utilizzando Terraform sul tuo computer Account AWS, consulta il modulo Gestire macchine a stati con infrastruttura
In questo argomento
Prerequisiti
Prima di iniziare, assicurati di completare i seguenti prerequisiti:
-
Installa Terraform sul tuo computer. Per informazioni sull'installazione di Terraform, consulta Installa
Terraform. -
Installa Step Functions Local sul tuo computer. Ti consigliamo di installare l'immagine Docker di Step Functions Local per utilizzare Step Functions Local. Per ulteriori informazioni, consulta Test di macchine a stati localmente in Step Functions.
-
Installa AWS SAM CLI. Per informazioni sull'installazione, consulta Installazione di AWS SAM CLI nella Guida per AWS Serverless Application Model gli sviluppatori.
-
Installa il AWS Toolkit for Visual Studio Code per visualizzare il diagramma del flusso di lavoro delle tue macchine a stati. Per informazioni sull'installazione, vedere Installazione di AWS Toolkit for Visual Studio Code nella Guida per l'AWS Toolkit for Visual Studio Code utente.
Ciclo di vita di sviluppo di macchine a stati con Terraform
La procedura seguente spiega come utilizzare un prototipo di macchina a stati creato utilizzando Workflow Studio nella console Step Functions come punto di partenza per lo sviluppo locale con Terraform e il. AWS Toolkit for Visual Studio Code
Per visualizzare l'esempio completo che illustra lo sviluppo di macchine a stati con Terraform e presenta le migliori pratiche in dettaglio, vedere Best practices for writing Step Functions Terraform
Per avviare il ciclo di vita di sviluppo di una macchina a stati con Terraform
-
Avvia un nuovo progetto Terraform con il seguente comando.
terraform init
-
Apri la console Step Functions
per creare un prototipo per la tua macchina a stati. -
In Workflow Studio, effettuate le seguenti operazioni:
-
Crea il prototipo del tuo flusso di lavoro.
-
Esporta la definizione Amazon States Language (ASL) del tuo flusso di lavoro. A tale scopo, scegli l'elenco a discesa Importa/Esporta, quindi seleziona Esporta definizione. JSON
-
-
Salva la ASL definizione esportata nella directory del progetto.
Si passa la ASL definizione esportata come parametro di input alla risorsa
aws_sfn_state_machine
Terraform che utilizza la funzione. templatefile
Questa funzione viene utilizzata all'interno del campo di definizione che passa la definizione esportata e le eventuali ASL sostituzioni di variabili. Suggerimento
Poiché il file di ASL definizione può contenere lunghi blocchi di testo, si consiglia di evitare il metodo inline. EOF Ciò semplifica la sostituzione dei parametri nella definizione della macchina a stati.
-
(Facoltativo) Aggiorna la ASL definizione all'interno del tuo IDE e visualizza le modifiche utilizzando il. AWS Toolkit for Visual Studio Code
-
Testa il tuo flusso di lavoro utilizzando Step Functions Local.
-
Visualizza in anteprima la tua macchina a stati e altre AWS risorse prima di distribuire la macchina a stati. Per farlo, esegui il comando seguente.
terraform plan
-
Distribuisci la tua macchina a stati dall'ambiente locale o tramite pipeline CI/CD
utilizzando il seguente comando. terraform apply
-
(Facoltativo) Pulisci le tue risorse ed elimina la macchina a stati utilizzando il seguente comando.
terraform destroy
IAMruoli e politiche per la tua macchina a stati
Utilizza le politiche di integrazione del servizio Terraform
Il seguente esempio di IAM policy concede alla macchina a stati l'accesso per richiamare una funzione Lambda denominata. myFunction
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": "arn:aws:lambda:us-east-1:123456789012:function:
myFunction
" } ] }
Ti consigliamo inoltre di utilizzare l'origine aws_iam_policy_document
Il seguente esempio di IAM policy utilizza l'origine aws_iam_policy_document
dati e concede alla macchina a stati l'accesso per richiamare una funzione Lambda denominata. myFunction
data "aws_iam_policy_document" "state_machine_role_policy" { statement { effect = "Allow" actions = [ "lambda:InvokeFunction" ] resources = ["${aws_lambda_function.
[[myFunction]]
.arn}:*"] } }
Suggerimento
Per visualizzare modelli AWS architettonici più avanzati implementati con Terraform, consulta gli esempi di Terraform su Serverless Land Workflows