Creazione di Step Functions API utilizzando API Gateway - AWS Step Functions

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

Creazione di Step Functions API utilizzando API Gateway

Puoi utilizzare Amazon API Gateway per associare i AWS Step Functions APIscon metodi in un API GatewayAPI. Quando viene inviata una HTTPS richiesta a un API metodo, API Gateway richiama le azioni Step FunctionsAPI.

Questo tutorial mostra come creare un file API che utilizzi una risorsa e il POST metodo per comunicare con l'azione StartExecutionAPI. Userai il AWS Identity and Access Management (IAM) console per creare un ruolo per API Gateway. Quindi, utilizzerai la console API Gateway per creare un API GatewayAPI, creare una risorsa e un metodo e mappare il metodo all'StartExecutionAPIazione. Infine, implementerai e testerai il tuoAPI.

Nota

Sebbene Amazon API Gateway possa avviare un'esecuzione di Step Functions chiamandoStartExecution, è necessario DescribeExecution chiamare per ottenere il risultato.

Fase 1: creare un IAM ruolo per API Gateway

Prima di creare il tuo API GatewayAPI, devi autorizzare API Gateway a richiamare le azioni di Step API Functions.

Per configurare le autorizzazioni per API Gateway
  1. Accedi alla IAMconsole e scegli Ruoli, Crea ruolo.

  2. Nella pagina Seleziona un'entità attendibile, esegui le operazioni seguenti:

    1. Per il tipo di entità attendibile, mantieni la selezione predefinita di Servizio AWS.

    2. Per Use Case, scegli APIGateway dall'elenco a discesa.

  3. Seleziona APIGateway, quindi scegli Avanti.

  4. Nella pagina Add permissions (Aggiungi autorizzazioni), scegli Next (Successivo).

  5. (Facoltativo) Nella pagina Nome, revisione e creazione, inserisci i dettagli, ad esempio il nome del ruolo. Ad esempio, specifica APIGatewayToStepFunctions.

  6. Scegliere Crea ruolo.

    Il IAM ruolo viene visualizzato nell'elenco dei ruoli.

  7. Scegliete il nome del vostro ruolo e annotate il ruolo ARN, come mostrato nell'esempio seguente.

    arn:aws:iam::123456789012:role/APIGatewayToStepFunctions
Per allegare una politica al IAM ruolo
  1. Nella pagina Roles (Ruoli) cerca il ruolo (APIGatewayToStepFunctions) e quindi selezionalo.

  2. Nella scheda Autorizzazioni, scegli Aggiungi autorizzazioni, quindi scegli Allega politiche.

  3. Nella pagina Allega policy, cercaAWSStepFunctionsFullAccess, scegli la policy, quindi scegli Aggiungi autorizzazioni.

Passaggio 2: crea il tuo gateway API API

Dopo aver creato il tuo IAM ruolo, puoi creare il tuo API Gateway personalizzatoAPI.

Per creare il API
  1. Apri la console Amazon API Gateway, quindi scegli Create API.

  2. Nella pagina Scegli un API tipo, nel RESTAPIriquadro, scegli Crea.

  3. Nella REST API pagina Crea, seleziona Nuovo API, quindi inserisci StartExecutionAPI per il APInome.

  4. Mantieni il tipo di API endpoint impostato su Regionale, quindi scegli Crea API.

Per creare una risorsa
  1. Nella pagina Risorse di StartExecutionAPI, scegli Crea risorsa.

  2. Nella pagina Crea risorsa, inserisci execution il nome della risorsa, quindi scegli Crea risorsa.

Creazione di un metodo POST
  1. Scegli la risorsa /execution, quindi scegli il metodo Create.

  2. Per Tipo di metodo, sceglietePOST.

  3. Per Tipo di integrazione, scegliete AWS servizio.

  4. Per Regione AWS, scegli una regione dall'elenco.

  5. Per Servizio AWS, scegliete Step Functions dall'elenco.

  6. Mantieni AWS sottodominio vuoto.

  7. Per HTTPil metodo, scegli POSTdall'elenco.

    Nota

    Tutte le API azioni Step Functions utilizzano il HTTP POST metodo.

  8. Per Tipo di operazione scegli Usa nome operazione.

  9. Per Nome azione immetti StartExecution.

  10. Per il ruolo Execution, immettete il IAM ruolo ARN del ruolo creato in precedenza, come illustrato nell'esempio seguente.

    arn:aws:iam::123456789012:role/APIGatewayToStepFunctions
  11. Mantieni le opzioni predefinite per Cache delle credenziali e Timeout predefinito, quindi scegli Salva.

La mappatura visiva tra API Gateway e Step Functions viene visualizzata nella pagina /execution - POST - Method execution.

Fase 3: Test e installazione del gateway API API

Dopo averlo creatoAPI, testalo e distribuiscilo.

Per testare la comunicazione tra API Gateway e Step Functions
  1. Nella pagina /execution - POST - Method Execution, scegli la scheda Test. Potrebbe essere necessario scegliere il pulsante freccia destra per visualizzare la scheda.

  2. Nella scheda /execution - POST - Method Test, copia i seguenti parametri ARN di richiesta nella sezione Request body utilizzando una macchina a stati esistente (o crea una nuova macchina a stati che utilizza una funzione Lambda), quindi scegli Test.

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

    Per ulteriori informazioni, consulta la sintassi della StartExecution richiesta nella AWS Step Functions APIRiferimento.

    Nota

    Se non desideri includere la tua macchina a stati nel corpo ARN della chiamata API Gateway, puoi configurare un modello di mappatura nella scheda Richiesta di integrazione, come mostrato nell'esempio seguente.

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

    Con questo approccio, è possibile specificare ARNs diverse macchine a stati in base alla fase di sviluppo (ad esempio devtest, eprod). Per ulteriori informazioni sulla specificazione delle variabili di fase in un modello di mappatura, consulta $stageVariablesla APIGateway Developer Guide.

  3. L'esecuzione viene avviata e l'esecuzione ARN e la relativa data di epoca vengono visualizzate nel corpo della risposta.

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

    È possibile visualizzare l'esecuzione scegliendo la propria macchina a stati sul AWS Step Functions console.

Per implementare il tuo API
  1. Nella pagina Risorse di StartExecutionAPI, scegli Deploy. API

  2. In Fase, seleziona Nuova fase.

  3. In Stage name (Nome fase) immettere alpha.

  4. (Facoltativo) In Description (Descrizione), immettere una descrizione.

  5. Seleziona Deploy (Implementa).

Per testare la distribuzione
  1. Nella pagina Stages di StartExecutionAPI, espandi alpha,/, /execution e scegli il POSTmetodo. POST

  2. In Method overrides, scegli l'icona di copia per copiare la tua API invoca. URL La versione completa URL dovrebbe essere simile all'esempio seguente.

    https://a1b2c3d4e5.execute-api.us-east-1.amazonaws.com/alpha/execution
  3. Dalla riga ARN di comando, esegui il curl comando utilizzando la macchina a stati, quindi richiama la URL distribuzione, come illustrato nell'esempio seguente.

    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

    Vengono restituite l'esecuzione ARN e la relativa data di epoca, come illustrato nell'esempio seguente.

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

    Se viene visualizzato l'errore «Token di autenticazione mancante», assicurati che l'invoke URL termini con /esecuzione.