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
IlItemReader
field è un oggetto JSON, che specifica un set di dati e la sua posizione. UNStato della mappa distribuitautilizza questo set di dati come input. L'esempio seguente mostra la sintassi dellaItemReader
campo se il tuo set di dati è un file CSV archiviato in un bucket Amazon S3.
"ItemReader": {
"ReaderConfig": {
"InputType": "CSV",
"CSVHeaderLocation": "FIRST_ROW"
},
"Resource": "arn:aws:states:::s3:getObject",
"Parameters": {
"Bucket": "myBucket
",
"Key": "csvDataset/ratings.csv
"
}
}
Suggerimento
In Workflow Studio, specifichi il set di dati e la sua posizione nelFonte dell'articolocampo.
Contenuto del ItemReader campo
A seconda del set di dati, il contenuto delItemReader
il campo varia. Ad esempio, se il set di dati è un array JSON passato da una fase precedente del flusso di lavoro,ItemReader
il campo è omesso. Se il set di dati è un'origine dati Amazon S3, questo campo contiene i seguenti sottocampi.
ReaderConfig
Un oggetto JSON che specifica i seguenti dettagli:
InputType
Speciifica il tipo di origine dati Amazon S3, ad esempio file CSV, oggetto, file JSON o un elenco di inventario Amazon S3. In Workflow Studio, puoi selezionare un tipo di input dalFonte dell'articolo Amazon S3elenco a discesa sotto ilFonte dell'articolocampo.
CSVHeaderLocation
Nota
È necessario specificare questo campo solo se si utilizza un file CSV come set di dati.
Accetta uno dei seguenti valori per specificare la posizione dell'intestazione della colonna:
Importante
Attualmente, Step Functions supporta intestazioni CSV fino a 10 KB.
FIRST_ROW
— Usa 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 file CSV contiene i seguenti dati.1,307,3.5,1256677221 1,481,3.5,1256677456 1,1091,1.5,1256677471 ...
Fornisci il seguente array JSON come intestazione CSV.
"ItemReader": { "ReaderConfig": { "InputType": "CSV", "CSVHeaderLocation": "GIVEN", "CSVHeaders": [
"userId"
,"movieId"
,"rating"
,"timestamp"
] } }
Suggerimento
In Workflow Studio, puoi trovare questa opzione inConfigurazione aggiuntivanelFonte dell'articolocampo.
MaxItems
Limita il numero di elementi di dati trasmessi a
Map
stato. Ad esempio, supponiamo di fornire un file CSV contenente 1000 righe e di specificare un limite di 100. Quindi, l'interprete passasolomancano 100 righe alMap
stato. LaMap
state elabora gli elementi in ordine sequenziale, a partire dalla riga di intestazione.Per impostazione predefinita,
Map
lo stato itera su tutti gli elementi del set di dati specificato.Nota
Attualmente, è possibile specificare un limite fino a 100.000.000. IlStato della mappa distribuitainterrompe la lettura degli elementi che superano questo limite.
Suggerimento
In Workflow Studio, puoi trovare questa opzione inConfigurazione aggiuntivanelFonte dell'articolocampo.
In alternativa, è possibile specificare unpercorso di riferimentoa una coppia chiave-valore esistente nelstato della mappa distribuitainput. Questo percorso deve risolversi in un numero intero positivo. Specificate il percorso di riferimento nel
MaxItemsPath
sottocampo.Importante
È possibile specificare una delle
MaxItems
oMaxItemsPath
sottocampo, ma non entrambi.
Resource
L'azione dell'API Amazon S3 che Step Functions deve richiamare a seconda del set di dati specificato.
Parameters
Un oggetto JSON 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 stessiAccount AWSeRegione AWScome la tua macchina di stato.
Esempi di set di dati
È possibile specificare una delle seguenti opzioni come set di dati:
Importante
Step Functions necessita di autorizzazioni appropriate per accedere ai set di dati Amazon S3 che utilizzi. Per informazioni sulle politiche IAM per i set di dati, consultaPolitiche IAM per set di dati.
UNStato della mappa distribuitapuò accettare un input JSON della fase precedente nel 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, è possibile utilizzareItemsPath
campo.
Per elaborare i singoli elementi dell'array,Stato della mappa distribuitaavvia l'esecuzione di un workflow secondario per ogni elemento dell'array. Le schede seguenti mostrano esempi dell'input passato aMap
stato e l'input corrispondente all'esecuzione di un workflow secondario.
Nota
Step Functions ometteItemReader
campo quando il set di dati è un array JSON di un passaggio precedente.
UNStato della mappa distribuitapuò iterare sugli oggetti archiviati in un bucket Amazon S3. Quando l'esecuzione del flusso di lavoro raggiunge ilMap
state, Step Functions invoca ilListObjectsV2Azione API, che restituisce un array di metadati degli oggetti Amazon S3. In questo array, ogni elemento contiene dati, comeETageChiave, per i dati memorizzati nel bucket.
Per elaborare singoli elementi dell'array,Stato della mappa distribuitaavvia l'esecuzione di un workflow secondario. Ad esempio, supponiamo che il bucket Amazon S3 contenga 100 immagini. Quindi, l'array è tornato dopo aver richiamato ilListObjectsV2
L'azione API contiene 100 elementi. IlStato della mappa distribuitaavvia 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 un bucket Amazon S3 utilizzando la console Amazon S3. Ciò si traduce in un'esecuzione aggiuntiva del flusso di lavoro secondario avviata daStato della mappa distribuita. Per evitare di creare un'esecuzione aggiuntiva del flusso di lavoro secondario per la cartella, si consiglia di utilizzare ilAWS CLIper creare cartelle. Per ulteriori informazioni, consulta la paginaComandi Amazon S3 di alto livellonelAWS Command Line InterfaceGuida per l'utente.
Step Functions necessita di autorizzazioni appropriate per accedere ai set di dati Amazon S3 che utilizzi. Per informazioni sulle politiche IAM per i set di dati, consultaPolitiche IAM per set di dati.
Le schede seguenti mostrano esempi diItemReader
la sintassi del campo e l'input passato all'esecuzione di un workflow secondario per questo set di dati.
UNStato della mappa distribuitaè in grado di accettare un file JSON archiviato in un bucket Amazon S3 come set di dati. Il file JSON deve contenere un array.
Quando l'esecuzione del flusso di lavoro raggiunge ilMap
state, Step Functions invoca ilGetObjectAzione API per recuperare il file JSON specificato. IlMap
state 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 file JSON contiene 1000 elementi dell'array,Map
state 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 file CSV o JSON se poi si applica l'opzione
ItemSelector
campo per ridurre le dimensioni dell'articolo.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 di autorizzazioni appropriate per accedere ai set di dati Amazon S3 che utilizzi. Per informazioni sulle politiche IAM per i set di dati, consultaPolitiche IAM per set di dati.
Le schede seguenti mostrano esempi diItemReader
la sintassi del campo e l'input passato all'esecuzione di un workflow secondario per questo set di dati.
In questo esempio, immagina di avere un file JSON di nome
. Hai memorizzato questo file all'interno di un prefisso denominatofactcheck.json
in un bucket Amazon S3. Di seguito è riportato un esempio del set di dati JSON.jsonDataset
[
{
"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"
},
...
]
UNStato della mappa distribuitaè in grado di accettare un file CSV archiviato in un bucket Amazon S3 come set di dati. Se utilizzi un file CSV come set di dati, devi specificare un'intestazione di colonna CSV. Per informazioni su come specificare un'intestazione CSV, consultaContenuto del ItemReader campo.
Poiché non esiste un formato standardizzato per creare e gestire i dati nei file CSV, Step Functions analizza i file CSV in base alle seguenti regole:
-
Le virgole (,) sono un delimitatore che separa i singoli campi.
-
Le newline sono un delimitatore che separa i singoli record.
-
I campi vengono trattati come stringhe. Per le conversioni dei tipi di dati, usa
States.StringToJson
funzione intrinseca inItemSelector. -
Le virgolette doppie (» «) non sono necessarie per racchiudere le stringhe. Tuttavia, le stringhe racchiuse tra virgolette doppie possono contenere virgole e nuove righe senza che funzionino come delimitatori.
-
Evita 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 file CSV, vedere la.Example of parsing an input CSV file.
Quando l'esecuzione del flusso di lavoro raggiunge ilMap
state, Step Functions invoca ilGetObjectAzione API per recuperare il file CSV specificato. IlMap
state esegue quindi un'iterazione su ogni riga del file CSV e avvia un'esecuzione del flusso di lavoro secondario per elaborare gli elementi di ogni riga. Ad esempio, supponiamo di fornire un file CSV che contiene 100 righe come input. Quindi, l'interprete passa ogni riga alMap
stato. LaMap
state 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 file CSV o JSON se poi si applica l'opzione
ItemSelector
campo per ridurre le dimensioni dell'articolo.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 di autorizzazioni appropriate per accedere ai set di dati Amazon S3 che utilizzi. Per informazioni sulle politiche IAM per i set di dati, consultaPolitiche IAM per set di dati.
Le schede seguenti mostrano esempi diItemReader
la sintassi del campo e l'input passato all'esecuzione di un workflow secondario per questo set di dati.
UNStato della mappa distribuitaè in grado di accettare un file di inventario Amazon S3 che è archiviato in un bucket Amazon S3 come set di dati.
Quando l'esecuzione del flusso di lavoro raggiunge ilMap
state, Step Functions invoca ilGetObjectAzione API per recuperare il file manifesto dell'inventario Amazon S3 specificato. IlMap
state esegue quindi un'iterazione sugli oggetti nell'inventario per restituire una serie 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 di autorizzazioni appropriate per accedere ai set di dati Amazon S3 che utilizzi. Per informazioni sulle politiche IAM per i set di dati, consultaPolitiche IAM per set di dati.
Di seguito è riportato un esempio di modello di inventario in formato CSV. Questo file include gli oggetti denominaticsvDataset
eimageDataset
, che sono archiviati in un bucket Amazon S3 denominatosourceBucket
.
"sourceBucket","csvDataset/","0","2022-11-16T00:27:19.000Z"
"sourceBucket","csvDataset/titles.csv","3399671","2022-11-16T00:29:32.000Z"
"sourceBucket","imageDataset/","0","2022-11-15T20:00:44.000Z"
"sourceBucket","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 Amazon S3 e su come configurarli, consulta la.Inventario Amazon S3nelGuida per l'utente di Amazon S3.
Il seguente esempio di file manifesto dell'inventario mostra le intestazioni CSV per i metadati degli oggetti di inventario.
{
"sourceBucket" : "sourceBucket
",
"destinationBucket" : "arn:aws:s3:::inventory
",
"version" : "2016-11-30",
"creationTimestamp" : "1668560400000",
"fileFormat" : "CSV",
"fileSchema" : "Bucket, Key, Size, LastModifiedDate",
"files" : [ {
"key" : "source-bucket
/destination-prefix
/data/20e55de8-9c21-45d4-99b9-46c732000228.csv.gz
",
"size" : 7300,
"MD5checksum" : "a7ff4a1d4164c3cd55851055ec8f6b20"
} ]
}
Le schede seguenti mostrano esempi diItemReader
la sintassi del campo e l'input passato all'esecuzione di un workflow secondario per questo set di dati.
Politiche IAM per set di dati
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 ilStartExecution
Azione API perStato della mappa distribuita. Queste politiche includono anche i privilegi minimi necessari per accedere a Step Functions.AWSrisorse, come bucket e oggetti Amazon S3 e funzioni Lambda. Ti consigliamo vivamente di includere solo le autorizzazioni necessarie nelle tue policy IAM. Ad esempio, se il tuo flusso di lavoro include unMap
imposta in modalità distribuita, limita le tue 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 unpercorso di riferimentoa una coppia chiave-valore esistente nelstato della mappa distribuitainput, assicurati di aggiornare le policy IAM per il tuo flusso di lavoro. Ambita le policy fino al bucket e ai nomi degli oggetti in cui il percorso si risolve in fase di esecuzione.
I seguenti esempi di policy IAM concedono i privilegi minimi necessari per accedere ai set di dati Amazon S3 utilizzandoListObjectsV2eGetObjectAzioni API.
Esempio Policy IAM per oggetti Amazon S3 come set di dati
L'esempio seguente mostra una policy IAM che concede i privilegi minimi per accedere agli oggetti organizzati all'interno
in un bucket Amazon S3 denominatoprocessImages
.myBucket
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::
myBucket
" ], "Condition": { "StringLike": { "s3:prefix": [ "processImages
" ] } } } ] }
Esempio Politica IAM per un file CSV come set di dati
L'esempio seguente mostra una policy IAM che concede i privilegi minimi per accedere a un file CSV denominato
.ratings.csv
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::
myBucket
/csvDataset
/ratings.csv
" ] } ] }
Esempio Policy IAM per un inventario di Amazon S3 come set di dati
L'esempio seguente mostra una policy IAM 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
/source-bucket
/config-ID
/YYYY-MM-DDTHH-MMZ
/manifest.json", "arn:aws:s3:::destination-prefix
/source-bucket
/config-ID
/data/*" ] } ] }