Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
ItemReader (Peta)
ItemReader
Bidang adalah objek JSON, yang menentukan dataset dan lokasinya. Status Peta Terdistribusi menggunakan kumpulan data ini sebagai inputnya.
Contoh berikut menunjukkan sintaks ItemReader
bidang dalam alur kerja JSONPathberbasis, untuk kumpulan data dalam file teks yang dibatasi yang disimpan dalam bucket Amazon S3.
"ItemReader": {
"ReaderConfig": {
"InputType": "CSV",
"CSVHeaderLocation": "FIRST_ROW"
},
"Resource": "arn:aws:states:::s3:getObject",
"Parameters": {
"Bucket": "myBucket
",
"Key": "csvDataset/ratings.csv
",
"VersionId": "BcK42coT2jE1234VHLUvBV1yLNod2OEt"
}
}
Contoh berikut menunjukkan bahwa dalam alur kerja JSONata berbasis, Parameters
diganti dengan Argumen.
"ItemReader": {
"ReaderConfig": {
"InputType": "CSV",
"CSVHeaderLocation": "FIRST_ROW"
},
"Resource": "arn:aws:states:::s3:getObject",
"Arguments": {
"Bucket": "amzn-s3-demo-bucket
",
"Key": "csvDataset/ratings.csv
"
}
}
Tip
Di Workflow Studio, Anda menentukan kumpulan data dan lokasinya di bidang Sumber item.
Isi ItemReader lapangan
Bergantung pada kumpulan data Anda, isi ItemReader
bidang bervariasi. Misalnya, jika kumpulan data Anda adalah array JSON yang diteruskan dari langkah sebelumnya dalam alur kerja, ItemReader
bidang tersebut dihilangkan. Jika kumpulan data Anda adalah sumber data Amazon S3, bidang ini berisi sub-bidang berikut.
ReaderConfig
-
Sebuah objek JSON yang menentukan rincian berikut:
-
InputType
Menerima salah satu nilai berikut:
CSV
,,JSON
JSONL
,MANIFEST
.Menentukan jenis sumber data Amazon S3, seperti file yang dibatasi teks
CSV
(), objek, file JSON, Garis JSON, atau daftar inventaris Amazon S3. Di Workflow Studio, Anda dapat memilih jenis input dari daftar dropdown sumber item Amazon S3 di bawah bidang Sumber item. -
CSVDelimiter
Tentukan bidang ini hanya jika Anda menggunakan
CSV
asInputType
, yang menunjukkan file teks yang dibatasi. Menerima salah satu nilai berikut:COMMA
(default),,PIPE
,SEMICOLON
SPACE
,TAB
.catatan
CSVDelimiter
Bidang ini memungkinkanItemReader
lebih banyak fleksibilitas untuk mendukung file yang dibatasi oleh karakter lain selain koma. Oleh karena itu, asumsikan bahwa referensi kami ke file CSV dalam kaitannya denganItemReader
juga menyertakan file yang menggunakan pembatas yang diterima oleh bidang.CSVDelimiter
-
CSVHeaderLocation
Diperlukan jika
InputType
adaCSV
, yang menunjukkan file dibatasi teks dengan pembatas diterima oleh bidang.CSVDelimiter
Menerima salah satu nilai berikut untuk menentukan lokasi header kolom:
-
FIRST_ROW
— Gunakan opsi ini jika baris pertama file adalah header. -
GIVEN
— Gunakan opsi ini untuk menentukan header dalam definisi mesin negara. Misalnya, jika file Anda berisi data berikut.1,307,3.5,1256677221 1,481,3.5,1256677456 1,1091,1.5,1256677471 ...
Berikan array JSON berikut sebagai header CSV.
"ItemReader": { "ReaderConfig": { "InputType": "CSV", "CSVHeaderLocation": "GIVEN", "CSVHeaders": [
"userId"
,"movieId"
,"rating"
,"timestamp"
] } }
penting
Saat ini, Step Functions mendukung header hingga 10 KiB untuk file yang dibatasi teks.
Tip
Di Workflow Studio, Anda dapat menemukan opsi ini di bawah Konfigurasi tambahan di bidang Sumber item.
-
-
MaxItems
Membatasi jumlah item data yang diteruskan ke
Map
negara bagian. Misalnya, misalkan Anda memberikan file teks yang dibatasi yang berisi 1000 baris dan tentukan batas 100. Kemudian, penerjemah hanya melewati 100 baris keMap
negara bagian.Map
Status memproses item dalam urutan berurutan, dimulai setelah baris header.Secara default,
Map
status mengulangi semua item dalam kumpulan data yang ditentukan.catatan
Saat ini, Anda dapat menentukan batas hingga 100.000.000. Status Peta Terdistribusi berhenti membaca item di luar batas ini.
Tip
Di Workflow Studio, Anda dapat menemukan opsi ini di bawah Konfigurasi tambahan di bidang Sumber item.
Atau, Anda dapat menentukan jalur referensi ke pasangan kunci-nilai yang ada di masukan status Peta Terdistribusi Anda. Jalur ini harus menyelesaikan ke bilangan bulat positif. Anda menentukan jalur referensi di
MaxItemsPath
sub-bidang.penting
Anda dapat menentukan salah satu
MaxItems
atauMaxItemsPath
sub-bidang, tetapi tidak keduanya.
-
Resource
-
Tindakan Amazon S3 API yang harus dijalankan oleh Step Functions tergantung pada kumpulan data yang ditentukan.
Parameters
-
Objek JSON yang menentukan nama bucket Amazon S3 dan kunci objek tempat kumpulan data disimpan. Di bidang ini, Anda juga dapat menyediakan versi objek Amazon S3, jika bucket mengaktifkan versi.
penting
Pastikan bucket Amazon S3 Anda berada di bawah yang sama Akun AWS dan Wilayah AWS sebagai mesin negara bagian Anda.
Contoh dataset
Anda dapat menentukan salah satu opsi berikut sebagai kumpulan data Anda:
penting
Step Functions memerlukan izin yang sesuai untuk mengakses kumpulan data Amazon S3 yang Anda gunakan. Untuk informasi tentang kebijakan IAM untuk kumpulan data, lihat. Kebijakan IAM untuk kumpulan data
Status Peta Terdistribusi dapat menerima input JSON yang diteruskan dari langkah sebelumnya dalam alur kerja. Masukan ini harus berupa array, atau harus berisi array dalam node tertentu. Untuk memilih node yang berisi array, Anda dapat menggunakan ItemsPath (Peta, JSONPath hanya)
bidang.
Untuk memproses item individual dalam array, status Peta Terdistribusi memulai eksekusi alur kerja anak untuk setiap item array. Tab berikut menunjukkan contoh input yang diteruskan ke Map
status dan input yang sesuai ke eksekusi alur kerja anak.
catatan
Step Functions menghilangkan ItemReader
bidang ketika dataset Anda adalah array JSON dari langkah sebelumnya.
Status Peta Terdistribusi dapat mengulang objek yang disimpan dalam bucket Amazon S3. Saat eksekusi alur kerja mencapai Map
status, Step Functions memanggil aksi ListObjectsV2 API, yang mengembalikan array metadata objek Amazon S3. Dalam array ini, setiap item berisi data, seperti ETagdan Key, untuk data yang disimpan dalam bucket.
Untuk memproses item individual dalam array, status Peta Terdistribusi memulai eksekusi alur kerja anak. Misalnya, ember Amazon S3 Anda berisi 100 gambar. Kemudian, array yang dikembalikan setelah menjalankan aksi ListObjectsV2
API berisi 100 item. Status Peta Terdistribusi kemudian memulai 100 eksekusi alur kerja anak untuk memproses setiap item array.
catatan
-
Saat ini, Step Functions juga menyertakan item untuk setiap folder yang Anda buat di bucket Amazon S3 tertentu menggunakan konsol Amazon S3. Ini menghasilkan eksekusi alur kerja anak tambahan yang dimulai oleh status Peta Terdistribusi. Untuk menghindari membuat eksekusi alur kerja anak tambahan untuk folder, kami sarankan Anda menggunakan AWS CLI untuk membuat folder. Untuk informasi selengkapnya, lihat Perintah Amazon S3 tingkat tinggi di Panduan Pengguna AWS Command Line Interface .
Step Functions memerlukan izin yang sesuai untuk mengakses kumpulan data Amazon S3 yang Anda gunakan. Untuk informasi tentang kebijakan IAM untuk kumpulan data, lihat. Kebijakan IAM untuk kumpulan data
Tab berikut menunjukkan contoh sintaks ItemReader
bidang dan masukan yang diteruskan ke eksekusi alur kerja anak untuk kumpulan data ini.
Status Peta Terdistribusi dapat menerima file JSON yang disimpan di bucket Amazon S3 sebagai kumpulan data. File JSON harus berisi array.
Saat eksekusi alur kerja mencapai Map
status, Step Functions memanggil aksi GetObjectAPI untuk mengambil file JSON yang ditentukan. Map
Status kemudian mengulangi setiap item dalam array dan memulai eksekusi alur kerja anak untuk setiap item. Misalnya, jika file JSON Anda berisi 1000 item array, Map
status memulai 1000 eksekusi alur kerja anak.
catatan
-
Input eksekusi yang digunakan untuk memulai eksekusi alur kerja anak tidak dapat melebihi 256 KiB. Namun, Step Functions mendukung membaca item hingga 8 MB dari file teks yang dibatasi, JSON, atau file JSON Lines jika Anda kemudian menerapkan
ItemSelector
bidang opsional untuk mengurangi ukuran item. -
Saat ini, Step Functions mendukung 10 GB sebagai ukuran maksimum file individual di Amazon S3.
Step Functions memerlukan izin yang sesuai untuk mengakses kumpulan data Amazon S3 yang Anda gunakan. Untuk informasi tentang kebijakan IAM untuk kumpulan data, lihat. Kebijakan IAM untuk kumpulan data
Tab berikut menunjukkan contoh sintaks ItemReader
bidang dan masukan yang diteruskan ke eksekusi alur kerja anak untuk kumpulan data ini.
Untuk contoh ini, bayangkan Anda memiliki file JSON bernama
. Anda telah menyimpan file ini dalam awalan bernama factcheck.json
dalam bucket Amazon S3. Berikut ini adalah contoh dari dataset 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"
},
...
]
Status Peta Terdistribusi dapat menerima file JSON Lines yang disimpan di bucket Amazon S3 sebagai kumpulan data.
catatan
-
Input eksekusi yang digunakan untuk memulai eksekusi alur kerja anak tidak dapat melebihi 256 KiB. Namun, Step Functions mendukung membaca item hingga 8 MB dari file teks yang dibatasi, JSON, atau file JSON Lines jika Anda kemudian menerapkan
ItemSelector
bidang opsional untuk mengurangi ukuran item. -
Saat ini, Step Functions mendukung 10 GB sebagai ukuran maksimum file individual di Amazon S3.
Step Functions memerlukan izin yang sesuai untuk mengakses kumpulan data Amazon S3 yang Anda gunakan. Untuk informasi tentang kebijakan IAM untuk kumpulan data, lihat. Kebijakan IAM untuk kumpulan data
Tab berikut menunjukkan contoh sintaks ItemReader
bidang dan masukan yang diteruskan ke eksekusi alur kerja anak untuk kumpulan data ini.
Untuk contoh ini, bayangkan Anda memiliki file JSON Lines bernama
. Anda telah menyimpan file ini dalam awalan bernama factcheck.jsonl
dalam bucket Amazon S3. Berikut ini adalah contoh isi file.jsonlDataset
{"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"}
catatan
CSVDelimiter
Bidang ini memungkinkan ItemReader
lebih banyak fleksibilitas untuk mendukung file yang dibatasi oleh karakter lain selain koma. Oleh karena itu, asumsikan bahwa referensi kami ke file CSV dalam kaitannya dengan ItemReader
juga menyertakan file yang menggunakan pembatas yang diterima oleh bidang. CSVDelimiter
Status Peta Terdistribusi dapat menerima file teks yang dibatasi yang disimpan dalam bucket Amazon S3 sebagai kumpulan data. Jika Anda menggunakan file yang dibatasi teks sebagai kumpulan data Anda, Anda perlu menentukan header kolom. Untuk informasi tentang cara menentukan header, lihatIsi ItemReader lapangan.
Step Functions mem-parsing file teks yang dibatasi berdasarkan aturan berikut:
-
Pembatas yang memisahkan bidang ditentukan oleh in.
CSVDelimiter
ReaderConfig Delimiter default ke.COMMA
-
Baris baru adalah pembatas yang memisahkan catatan.
-
Bidang diperlakukan sebagai string. Untuk konversi tipe data, gunakan fungsi
States.StringToJson
intrinsik di. ItemSelector (Peta) -
Tanda kutip ganda (” “) tidak diperlukan untuk melampirkan string. Namun, string yang diapit oleh tanda kutip ganda dapat berisi koma dan baris baru tanpa bertindak sebagai pembatas rekaman.
-
Anda dapat mempertahankan tanda kutip ganda dengan mengulanginya.
-
Jika jumlah bidang dalam satu baris kurang dari jumlah bidang di header, Step Functions menyediakan string kosong untuk nilai yang hilang.
-
Jika jumlah bidang dalam satu baris lebih dari jumlah bidang di header, Step Functions melewatkan bidang tambahan.
Untuk informasi selengkapnya tentang cara Step Functions mem-parsing file teks yang dibatasi, lihat. Example of parsing an input CSV file
Saat eksekusi alur kerja mencapai Map
status, Step Functions memanggil aksi GetObjectAPI untuk mengambil file yang ditentukan. Map
Status kemudian mengulangi setiap baris dalam file dan memulai eksekusi alur kerja anak untuk memproses item di setiap baris. Misalnya, misalkan Anda menyediakan file teks yang dibatasi yang berisi 100 baris sebagai input. Kemudian, penerjemah meneruskan setiap baris ke Map
negara bagian. Map
Status memproses item dalam urutan serial, dimulai setelah baris header.
catatan
-
Input eksekusi yang digunakan untuk memulai eksekusi alur kerja anak tidak dapat melebihi 256 KiB. Namun, Step Functions mendukung membaca item hingga 8 MB dari file teks yang dibatasi, JSON, atau file JSON Lines jika Anda kemudian menerapkan
ItemSelector
bidang opsional untuk mengurangi ukuran item. -
Saat ini, Step Functions mendukung 10 GB sebagai ukuran maksimum file individual di Amazon S3.
Step Functions memerlukan izin yang sesuai untuk mengakses kumpulan data Amazon S3 yang Anda gunakan. Untuk informasi tentang kebijakan IAM untuk kumpulan data, lihat. Kebijakan IAM untuk kumpulan data
Tab berikut menunjukkan contoh sintaks ItemReader
bidang dan masukan yang diteruskan ke eksekusi alur kerja anak untuk kumpulan data ini.
Status Peta Terdistribusi dapat menerima file manifes inventaris Amazon S3 yang disimpan di bucket Amazon S3 sebagai kumpulan data.
Saat eksekusi alur kerja mencapai Map
status, Step Functions akan memanggil tindakan GetObjectAPI untuk mengambil file manifes inventaris Amazon S3 yang ditentukan. Map
Status kemudian mengulangi objek dalam inventaris untuk mengembalikan array metadata objek inventaris Amazon S3.
catatan
-
Saat ini, Step Functions mendukung 10 GB sebagai ukuran maksimum file individual dalam laporan inventaris Amazon S3 setelah dekompresi. Namun, Step Functions dapat memproses lebih dari 10 GB jika setiap file individu di bawah 10 GB.
Step Functions memerlukan izin yang sesuai untuk mengakses kumpulan data Amazon S3 yang Anda gunakan. Untuk informasi tentang kebijakan IAM untuk kumpulan data, lihat. Kebijakan IAM untuk kumpulan data
Berikut ini adalah contoh file inventaris dalam format CSV. File ini menyertakan objek bernama csvDataset
danimageDataset
, yang disimpan dalam bucket Amazon S3 yang diberi nama. 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"
...
penting
Saat ini, Step Functions tidak mendukung laporan inventaris Amazon S3 yang ditentukan pengguna sebagai kumpulan data. Anda juga harus memastikan bahwa format keluaran laporan inventaris Amazon S3 Anda adalah CSV. Untuk informasi selengkapnya tentang inventaris Amazon S3 dan cara mengaturnya, lihat Inventaris Amazon S3 di Panduan Pengguna Amazon S3.
Contoh berikut dari file manifes inventaris menunjukkan header CSV untuk metadata objek inventaris.
{
"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"
} ]
}
Tab berikut menunjukkan contoh sintaks ItemReader
bidang dan masukan yang diteruskan ke eksekusi alur kerja anak untuk kumpulan data ini.
Kebijakan IAM untuk kumpulan data
Saat Anda membuat alur kerja dengan konsol Step Functions, Step Functions dapat secara otomatis menghasilkan kebijakan IAM berdasarkan sumber daya dalam definisi alur kerja Anda. Kebijakan ini mencakup hak istimewa paling sedikit yang diperlukan untuk memungkinkan peran mesin status menjalankan tindakan StartExecution
API untuk status Peta Terdistribusi. Kebijakan ini juga mencakup hak istimewa paling sedikit Step Functions yang diperlukan untuk mengakses AWS sumber daya, seperti bucket dan objek Amazon S3 serta fungsi Lambda. Kami sangat menyarankan agar Anda hanya menyertakan izin yang diperlukan dalam kebijakan IAM Anda. Misalnya, jika alur kerja Anda menyertakan Map
status dalam mode Terdistribusi, cakupkan kebijakan Anda ke bucket Amazon S3 tertentu dan folder yang berisi kumpulan data Anda.
penting
Jika Anda menentukan bucket dan objek Amazon S3, atau awalan, dengan jalur referensi ke pasangan nilai kunci yang ada di input status Peta Terdistribusi, pastikan Anda memperbarui kebijakan IAM untuk alur kerja Anda. Cakupan kebijakan hingga ke bucket dan nama objek yang diselesaikan jalur saat runtime.
Contoh kebijakan IAM berikut memberikan hak istimewa paling sedikit yang diperlukan untuk mengakses kumpulan data Amazon S3 Anda menggunakan ListObjects tindakan V2 dan API. GetObject
contoh Kebijakan IAM untuk objek Amazon S3 sebagai kumpulan data
Contoh berikut menunjukkan kebijakan IAM yang memberikan hak istimewa paling sedikit untuk mengakses objek yang terorganisir
dalam bucket Amazon S3 bernama. 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
" ] } } } ] }
contoh Kebijakan IAM untuk file CSV sebagai kumpulan data
Contoh berikut menunjukkan kebijakan IAM yang memberikan hak istimewa paling sedikit untuk mengakses file CSV bernama. ratings.csv
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::
amzn-s3-demo-bucket
/csvDataset
/ratings.csv
" ] } ] }
contoh Kebijakan IAM untuk inventaris Amazon S3 sebagai kumpulan data
Contoh berikut menunjukkan kebijakan IAM yang memberikan hak istimewa paling sedikit untuk mengakses laporan inventaris 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/*" ] } ] }