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 (Mappa)
Il ResultWriter
campo è un JSON oggetto che specifica la posizione di 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 sia sotto lo stesso Account AWS e Regione AWS come macchina a stati. In caso contrario, l'esecuzione della macchina a stati fallirà con l'States.ResultWriterFailed
errore.
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 e lo stato di esecuzione. ARN 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 amzn-s3-demo-destination-bucket
all'interno di un prefisso chiamato. csvProcessJobs
{
"ResultWriter": {
"Resource": "arn:aws:states:::s3:putObject",
"Parameters": {
"Bucket": "amzn-s3-demo-destination-bucket
",
"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 IAM politica richiesta, vedere. IAMpolitiche per ResultWriter
Se esporti i risultati dell'esecuzione del flusso di lavoro secondario, l'esecuzione dello stato della mappa distribuita restituisce Map Run ARN 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": "amzn-s3-demo-destination-bucket
",
"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 dell'esecuzione:
manifest.json
— Contiene metadati Map Run, come la posizione di esportazione, Map Run ARN e informazioni sui file dei risultati.Se hai 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 redrive.SUCCEEDED_n.json
— Contiene i dati consolidati per tutte le esecuzioni di workflow secondarie riuscite. n rappresenta il numero di indice del file. Il numero di indice inizia da 0. Ad esempioSUCCEEDED_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 esempioFAILED_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 esempioPENDING_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 workflow 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"
}
},
...
]
IAMpolitiche per ResultWriter
Quando crei flussi di lavoro con la console Step Functions, Step Functions può generare automaticamente IAM policy 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'StartExecution
APIazione per lo stato della Mappa distribuita. Queste politiche includono anche i privilegi minimi necessari per accedere a Step Functions. AWS risorse, come bucket e oggetti Amazon S3 e funzioni Lambda. Ti consigliamo vivamente di includere solo le autorizzazioni necessarie nelle tue politiche. 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 politiche per il tuo flusso di lavoro. IAM Definisci le policy fino ai nomi dei bucket e degli oggetti in cui il percorso viene risolto in fase di esecuzione.
Il seguente esempio di IAM policy concede i privilegi minimi necessari per scrivere i risultati dell'esecuzione del workflow secondario in una cartella denominata csvJobs
in un bucket Amazon S3 utilizzando l'azione. PutObject
API
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": [ "arn:aws:s3:::
amzn-s3-demo-destination-bucket
/csvJobs
/*" ] } ] }
Se il bucket Amazon S3 su cui stai scrivendo il risultato dell'esecuzione del flusso di lavoro secondario è crittografato utilizzando un AWS Key Management Service (AWS KMS) chiave, è necessario includere il necessario AWS KMS autorizzazioni nella tua IAM politica. Per ulteriori informazioni, consulta IAMautorizzazioni per AWS KMS key bucket Amazon S3 crittografato.