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

ResultWriter

Il ResultWriter campo è un oggetto JSON che specifica la posizione Amazon S3 in cui Step Functions scrive i risultati delle esecuzioni dei flussi di lavoro secondari avviate da uno stato di Distributed Map. Per impostazione predefinita, Step Functions non esporta questi risultati.

Importante

Assicurati che il bucket Amazon S3 che usi per esportare i risultati di un Map Run si trovi nella stessa macchina a stati della tua Account AWS macchina a Regione AWS stati. In caso contrario, l'esecuzione della macchina a stati fallirà con l'States.ResultWriterFailederrore.

L'esportazione dei risultati in un bucket Amazon S3 è utile se la dimensione del payload di output supera i 256 KB. Step Functions consolida tutti i dati di esecuzione del workflow secondario, come input e output dell'esecuzione, ARN e stato di esecuzione. Quindi esporta le esecuzioni con lo stesso stato nei rispettivi file nella posizione Amazon S3 specificata. L'esempio seguente mostra la sintassi del ResultWriter campo se si esportano i risultati dell'esecuzione del flusso di lavoro secondario. In questo esempio, si memorizzano i risultati in un bucket denominato myOutputBucket all'interno di un prefisso chiamato. csvProcessJobs

{ "ResultWriter": { "Resource": "arn:aws:states:::s3:putObject", "Parameters": { "Bucket": "myOutputBucket", "Prefix": "csvProcessJobs" } } }
Suggerimento

In Workflow Studio, puoi esportare i risultati dell'esecuzione del flusso di lavoro secondario selezionando Esporta risultati dello stato della mappa su Amazon S3. Quindi, fornisci il nome del bucket Amazon S3 e il prefisso in cui desideri esportare i risultati.

Step Functions necessita delle autorizzazioni appropriate per accedere al bucket e alla cartella in cui si desidera esportare i risultati. Per informazioni sulla policy IAM richiesta, consulta. Politiche IAM per ResultWriter

Se esporti i risultati dell'esecuzione del flusso di lavoro secondario, l'esecuzione dello stato della mappa distribuita restituisce l'ARN Map Run e i dati sulla posizione di esportazione di Amazon S3 nel seguente formato:

{ "MapRunArn": "arn:aws:states:us-east-2:123456789012:mapRun:csvProcess/Map:ad9b5f27-090b-3ac6-9beb-243cd77144a7", "ResultWriterDetails": { "Bucket": "myOutputBucket", "Key": "csvProcessJobs/ad9b5f27-090b-3ac6-9beb-243cd77144a7/manifest.json" } }

Step Functions esporta le esecuzioni con lo stesso stato nei rispettivi file. Ad esempio, se le esecuzioni dei flussi di lavoro secondari hanno prodotto 500 risultati di successo e 200 di errore, Step Functions crea due file nella posizione Amazon S3 specificata per i risultati di successo e di errore. In questo esempio, il file dei risultati di successo contiene i 500 risultati di successo, mentre il file dei risultati di errore contiene i 200 risultati di errore.

Per un determinato tentativo di esecuzione, Step Functions crea i seguenti file nella posizione Amazon S3 specificata in base all'output di esecuzione:

  • manifest.json— Contiene metadati Map Run, come la posizione di esportazione, l'ARN di Map Run e informazioni sui file dei risultati.

    Se si utilizza redrivenun Map Run, il manifest.json file contiene riferimenti a tutte le esecuzioni di workflow secondarie riuscite in tutti i tentativi di Map Run. Tuttavia, questo file contiene riferimenti alle esecuzioni fallite e in sospeso per uno specifico caso. redrive

  • SUCCEEDED_n.json— Contiene i dati consolidati per tutte le esecuzioni riuscite di workflow secondari. n rappresenta il numero di indice del file. Il numero di indice inizia da 0. Ad esempio, SUCCEEDED_1.json.

  • FAILED_n.json— Contiene i dati consolidati per tutte le esecuzioni di workflow secondarie non riuscite, scadute e interrotte. Utilizzate questo file per eseguire il ripristino in caso di esecuzioni non riuscite. n rappresenta l'indice del file. Il numero di indice inizia da 0. Ad esempio, FAILED_1.json.

  • PENDING_n.json— Contiene i dati consolidati per tutte le esecuzioni di workflow secondarie che non sono state avviate perché l'esecuzione della mappa non è riuscita o è stata interrotta. n rappresenta l'indice del file. Il numero di indice inizia da 0. Ad esempio, PENDING_1.json.

Step Functions supporta file di risultati individuali fino a 5 GB. Se la dimensione di un file supera i 5 GB, Step Functions crea un altro file per scrivere i risultati di esecuzione rimanenti e aggiunge un numero di indice al nome del file. Ad esempio, se la dimensione del Succeeded_0.json file supera i 5 GB, Step Functions crea un Succeeded_1.json file per registrare i risultati rimanenti.

Se non avete specificato di esportare i risultati dell'esecuzione del flusso di lavoro secondario, l'esecuzione della macchina a stati restituisce una matrice di risultati di esecuzione del flusso di lavoro secondario, come illustrato nell'esempio seguente:

Nota

Se la dimensione di output restituita supera i 256 KB, l'esecuzione della macchina a stati fallisce e restituisce un States.DataLimitExceeded errore.

[ { "statusCode": 200, "inputReceived": { "show_id": "s1", "release_year": "2020", "rating": "PG-13", "type": "Movie" } }, { "statusCode": 200, "inputReceived": { "show_id": "s2", "release_year": "2021", "rating": "TV-MA", "type": "TV Show" } }, ... ]

Politiche IAM per ResultWriter

Quando crei flussi di lavoro con la console Step Functions, Step Functions può generare automaticamente policy IAM basate sulle risorse nella definizione del flusso di lavoro. Queste politiche includono i privilegi minimi necessari per consentire al ruolo della macchina a stati di richiamare l'azione dell'StartExecutionAPI per lo stato della mappa distribuita. Queste policy includono anche i privilegi minimi necessari Step Functions per accedere alle AWS risorse, come i bucket e gli oggetti Amazon S3 e le funzioni Lambda. Ti consigliamo vivamente di includere solo le autorizzazioni necessarie nelle tue policy IAM. Ad esempio, se il tuo flusso di lavoro include uno Map stato in modalità Distribuita, limita le policy allo specifico bucket e alla cartella Amazon S3 che contiene il set di dati.

Importante

Se specifichi un bucket Amazon S3 e un oggetto, o prefisso, con un percorso di riferimento a una coppia chiave-valore esistente nell'input dello stato della mappa distribuita, assicurati di aggiornare le policy IAM per il tuo flusso di lavoro. Definisci le policy fino ai nomi dei bucket e degli oggetti in cui il percorso si risolve in fase di esecuzione.

Il seguente esempio di policy IAM concede i privilegi minimi richiesti per scrivere i risultati dell'esecuzione del flusso di lavoro secondario in una cartella denominata CSVJobs in un bucket Amazon S3 utilizzando l'azione API. PutObject

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": [ "arn:aws:s3:::resultBucket/csvJobs/*" ] } ] }

Se il bucket Amazon S3 su cui stai scrivendo il risultato dell'esecuzione del workflow secondario è crittografato utilizzando una AWS Key Management Service (AWS KMS) chiave, devi includere AWS KMS le autorizzazioni necessarie nella tua policy IAM. Per ulteriori informazioni, consulta Autorizzazioni IAM per bucket Amazon S3 AWS KMS key crittografato.