Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Usar o Terraform para implantar máquinas de estado no Step Functions

Modo de foco
Usar o Terraform para implantar máquinas de estado no Step Functions - AWS Step Functions

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

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

O Terraform by HashiCorp é uma estrutura para criar aplicativos usando infraestrutura como código (IaC). Com o Terraform, você pode criar máquinas de estado e usar recursos, como visualizar implantações de infraestrutura e criar modelos reutilizáveis. Os modelos do Terraform ajudam você a manter e reutilizar o código dividindo-o em partes menores.

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 para se familiarizar com o Terraform.

dica

Para implantar um exemplo de uma máquina de estado criada usando o Terraform, consulte Implantar com o Terraform no The AWS Step Functions Workshop.

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 com Step Functions Local (não suportado).

  • Instale a AWS SAM CLI. Para obter informações sobre a instalação, consulte Instalação da 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
  1. Faça bootstrap de um novo projeto do Terraform com o seguinte comando.

    terraform init
  2. Abra o console Step Functions para criar um protótipo para sua máquina de estado.

  3. No Workflow Studio, faça o seguinte:

    1. Crie seu protótipo de fluxo de trabalho.

    2. Exporte a definição Amazon States Language (ASL) de seu fluxo de trabalho. Para fazer isso, escolha a lista suspensa Importar/Exportar e selecione Exportar definição JSON.

  4. Salve a definição de ASL exportada no diretório do seu projeto.

    Você passa a definição de ASL exportada como um parâmetro de entrada para o recurso do aws_sfn_state_machine Terraform que usa a função templatefile. Essa função é usada dentro do campo de definição que passa a definição de ASL exportada e quaisquer substituições de variáveis.

    dica

    Como o arquivo de definição ASL pode conter blocos de texto longos, recomendamos que você evite o método EOF em linha. Isso facilita a substituição de parâmetros na definição da máquina de estado.

  5. (Opcional) Atualize a definição de ASL em seu IDE e visualize suas alterações usando o AWS Toolkit for Visual Studio Code.

    Captura de tela da definição ASL de um fluxo de trabalho no Visual Studio Code e sua representação visual.

    Para evitar exportar continuamente sua definição e refatorá-la em seu projeto, recomendamos que você faça atualizações localmente em seu IDE e acompanhe essas atualizações com o Git.

  6. Teste seu fluxo de trabalho usando o Step Functions Local.

    dica

    Você também pode testar localmente integrações de serviços com funções Lambda e API APIs Gateway em sua máquina de estado usando a AWS SAM CLI Local.

  7. Visualize sua máquina de estado e outros AWS recursos antes de implantá-la. Para fazer isso, execute o comando a seguir.

    terraform plan
  8. 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
  9. (Opcional) Limpe seus recursos e exclua a máquina de estado usando o comando a seguir.

    terraform destroy

Perfis e políticas do IAM para sua máquina de estado

Use as políticas de integração de serviços do Terraform para adicionar as permissões necessárias do IAM à sua máquina de estado, por exemplo, permissão para invocar funções do Lambda. Você também pode definir perfis e políticas explícitas e associá-las à sua máquina de estado.

O exemplo de política do IAM a seguir concede à sua máquina de estado acesso para invocar uma função do 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 dados aws_iam_policy_document ao definir políticas do IAM para suas máquinas de estado no Terraform. Isso ajuda a verificar se sua política está malformada e a substituir quaisquer recursos por variáveis.

O exemplo de política do IAM a seguir usa a fonte de dados aws_iam_policy_document e concede à sua máquina de estado acesso para invocar uma função do 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 Land Workflows Collection.

PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.