As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Usando o Terraform para implantar máquinas de estado em Step Functions
O Terraform
Se você estiver familiarizado com o Terraform, poderá seguir o ciclo de vida de desenvolvimento descrito neste tópico como um modelo para criar e implantar suas máquinas de estado no Terraform. Se não estiver familiarizado com o Terraform, recomendamos que primeiro conclua o workshop Introdução ao Terraform em AWS
dica
Para implantar um exemplo de uma máquina de estado construída usando o Terraform em sua Conta da AWS, consulte o módulo Gerenciando máquinas de estado com infraestrutura como código
Neste tópico
Pré-requisitos
Antes de começar, conclua os seguintes pré-requisitos:
-
Instale o Terraform na máquina. Para obter informações sobre a instalação do Terraform, consulte Instalar o Terraform
. -
Instale o Step Functions Local em sua máquina. Recomendamos que você instale a imagem do Docker do Step Functions Local para poder usar o Step Functions Local. Para obter mais informações, consulte Testando máquinas de estado localmente em Step Functions.
-
Instalar AWS SAM CLI. Para obter informações sobre a instalação, consulte Instalando o AWS SAM CLI no Guia do AWS Serverless Application Model desenvolvedor.
-
Instale o AWS Toolkit for Visual Studio Code para visualizar o diagrama do fluxo de trabalho de suas máquinas de estado. Para informações sobre instalação, consulte Instalação do AWS Toolkit for Visual Studio Code no Guia do usuário da AWS Toolkit for Visual Studio Code .
Ciclo de vida de desenvolvimento de máquinas de estado com o Terraform
O procedimento a seguir explica como você pode usar um protótipo de máquina de estado criado usando o Workflow Studio no console Step Functions como ponto de partida para o desenvolvimento local com o Terraform e o AWS Toolkit for Visual Studio Code.
Para ver o exemplo completo que discute o desenvolvimento da máquina de estado com o Terraform e apresenta as melhores práticas em detalhes, consulte Melhores práticas para criar projetos Terraform do Step Functions
Para iniciar o ciclo de vida de desenvolvimento de uma máquina de estado com o Terraform
-
Faça bootstrap de um novo projeto do Terraform com o seguinte comando.
terraform init
-
Abra o console Step Functions
para criar um protótipo para sua máquina de estado. -
No Workflow Studio, faça o seguinte:
-
Crie seu protótipo de fluxo de trabalho.
-
Exporte a definição do Amazon States Language (ASL) do seu fluxo de trabalho. Para fazer isso, escolha a lista suspensa Importar/Exportar e selecione Exportar definição. JSON
-
-
Salve a ASL definição exportada no diretório do seu projeto.
Você passa a ASL definição exportada como um parâmetro de entrada para o recurso do
aws_sfn_state_machine
Terraform que usa a templatefile
função. Essa função é usada dentro do campo de definição que passa a ASL definição exportada e quaisquer substituições de variáveis. dica
Como o arquivo de ASL definição pode conter blocos de texto longos, recomendamos que você evite o método embutidoEOF. Isso facilita a substituição de parâmetros na definição da máquina de estado.
-
(Opcional) Atualize a ASL definição em sua IDE e visualize suas alterações usando o. AWS Toolkit for Visual Studio Code
-
Teste seu fluxo de trabalho usando o Step Functions Local.
-
Visualize sua máquina de estado e outros AWS recursos antes de implantá-la. Para fazer isso, execute o comando a seguir.
terraform plan
-
Implante sua máquina de estado a partir do seu ambiente local ou por meio de pipelines de CI/CD
usando o comando a seguir. terraform apply
-
(Opcional) Limpe seus recursos e exclua a máquina de estado usando o comando a seguir.
terraform destroy
IAMfunções e políticas para sua máquina estadual
Use as políticas de integração de serviços do Terraform
O exemplo IAM de política a seguir concede à sua máquina de estado acesso para invocar uma função Lambda chamada. myFunction
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": "arn:aws:lambda:us-east-1:123456789012:function:
myFunction
" } ] }
Também recomendamos usar a fonte de aws_iam_policy_document
O exemplo IAM de política a seguir usa a fonte de aws_iam_policy_document
dados e concede acesso à sua máquina de estado para invocar uma função Lambda chamada. myFunction
data "aws_iam_policy_document" "state_machine_role_policy" { statement { effect = "Allow" actions = [ "lambda:InvokeFunction" ] resources = ["${aws_lambda_function.
[[myFunction]]
.arn}:*"] } }
dica
Para ver padrões AWS arquitetônicos mais avançados implantados com o Terraform, consulte exemplos do Terraform na Serverless