Criar uma API do Step Functions usando o API Gateway - 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 API do Step Functions usando o API Gateway

Você pode usar o Amazon API Gateway para associar suas AWS Step Functions APIs a métodos em uma API do API Gateway. Quando uma solicitação HTTPS for enviada para um método de API, o API Gateway invoca as ações de sua API do Step Functions.

Este tutorial mostra como criar uma API que usa um único recurso e o método POST para se comunicar com a ação de API StartExecution. Você usará o console AWS Identity and Access Management (IAM) para criar uma função para o API Gateway. Em seguida, você usará o console do API Gateway para criar uma API do API Gateway, criar um recurso e um método e mapear o método para a ação de API StartExecution. Ao final, você implantará e testará sua API.

nota

Embora o Amazon API Gateway possa iniciar uma execução do Step Functions chamando StartExecution, você deve chamar DescribeExecution para obter o resultado.

Etapa 1: Criar um perfil do IAM para o API Gateway

Antes de criar a API do API Gateway, você precisa permitir que o API Gateway chame ações de API do Step Functions.

Para configurar permissões para o API Gateway
  1. Faça login no console do IAM e escolha Perfis, Criar perfil.

  2. Na página Select trusted entity (Selecionar entidade confiável), faça o seguinte:

    1. Para o Tipo de entidade confiável, retenha a seleção-padrão de AWS service (Serviço da AWS).

    2. Em Caso de uso, escolha API Gateway na lista suspensa.

  3. Selecione API Gateway e escolha Próximo.

  4. Na página Adicionar permissões, escolha Próximo.

  5. (Opcional) Na página Nomear, revisar e criar, insira detalhes, como o nome da função. Por exemplo, digite APIGatewayToStepFunctions.

  6. Selecione Criar função.

    O perfil do IAM é exibido na lista de perfis.

  7. Escolha o nome da sua função e anote o Role ARN (ARN da função), conforme mostrado no exemplo a seguir.

    arn:aws:iam::123456789012:role/APIGatewayToStepFunctions
Para anexar uma política ao perfil do IAM
  1. Na página Roles (Funções), procure sua função (APIGatewayToStepFunctions) e escolha-a.

  2. Na guia Permissões, escolha Adicionar permissões e Anexar políticas.

  3. Na página Anexar política, procure AWSStepFunctionsFullAccess, escolha a política e escolha Adicionar permissões.

Etapa 2: Criar a API no API Gateway

Depois de criar o perfil do IAM, poderá criar uma API personalizada do API Gateway.

Para criar a API
  1. Abra o console do Amazon API Gateway e, depois, selecione Criar API.

  2. Na página Escolher um tipo de API, no painel API REST, escolha Criar.

  3. Na página Criar API REST, selecione Nova API e, em seguida, insira StartExecutionAPI como nome da API.

  4. Mantenha o Tipo de endpoint da API como Regional e, depois, selecione Criar API.

Para criar um recurso
  1. Na página Recursos da StartExecutionAPI, escolha Criar recurso.

  2. Na página Criar recurso, insira execution para Nome do recurso e, depois, selecione Criar recurso.

Para criar um método POST
  1. Selecione o recurso /execution e, depois, Criar método.

  2. Em Tipo de método, selecione POST.

  3. Em Tipo de integração, selecione Serviço da AWS .

  4. Em Região da AWS, selecione uma região na lista.

    nota

    Para as Regiões que dão suporte ao Step Functions, consulte Regiões compatíveis.

  5. Em AWS service (Serviço da AWS), selecione Step Functions na lista.

  6. Mantenha o subdomínio da AWS em branco.

  7. Em Método HTTP, selecione POST na lista.

    nota

    Todas as ações da API do Step Functions usam o método HTTP POST.

  8. Em Tipo de ação, selecione Usar nome da ação.

  9. Em Nome da ação, insira StartExecution.

  10. Em Função de execução, insira o ARN do perfil do IAM criado antes, conforme mostrado no exemplo a seguir.

    arn:aws:iam::123456789012:role/APIGatewayToStepFunctions
  11. Mantenha as opções padrão para Cache de credenciais e Tempo limite padrão e, depois, selecione Salvar.

O mapeamento visual entre o API Gateway e o Step Functions é exibido na página /execução – POST – Método de execução.

Etapa 3: Testar e implantar a API do API Gateway

Assim que você tiver criado a API, teste-a e implante-a.

Para testar a comunicação entre o API Gateway e o Step Functions
  1. Na página /execution - POST - Execução do método, selecione Testar. Talvez seja necessário selecionar o botão de seta para a direita para mostrar a guia.

  2. Na guia /execution – POST – Teste de método, copie os parâmetros da solicitação a seguir na seção Corpo da solicitação usando o ARN de uma máquina de estado existente (ou criar uma máquina de estado que use uma função do Lambda) e, depois, selecione Testar.

    { "input": "{}", "name": "MyExecution", "stateMachineArn": "arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld" }

    Para obter mais informações, consulte Request Syntax (Sintaxe da solicitação) StartExecution na Referência da API AWS Step Functions .

    nota

    Se não quiser incluir o ARN da máquina de estado no corpo da chamada do API Gateway, será possível configurar um modelo de mapeamento na guia Solicitação de integração, conforme mostrado no exemplo a seguir.

    { "input": "$util.escapeJavaScript($input.json('$'))", "stateMachineArn": "$util.escapeJavaScript($stageVariables.arn)" }

    Com essa abordagem, você pode especificar ARNs de diferentes máquinas de estado com base no estágio de desenvolvimento (por exemplo, dev, test e prod). Para obter mais informações sobre como especificar variáveis de estágio em um modelo de mapeamento, consulte $stageVariables no Guia do desenvolvedor do API Gateway.

  3. A execução começa e o ARN da execução e a respectiva data de referência de época são exibidos em Corpo da resposta.

    { "executionArn": "arn:aws:states:us-east-1:123456789012:execution:HelloWorld:MyExecution", "startDate": 1486768956.878 }
    nota

    Você pode visualizar a execução escolhendo sua máquina de estado no console do AWS Step Functions.

Para implantar sua API
  1. Na página Recursos da StartExecutionAPI, escolha Implantar API.

  2. Em Estágio, selecione Novo estágio.

  3. Em Stage name (Nome do estágio), insira alpha.

  4. (Opcional) Em Description (Descrição), insira uma descrição.

  5. Escolha Implantar.

Para testar sua implantação
  1. Na página Estágios da StartExecutionAPI, expanda alpha,/, /execution, POST e escolha o método POST.

  2. Em Substituições de método, selecione o ícone de cópia para copiar o URL de invocação da API. O URL completo deve ser semelhante ao exemplo a seguir.

    https://a1b2c3d4e5.execute-api.us-east-1.amazonaws.com/alpha/execution
  3. Na linha de comando, execute o comando curl usando o ARN de sua máquina de estado e chame o URL de sua implantação, conforme mostrado no exemplo a seguir.

    curl -X POST -d '{"input": "{}","name": "MyExecution","stateMachineArn": "arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld"}' https://a1b2c3d4e5.execute-api.us-east-1.amazonaws.com/alpha/execution

    O ARN de execução e sua data de epoch são retornados, conforme mostrado no exemplo a seguir.

    {"executionArn":"arn:aws:states:us-east-1:123456789012:execution:HelloWorld:MyExecution","startDate":1.486772644911E9}
    nota

    Se você receber um erro “Token de autenticação ausente”, verifique se o URL de invocação termina com /execution.