Criar uma máquina de estado do Step Functions usando AWS SAM - 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á.

Criar uma máquina de estado do Step Functions usando AWS SAM

Neste guia, você baixa, cria e implanta um AWS SAM aplicativo de amostra que contém uma máquina de AWS Step Functions estado. Este aplicativo cria um fluxo de trabalho de negociação de ações simulado que é executado em uma programação predefinida (observe que a programação está desabilitada por padrão para evitar cobranças).

O diagrama a seguir mostra os componentes deste aplicativo:

Diagrama mostrando o fluxo de trabalho deste tutorial.

Veja a seguir uma visualização dos comandos executados para criar o aplicativo de exemplo. Para obter mais detalhes sobre cada um desses comandos, consulte as seções posteriores nesta página

# Step 1 - Download a sample application. For this tutorial you # will follow the prompts to select an AWS Quick Start Template # called 'Multi-step workflow' sam init # Step 2 - Build your application cd project-directory sam build # Step 3 - Deploy your application sam deploy --guided

Pré-requisitos

Este guia pressupõe que você tenha concluído as etapas em Instalando o AWS SAM CLI para seu sistema operacional. Pressupõem-se que você fez o seguinte:

  1. Criou uma AWS conta.

  2. IAMPermissões configuradas.

  3. Instalou o Homebrew. Observação: o Homebrew é apenas um pré-requisito para o Linux e o macOS.

  4. Instalou AWS SAM CLI o. Observação: verifique se você tem a versão 0.52.0 ou posterior. É possível verificar a versão executando o comando sam --version.

Etapa 1: Fazer download de um aplicativo de exemplo do AWS SAM

Comando a ser executado:

sam init

Siga as instruções na tela para selecionar o seguinte:

  1. Modelo: Modelos de início AWS rápido

  2. Linguagem: Python, Ruby, NodeJS, Go, Java ou. NET

  3. Nome do projeto: (nome de sua escolha, o padrão é sam-app)

  4. Aplicação de início rápido: fluxo de trabalho em várias etapas

O que AWS SAM está fazendo:

Este comando cria um diretório com o nome fornecido para o prompt "Nome do projeto" (o padrão é sam-app). O conteúdo específico do diretório dependerá da linguagem que você escolher.

Veja a seguir o conteúdo do diretório ao escolher um dos tempos de execução do Python:

├── README.md
├── functions
│   ├── __init__.py
│   ├── stock_buyer
│   │   ├── __init__.py
│   │   ├── app.py
│   │   └── requirements.txt
│   ├── stock_checker
│   │   ├── __init__.py
│   │   ├── app.py
│   │   └── requirements.txt
│   └── stock_seller
│       ├── __init__.py
│       ├── app.py
│       └── requirements.txt
├── statemachine
│   └── stock_trader.asl.json
├── template.yaml
└── tests
    └── unit
        ├── __init__.py
        ├── test_buyer.py
        ├── test_checker.py
        └── test_seller.py

Existem dois arquivos especialmente interessantes que você pode conferir:

É possível ver a seguinte entrada no arquivo template.yaml, que aponta para o arquivo de definição da máquina de estado:

Properties: DefinitionUri: statemachine/stock_trader.asl.json

Pode ser útil manter a definição da máquina de estado como um arquivo separado em vez de incorporá-la ao AWS SAM modelo. Por exemplo, rastrear alterações na definição da máquina de estado será mais fácil se você não incluir a definição no modelo. Você pode usar o Workflow Studio para criar e manter a definição da máquina de estado e exportar a definição do console diretamente para o arquivo de especificação da Amazon States Language sem mesclá-la ao modelo.

Para obter mais informações sobre o aplicativo de exemplo, consulte o arquivo README.md no diretório do projeto.

Etapa 2: Criar o aplicativo

Comando a ser executado:

Primeiro, mude para o diretório do projeto (ou seja, o diretório onde o arquivo template.yaml do aplicativo de exemplo está localizado; por padrão é sam-app) e execute este comando:

sam build

Exemplos de resultado:

  
 Build Succeeded

 Built Artifacts  : .aws-sam/build
 Built Template   : .aws-sam/build/template.yaml

 Commands you can use next
 =========================
 [*] Invoke Function: sam local invoke
 [*] Deploy: sam deploy --guided
       

O que AWS SAM está fazendo:

AWS SAM CLIEle vem com abstrações para vários tempos de execução do Lambda para criar suas dependências e copia todos os artefatos de construção em pastas de teste para que tudo esteja pronto para ser empacotado e implantado. O comando sam build compila quaisquer dependências que o aplicativo tem e copia os artefatos de compilação para pastas em .aws-sam/build.

Etapa 3: implantar seu aplicativo na AWS nuvem

Comando a ser executado:

sam deploy --guided

Siga as instruções na tela. Só é possível responder com Enter para aceitar as opções padrão fornecidas na experiência interativa.

O que AWS SAM está fazendo:

Esse comando implanta seu aplicativo na AWS nuvem. Ele pega os artefatos de implantação que você cria com o sam build comando, empacota e os carrega em um bucket do Amazon S3 criado AWS SAM CLI por, e implanta o aplicativo usando. AWS CloudFormation Na saída do comando de implantação, é possível ver as alterações que estão sendo feitas na pilha do AWS CloudFormation .

É possível verificar se a máquina de estado de exemplo do Step Functions foi implantada com êxito seguindo estas etapas:

  1. Faça login no AWS Management Console e abra o console Step Functions em https://console.aws.amazon.com/states/.

  2. Na navegação à esquerda, escolha Máquinas de estado.

  3. Encontre e escolha a nova máquina de estado na lista. Será nomeado StockTradingStateMachine -<unique-hash>.

  4. Escolha a guia Definição.

Agora é necessário ver uma representação visual da máquina de estado. É possível verificar se a representação visual corresponde à definição da máquina de estado encontrada no arquivo statemachine/stockTrader.asl.json do diretório do projeto.

Solução de problemas

SAMCLIerro: “essa opção não existe: --guided”

Ao executar sam deploy, você verá o seguinte erro:

 
Error: no such option: --guided
            

Isso significa que você está usando uma versão mais antiga do AWS SAM CLI que não suporta o --guided parâmetro. Para corrigir isso, você pode atualizar sua versão AWS SAM CLI para 0.33.0 ou posterior ou omitir o --guided parâmetro do comando. sam deploy

SAMCLIerro: “Falha na criação de recursos gerenciados: não foi possível localizar as credenciais”

Ao executar sam deploy, você verá o seguinte erro:

 
Error: Failed to create managed resources: Unable to locate credentials
            

Isso significa que você não configurou AWS credenciais para permitir que o AWS SAM CLI faça chamadas AWS de serviço. Para corrigir isso, você deve configurar AWS as credenciais. Para obter mais informações, consulte Configuração de AWS credenciais no Guia do AWS Serverless Application Model desenvolvedor.

Limpar

Se você não precisar mais dos AWS recursos criados ao executar este tutorial, poderá removê-los excluindo a AWS CloudFormation pilha que você implantou.

Para excluir a AWS CloudFormation pilha criada com este tutorial usando o AWS Management Console, siga estas etapas:

  1. Faça login no AWS Management Console e abra o AWS CloudFormation console em https://console.aws.amazon.com/cloudformation.

  2. No painel de navegação à esquerda, selecionePilhas.

  3. Na lista de pilhas, escolha sam-app (ou o nome da pilha criada).

  4. Escolha Excluir.

Quando terminar, o status da pilha mudará para DELETE_ COMPLETE.

Como alternativa, você pode excluir a AWS CloudFormation pilha executando o seguinte AWS CLI comando:

aws cloudformation delete-stack --stack-name sam-app --region region

Verificar pilha excluída

Para os dois métodos de exclusão da AWS CloudFormation pilha, você pode verificar se ela foi excluída acessando https://console.aws.amazon.com/cloudformation, escolhendo Pilhas no painel de navegação esquerdo e escolhendo Excluídas no menu suspenso à direita da caixa de texto de pesquisa. Você verá o nome da pilha sam-app (ou o nome da pilha criada) na lista de pilhas excluídas.