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à.
ItemReader (Mappa)
Il ItemReader
campo è un JSON oggetto che specifica un set di dati e la sua posizione. Uno stato della mappa distribuita utilizza questo set di dati come input. L'esempio seguente mostra la sintassi del ItemReader
campo se il set di dati è un CSV file archiviato in un bucket Amazon S3.
"ItemReader": {
"ReaderConfig": {
"InputType": "CSV",
"CSVHeaderLocation": "FIRST_ROW"
},
"Resource": "arn:aws:states:::s3:getObject",
"Parameters": {
"Bucket": "amzn-s3-demo-bucket
",
"Key": "csvDataset/ratings.csv
"
}
}
Suggerimento
In Workflow Studio, specifichi il set di dati e la sua posizione nel campo Origine dell'elemento.
Contenuto del campo ItemReader
A seconda del set di dati, il contenuto del ItemReader
campo varia. Ad esempio, se il set di dati è un JSON array passato da un passaggio precedente del flusso di lavoro, il ItemReader
campo viene omesso. Se il set di dati è un'origine dati Amazon S3, questo campo contiene i seguenti sottocampi.
ReaderConfig
Un JSON oggetto che specifica i seguenti dettagli:
InputType
Speciifica il tipo di origine dati di Amazon S3, ad esempio CSV file, oggettoJSON, file o un elenco di inventario Amazon S3. In Workflow Studio, puoi selezionare un tipo di input dall'elenco a discesa delle sorgenti degli elementi di Amazon S3 nel campo Origine articolo.
CSVHeaderLocation
Nota
È necessario specificare questo campo solo se si utilizza un CSV file come set di dati.
Accetta uno dei seguenti valori per specificare la posizione dell'intestazione della colonna:
Importante
Attualmente, Step Functions supporta CSV intestazioni fino a 10 KB.
FIRST_ROW
— Utilizzate questa opzione se la prima riga del file è l'intestazione.GIVEN
— Utilizzate questa opzione per specificare l'intestazione all'interno della definizione della macchina a stati. Ad esempio, se il CSV file contiene i seguenti dati.1,307,3.5,1256677221 1,481,3.5,1256677456 1,1091,1.5,1256677471 ...
Fornisci il seguente JSON array come CSV intestazione.
"ItemReader": { "ReaderConfig": { "InputType": "CSV", "CSVHeaderLocation": "GIVEN", "CSVHeaders": [
"userId"
,"movieId"
,"rating"
,"timestamp"
] } }
Suggerimento
In Workflow Studio, è possibile trovare questa opzione in Configurazione aggiuntiva nel campo Origine dell'elemento.
MaxItems
Limita il numero di elementi di dati passati allo
Map
stato. Ad esempio, supponiamo di fornire un CSV file contenente 1000 righe e di specificare un limite di 100. Quindi, l'interprete passa solo 100 righe alloMap
stato. LoMap
stato elabora gli elementi in ordine sequenziale, a partire dalla riga di intestazione.Per impostazione predefinita, lo
Map
stato esegue un'iterazione su tutti gli elementi del set di dati specificato.Nota
Attualmente, è possibile specificare un limite fino a 100.000.000. Lo stato della Mappa distribuita interrompe la lettura degli elementi che superano questo limite.
Suggerimento
In Workflow Studio, puoi trovare questa opzione in Configurazione aggiuntiva nel campo Origine dell'elemento.
In alternativa, è possibile specificare un percorso di riferimento a una coppia chiave-valore esistente nell'input di stato della Mappa distribuita. Questo percorso deve risolversi in un numero intero positivo. Il percorso di riferimento viene specificato nel
MaxItemsPath
sottocampo.Importante
È possibile specificare il
MaxItemsPath
campoMaxItems
o il sottocampo, ma non entrambi.
Resource
L'APIazione Amazon S3 che Step Functions deve richiamare a seconda del set di dati specificato.
Parameters
Un JSON oggetto che specifica il nome del bucket Amazon S3 e la chiave dell'oggetto in cui è archiviato il set di dati.
Importante
Assicurati che i tuoi bucket Amazon S3 siano sotto gli stessi Account AWS e Regione AWS come macchina a stati.
Esempi di set di dati
È possibile specificare una delle seguenti opzioni come set di dati:
Importante
Step Functions necessita delle autorizzazioni appropriate per accedere ai set di dati Amazon S3 che utilizzi. Per informazioni sulle IAM politiche per i set di dati, consulta. IAMpolitiche per i set di dati
Uno stato della mappa distribuita può accettare un JSON input passato da una fase precedente del flusso di lavoro. Questo input deve essere un array o deve contenere un array all'interno di un nodo specifico. Per selezionare un nodo che contiene l'array, puoi usare il ItemsPath (Mappa)
campo.
Per elaborare singoli elementi dell'array, lo stato Distributed Map avvia un'esecuzione del flusso di lavoro secondario per ogni elemento dell'array. Le schede seguenti mostrano esempi dell'input passato allo Map
stato e dell'input corrispondente all'esecuzione di un workflow secondario.
Nota
Step Functions omette il ItemReader
campo quando il set di dati è un JSON array di un passaggio precedente.
Uno stato della mappa distribuita può iterare sugli oggetti archiviati in un bucket Amazon S3. Quando l'esecuzione del flusso di lavoro raggiunge lo Map
stato, Step Functions richiama l'APIazione ListObjectsV2, che restituisce un array di metadati degli oggetti Amazon S3. In questo array, ogni elemento contiene dati, ad esempio una chiave, per i ETagdati archiviati nel bucket.
Per elaborare i singoli elementi dell'array, lo stato Distributed Map avvia l'esecuzione di un workflow secondario. Ad esempio, supponiamo che il bucket Amazon S3 contenga 100 immagini. Quindi, l'array restituito dopo aver richiamato l'ListObjectsV2
APIazione contiene 100 elementi. Lo stato Distributed Map avvia quindi 100 esecuzioni di workflow secondarie per elaborare ogni elemento dell'array.
Nota
Attualmente, Step Functions include anche un elemento per ogni cartella creata in uno specifico bucket Amazon S3 utilizzando la console Amazon S3. Ciò si traduce in un'esecuzione aggiuntiva del flusso di lavoro secondario avviata dallo stato della mappa distribuita. Per evitare di creare un'esecuzione aggiuntiva del flusso di lavoro secondario per la cartella, si consiglia di utilizzare AWS CLI per creare cartelle. Per ulteriori informazioni, consulta Comandi di alto livello di Amazon S3 nel AWS Command Line Interface Guida per l'utente.
Step Functions necessita delle autorizzazioni appropriate per accedere ai set di dati Amazon S3 che utilizzi. Per informazioni sulle IAM politiche per i set di dati, consulta. IAMpolitiche per i set di dati
Le schede seguenti mostrano esempi della sintassi dei ItemReader
campi e dell'input passato all'esecuzione di un workflow secondario per questo set di dati.
Uno stato della mappa distribuita può accettare un JSON file archiviato in un bucket Amazon S3 come set di dati. Il JSON file deve contenere un array.
Quando l'esecuzione del workflow raggiunge lo Map
stato, Step Functions richiama l'GetObjectAPIazione per recuperare il file specificato. JSON Lo Map
stato esegue quindi un'iterazione su ogni elemento dell'array e avvia un'esecuzione del flusso di lavoro secondario per ogni elemento. Ad esempio, se il JSON file contiene 1000 elementi dell'array, lo Map
stato avvia 1000 esecuzioni di workflow secondarie.
Nota
L'input di esecuzione utilizzato per avviare l'esecuzione di un workflow secondario non può superare i 256 KB. Tuttavia, Step Functions supporta la lettura di un elemento fino a 8 MB da un JSON file CSV or se poi si applica il
ItemSelector
campo opzionale per ridurre le dimensioni dell'elemento.Attualmente, Step Functions supporta 10 GB come dimensione massima di un singolo file in un report di inventario Amazon S3. Tuttavia, Step Functions può elaborare più di 10 GB se ogni singolo file è inferiore a 10 GB.
Step Functions necessita delle autorizzazioni appropriate per accedere ai set di dati Amazon S3 che utilizzi. Per informazioni sulle IAM politiche per i set di dati, consulta. IAMpolitiche per i set di dati
Le schede seguenti mostrano esempi della sintassi dei ItemReader
campi e dell'input passato all'esecuzione di un workflow secondario per questo set di dati.
Per questo esempio, immaginate di avere un JSON file denominato.
Hai memorizzato questo file all'interno di un prefisso denominato factcheck.json
in un bucket Amazon S3. Di seguito è riportato un esempio del set di dati. JSONjsonDataset
[
{
"verdict": "true",
"statement_date": "6/11/2008",
"statement_source": "speech"
},
{
"verdict": "false",
"statement_date": "6/7/2022",
"statement_source": "television"
},
{
"verdict": "mostly-true",
"statement_date": "5/18/2016",
"statement_source": "news"
},
...
]
Uno stato della mappa distribuita può accettare un CSV file archiviato in un bucket Amazon S3 come set di dati. Se utilizzi un CSV file come set di dati, devi specificare un'intestazione di colonna. CSV Per informazioni su come specificare un'CSVintestazione, consulta. Contenuto del campo ItemReader
Step Functions analizza CSV i file in base alle seguenti regole:
-
Le virgole (,) sono un delimitatore che separa i campi.
-
Le newline sono un delimitatore che separa i record.
-
I campi vengono trattati come stringhe. Per le conversioni dei tipi di dati, usa la funzione
States.StringToJson
intrinseca in. ItemSelector (Mappa) -
Le virgolette doppie (» «) non sono necessarie per racchiudere stringhe. Tuttavia, le stringhe racchiuse tra virgolette doppie possono contenere virgole e nuove righe senza fungere da delimitatori di record.
-
È possibile conservare le virgolette doppie ripetendole.
-
Se il numero di campi in una riga è inferiore al numero di campi nell'intestazione, Step Functions fornisce stringhe vuote per i valori mancanti.
-
Se il numero di campi in una riga è superiore al numero di campi nell'intestazione, Step Functions salta i campi aggiuntivi.
Per ulteriori informazioni su come Step Functions analizza un CSV file, vedereExample of parsing an input CSV file.
Quando l'esecuzione del workflow raggiunge lo Map
stato, Step Functions richiama l'GetObjectAPIazione per recuperare il file specificato. CSV Lo Map
stato esegue quindi un'iterazione su ogni riga del CSV file e avvia un'esecuzione secondaria del flusso di lavoro per elaborare gli elementi di ogni riga. Ad esempio, supponete di fornire un CSV file che contiene 100 righe come input. Quindi, l'interprete passa ogni riga allo Map
stato. Lo Map
stato elabora gli elementi in ordine seriale, a partire dalla riga di intestazione.
Nota
L'input di esecuzione utilizzato per avviare l'esecuzione di un workflow secondario non può superare i 256 KB. Tuttavia, Step Functions supporta la lettura di un elemento fino a 8 MB da un JSON file CSV or se poi si applica il
ItemSelector
campo opzionale per ridurre le dimensioni dell'elemento.Attualmente, Step Functions supporta 10 GB come dimensione massima di un singolo file in un report di inventario Amazon S3. Tuttavia, Step Functions può elaborare più di 10 GB se ogni singolo file è inferiore a 10 GB.
Step Functions necessita delle autorizzazioni appropriate per accedere ai set di dati Amazon S3 che utilizzi. Per informazioni sulle IAM politiche per i set di dati, consulta. IAMpolitiche per i set di dati
Le schede seguenti mostrano esempi della sintassi dei ItemReader
campi e dell'input passato all'esecuzione di un workflow secondario per questo set di dati.
Uno stato Distributed Map può accettare un file manifesto di inventario Amazon S3 archiviato in un bucket Amazon S3 come set di dati.
Quando l'esecuzione del flusso di lavoro raggiunge lo Map
stato, Step Functions richiama l'GetObjectAPIazione per recuperare il file manifesto dell'inventario Amazon S3 specificato. Lo Map
stato esegue quindi un'iterazione sugli oggetti nell'inventario per restituire una matrice di metadati degli oggetti di inventario Amazon S3.
Nota
Attualmente, Step Functions supporta 10 GB come dimensione massima di un singolo file in un report di inventario Amazon S3. Tuttavia, Step Functions può elaborare più di 10 GB se ogni singolo file è inferiore a 10 GB.
Step Functions necessita delle autorizzazioni appropriate per accedere ai set di dati Amazon S3 che utilizzi. Per informazioni sulle IAM politiche per i set di dati, consulta. IAMpolitiche per i set di dati
Di seguito è riportato un esempio di modello di inventario in CSV formato. Questo file include gli oggetti denominati csvDataset
andimageDataset
, che sono archiviati in un bucket Amazon S3 denominato. amzn-s3-demo-source-bucket
"amzn-s3-demo-source-bucket","csvDataset/","0","2022-11-16T00:27:19.000Z"
"amzn-s3-demo-source-bucket","csvDataset/titles.csv","3399671","2022-11-16T00:29:32.000Z"
"amzn-s3-demo-source-bucket","imageDataset/","0","2022-11-15T20:00:44.000Z"
"amzn-s3-demo-source-bucket","imageDataset/n02085620_10074.jpg","27034","2022-11-15T20:02:16.000Z"
...
Importante
Attualmente, Step Functions non supporta i report di inventario Amazon S3 definiti dall'utente come set di dati. È inoltre necessario assicurarsi che il formato di output del report di inventario di Amazon S3 sia. CSV Per ulteriori informazioni sugli inventari di Amazon S3 e su come configurarli, consulta Amazon S3 Inventory nella Amazon S3 User Guide.
Il seguente esempio di file di manifesto dell'inventario mostra le CSV intestazioni dei metadati degli oggetti di inventario.
{
"sourceBucket" : "amzn-s3-demo-source-bucket
",
"destinationBucket" : "arn:aws:s3:::amzn-s3-demo-inventory
",
"version" : "2016-11-30",
"creationTimestamp" : "1668560400000",
"fileFormat" : "CSV",
"fileSchema" : "Bucket, Key, Size, LastModifiedDate",
"files" : [ {
"key" : "amzn-s3-demo-bucket
/destination-prefix
/data/20e55de8-9c21-45d4-99b9-46c732000228.csv.gz
",
"size" : 7300,
"MD5checksum" : "a7ff4a1d4164c3cd55851055ec8f6b20"
} ]
}
Le schede seguenti mostrano esempi della sintassi del ItemReader
campo e dell'input passato all'esecuzione di un workflow secondario per questo set di dati.
IAMpolitiche per i set di dati
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.
I seguenti esempi di IAM policy garantiscono i privilegi minimi necessari per accedere ai set di dati di Amazon S3 utilizzando ListObjects V2 and actions. GetObjectAPI
Esempio IAMpolicy per l'oggetto Amazon S3 come set di dati
L'esempio seguente mostra una IAM politica che concede i privilegi minimi per accedere agli oggetti organizzati all'interno di un
bucket Amazon S3 denominato. processImages
amzn-s3-demo-bucket
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::
amzn-s3-demo-bucket
" ], "Condition": { "StringLike": { "s3:prefix": [ "processImages
" ] } } } ] }
Esempio IAMpolitica per un file come set di dati CSV
L'esempio seguente mostra una IAM politica che concede i privilegi minimi per accedere a un CSV file denominato. ratings.csv
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::
amzn-s3-demo-bucket
/csvDataset
/ratings.csv
" ] } ] }
Esempio IAMpolitica per un inventario Amazon S3 come set di dati
L'esempio seguente mostra una IAM politica che concede i privilegi minimi per accedere a un report di inventario di Amazon S3.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::
destination-prefix
/amzn-s3-demo-bucket
/config-ID
/YYYY-MM-DDTHH-MMZ
/manifest.json", "arn:aws:s3:::destination-prefix
/amzn-s3-demo-bucket
/config-ID
/data/*" ] } ] }