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à.
Questo tutorial mostra come eseguire un'integrazione AWS SDK con Amazon Simple Storage Service. La macchina a stati che crei in questo tutorial raccoglie informazioni sui tuoi bucket Amazon S3, quindi elenca i bucket insieme alle informazioni sulla versione per ogni bucket nella regione corrente.
Passaggio 1: crea la macchina a stati
Utilizzando la console Step Functions, creerai una macchina a stati che include uno Task
stato per elencare tutti i bucket Amazon S3 nell'account e nella regione correnti. Quindi, aggiungerai un altro Task
stato che richiama l'HeadBucket
API per verificare se il bucket restituito è accessibile nella regione corrente. Se il bucket non è accessibile, la chiamata HeadBucket
API restituisce l'errore. S3.S3Exception
Includerai un Catch
blocco per catturare questa eccezione e uno Pass
stato come stato di fallback.
-
Apri la console Step Functions
e scegli Crea macchina a stati. Nella finestra di dialogo Scegli un modello, seleziona Vuoto.
Scegliete Seleziona per aprire Workflow Studio inmodalità di progettazione.
-
Per questo tutorial, scriverai la definizione Amazon States Language (ASL) della tua macchina a stati nelEditor del codice. Per fare ciò, scegli Codice.
-
Rimuovi il codice boilerplate esistente e incolla la seguente definizione di macchina a stati.
{ "Comment": "A description of my state machine", "StartAt": "ListBuckets", "States": { "ListBuckets": { "Type": "Task", "Parameters": {}, "Resource": "arn:aws:states:::aws-sdk:s3:listBuckets", "Next": "Map" }, "Map": { "Type": "Map", "ItemsPath": "$.Buckets", "ItemProcessor": { "ProcessorConfig": { "Mode": "INLINE" }, "StartAt": "HeadBucket", "States": { "HeadBucket": { "Type": "Task", "ResultPath": null, "Parameters": { "Bucket.$": "$.Name" }, "Resource": "arn:aws:states:::aws-sdk:s3:headBucket", "Catch": [ { "ErrorEquals": [ "S3.S3Exception" ], "ResultPath": null, "Next": "Pass" } ], "Next": "GetBucketVersioning" }, "GetBucketVersioning": { "Type": "Task", "End": true, "Parameters": { "Bucket.$": "$.Name" }, "ResultPath": "$.BucketVersioningInfo", "Resource": "arn:aws:states:::aws-sdk:s3:getBucketVersioning" }, "Pass": { "Type": "Pass", "End": true, "Result": { "Status": "Unknown" }, "ResultPath": "$.BucketVersioningInfo" } } }, "End": true } } }
-
Specificate un nome per la vostra macchina a stati. Per fare ciò, scegli l'icona di modifica accanto al nome della macchina a stati predefinita di MyStateMachine. Quindi, nella configurazione della macchina a stati, specifica un nome nella casella Nome macchina a stati.
Per questo tutorial, inserisci il nome
Gather-S3-Bucket-Info-Standard
. -
(Facoltativo) Nella configurazione della macchina a stati, specificate altre impostazioni del flusso di lavoro, come il tipo di macchina a stati e il relativo ruolo di esecuzione.
Conserva tutte le selezioni predefinite nelle impostazioni della macchina a stati.
Se in precedenza hai creato un ruolo IAM con le autorizzazioni corrette per la tua macchina a stati e desideri utilizzarlo, in Autorizzazioni seleziona Scegli un ruolo esistente, quindi seleziona un ruolo dall'elenco. Oppure seleziona Inserisci un ruolo ARN e quindi fornisci un ARN per quel ruolo IAM.
-
Nella finestra di dialogo Conferma creazione del ruolo, scegli Conferma per continuare.
Puoi anche scegliere Visualizza le impostazioni del ruolo per tornare alla configurazione della macchina a stati.
Nota
Se elimini il ruolo IAM creato da Step Functions, Step Functions non può ricrearlo in un secondo momento. Allo stesso modo, se modifichi il ruolo (ad esempio, rimuovendo Step Functions dai principi nella policy IAM), Step Functions non può ripristinare le impostazioni originali in un secondo momento.
Nel passaggio 2, aggiungerai le autorizzazioni mancanti al ruolo della macchina a stati.
Passaggio 2: aggiungi le autorizzazioni necessarie per il ruolo IAM
Per raccogliere informazioni sui bucket Amazon S3 nella tua regione attuale, devi fornire alla tua macchina a stati le autorizzazioni necessarie per accedere ai bucket Amazon S3.
-
Nella pagina della macchina a stati, scegli ARN del ruolo IAM per aprire la pagina Ruoli per il ruolo della macchina a stati.
-
Scegli Aggiungi autorizzazioni, quindi seleziona Crea policy inline.
Scegli la scheda JSON, quindi incolla le seguenti autorizzazioni nell'editor JSON.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "s3:ListAllMyBuckets", "s3:ListBucket", "s3:GetBucketVersioning" ], "Resource": "*" } ] }
Scegli Verifica policy.
In Rivedi policy, per Nome della policy inserisci
s3-bucket-permissions
.Scegli Create Policy (Crea policy).
Passaggio 3: Esegui l'esecuzione di una macchina a stati standard
-
Nella pagina Gather-S3-Bucket-Info-Standard, scegli Avvia esecuzione.
-
Nella finestra di dialogo Avvia esecuzione, effettuate le seguenti operazioni:
-
(Facoltativo) Inserite un nome di esecuzione personalizzato per sovrascrivere il valore predefinito generato.
Nomi e log non ASCII
Step Functions accetta nomi per macchine a stati, esecuzioni, attività ed etichette che contengono caratteri non ASCII. Poiché tali caratteri non funzionano con Amazon CloudWatch, ti consigliamo di utilizzare solo caratteri ASCII per tenere traccia delle metriche. CloudWatch
-
Selezionare Start execution (Avvia esecuzione).
-
La console Step Functions ti indirizza a una pagina intitolata con il tuo ID di esecuzione. Questa pagina è nota come pagina dei dettagli di esecuzione. In questa pagina è possibile esaminare i risultati dell'esecuzione man mano che l'esecuzione procede o dopo il suo completamento.
Per esaminare i risultati dell'esecuzione, scegliete i singoli stati nella vista Grafico, quindi scegliete le singole schede Dettagli del passaggio nel riquadro per visualizzare i dettagli di ogni stato, inclusi rispettivamente input, output e definizione. Per i dettagli sulle informazioni sull'esecuzione che è possibile visualizzare nella pagina Dettagli di esecuzione, vederePanoramica dei dettagli di esecuzione.
-
Fase 4: Eseguire l'esecuzione di una macchina a stati Express
-
Creare una macchina a stati Express utilizzando la definizione della macchina a stati fornita nel passaggio 1. Assicurati di includere anche le autorizzazioni necessarie per i ruoli IAM, come spiegato nella Fase 2.
Suggerimento
Per distinguerla dalla macchina Standard creata in precedenza, denominate la macchina a stati Express come
Gather-S3-Bucket-Info-Express
. -
Nella pagina Gather-S3-Bucket-Info-Standard, scegliete Avvia esecuzione.
-
Nella finestra di dialogo Avvia esecuzione, effettuate le seguenti operazioni:
-
(Facoltativo) Inserite un nome di esecuzione personalizzato per sovrascrivere il valore predefinito generato.
Nomi e log non ASCII
Step Functions accetta nomi per macchine a stati, esecuzioni, attività ed etichette che contengono caratteri non ASCII. Poiché tali caratteri non funzionano con Amazon CloudWatch, ti consigliamo di utilizzare solo caratteri ASCII per tenere traccia delle metriche. CloudWatch
-
Selezionare Start execution (Avvia esecuzione).
-
La console Step Functions ti indirizza a una pagina intitolata con il tuo ID di esecuzione. Questa pagina è nota come pagina dei dettagli di esecuzione. In questa pagina è possibile esaminare i risultati dell'esecuzione man mano che l'esecuzione procede o dopo il suo completamento.
Per esaminare i risultati dell'esecuzione, scegliete i singoli stati nella vista Grafico, quindi scegliete le singole schede Dettagli del passaggio nel riquadro per visualizzare i dettagli di ogni stato, inclusi rispettivamente input, output e definizione. Per i dettagli sulle informazioni sull'esecuzione che è possibile visualizzare nella pagina Dettagli di esecuzione, vederePanoramica dei dettagli di esecuzione.
-