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 JSON objek, yang menentukan dataset dan lokasinya. Status Peta Terdistribusi menggunakan kumpulan data ini sebagai inputnya. Contoh berikut menunjukkan sintaks ItemReader
bidang jika kumpulan data Anda adalah CSV file yang disimpan di 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
"
}
}
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 JSON larik 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 JSON objek yang menentukan rincian berikut:
InputType
Menentukan jenis sumber data Amazon S3, CSV seperti file, objek, fileJSON, 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.
CSVHeaderLocation
catatan
Anda harus menentukan bidang ini hanya jika Anda menggunakan CSV file sebagai kumpulan data.
Menerima salah satu nilai berikut untuk menentukan lokasi header kolom:
penting
Saat ini, Step Functions mendukung CSV header hingga 10 KB.
FIRST_ROW
— Gunakan opsi ini jika baris pertama file adalah header.GIVEN
— Gunakan opsi ini untuk menentukan header dalam definisi mesin negara. Misalnya, jika CSV file Anda berisi data berikut.1,307,3.5,1256677221 1,481,3.5,1256677456 1,1091,1.5,1256677471 ...
Berikan JSON array berikut sebagai CSV header.
"ItemReader": { "ReaderConfig": { "InputType": "CSV", "CSVHeaderLocation": "GIVEN", "CSVHeaders": [
"userId"
,"movieId"
,"rating"
,"timestamp"
] } }
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 menyediakan CSV file 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
APITindakan Amazon S3 yang harus dijalankan oleh Step Functions tergantung pada kumpulan data yang ditentukan.
Parameters
JSONObjek yang menentukan nama bucket Amazon S3 dan kunci objek tempat kumpulan data disimpan.
penting
Pastikan bucket Amazon S3 Anda berada di bawah yang sama Akun AWS and Wilayah AWS sebagai mesin negara 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 IAM kebijakan untuk kumpulan data, lihat. IAMkebijakan untuk kumpulan data
Status Peta Terdistribusi dapat menerima JSON input 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)
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 JSON array dari langkah sebelumnya.
Status Peta Terdistribusi dapat mengulang objek yang disimpan dalam bucket Amazon S3. Ketika eksekusi alur kerja mencapai Map
status, Step Functions memanggil API tindakan ListObjectsV2, 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 kembali setelah menjalankan ListObjectsV2
API tindakan 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 AWS Command Line Interface Panduan Pengguna.
Step Functions memerlukan izin yang sesuai untuk mengakses kumpulan data Amazon S3 yang Anda gunakan. Untuk informasi tentang IAM kebijakan untuk kumpulan data, lihat. IAMkebijakan 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 JSON file yang disimpan di bucket Amazon S3 sebagai kumpulan data. JSONFile harus berisi array.
Ketika eksekusi alur kerja mencapai Map
status, Step Functions memanggil GetObjectAPItindakan untuk mengambil file yang ditentukan. JSON Map
Status kemudian mengulangi setiap item dalam array dan memulai eksekusi alur kerja anak untuk setiap item. Misalnya, jika JSON file Anda berisi 1000 item array, Map
status akan memulai 1000 eksekusi alur kerja anak.
catatan
Input eksekusi yang digunakan untuk memulai eksekusi alur kerja anak tidak dapat melebihi 256 KB. Namun, Step Functions mendukung membaca item hingga 8 MB dari JSON file CSV atau jika Anda kemudian menerapkan
ItemSelector
bidang opsional untuk mengurangi ukuran item.Saat ini, Step Functions mendukung 10 GB sebagai ukuran maksimum file individual dalam laporan inventaris Amazon S3. 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 IAM kebijakan untuk kumpulan data, lihat. IAMkebijakan 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 JSON file bernama
. Anda telah menyimpan file ini dalam awalan bernama factcheck.json
dalam bucket Amazon S3. Berikut ini adalah contoh dari JSON dataset.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 CSV file yang disimpan di bucket Amazon S3 sebagai kumpulan data. Jika Anda menggunakan CSV file sebagai dataset Anda, Anda perlu menentukan header CSV kolom. Untuk informasi tentang cara menentukan CSV header, lihatIsi ItemReader lapangan.
Step Functions CSV mem-parsing file berdasarkan aturan berikut:
-
Koma (,) adalah pembatas yang memisahkan bidang.
-
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 CSV file, lihatExample of parsing an input CSV file.
Ketika eksekusi alur kerja mencapai Map
status, Step Functions memanggil GetObjectAPItindakan untuk mengambil file yang ditentukan. CSV Map
Status kemudian mengulangi setiap baris dalam CSV file dan memulai eksekusi alur kerja anak untuk memproses item di setiap baris. Misalnya, Anda menyediakan CSV file 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 KB. Namun, Step Functions mendukung membaca item hingga 8 MB dari JSON file CSV atau jika Anda kemudian menerapkan
ItemSelector
bidang opsional untuk mengurangi ukuran item.Saat ini, Step Functions mendukung 10 GB sebagai ukuran maksimum file individual dalam laporan inventaris Amazon S3. 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 IAM kebijakan untuk kumpulan data, lihat. IAMkebijakan 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 GetObjectAPItindakan 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. 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 IAM kebijakan untuk kumpulan data, lihat. IAMkebijakan untuk kumpulan data
Berikut ini adalah contoh file inventaris dalam CSV format. 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 output 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 CSV header 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.
IAMkebijakan untuk kumpulan data
Saat Anda membuat alur kerja dengan konsol Step Functions, Step Functions dapat secara otomatis menghasilkan IAM kebijakan berdasarkan sumber daya dalam definisi alur kerja Anda. Kebijakan ini mencakup hak istimewa paling sedikit yang diperlukan untuk memungkinkan peran mesin status menjalankan StartExecution
API tindakan untuk status Peta Terdistribusi. Kebijakan ini juga mencakup hak istimewa paling sedikit Step Functions yang diperlukan untuk diakses AWS sumber daya, seperti bucket Amazon S3 dan objek dan fungsi Lambda. Kami sangat menyarankan agar Anda hanya menyertakan izin yang diperlukan dalam IAM kebijakan 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 untuk alur kerja Anda. IAM Cakupan kebijakan hingga ke bucket dan nama objek yang diselesaikan jalur saat runtime.
Contoh IAM kebijakan berikut memberikan hak istimewa paling sedikit yang diperlukan untuk mengakses kumpulan data Amazon S3 Anda menggunakan ListObjects V2 dan tindakan. GetObjectAPI
contoh IAMkebijakan untuk objek Amazon S3 sebagai kumpulan data
Contoh berikut menunjukkan IAM kebijakan yang memberikan hak istimewa paling sedikit untuk mengakses objek yang terorganisir
di 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 IAMkebijakan untuk CSV file sebagai kumpulan data
Contoh berikut menunjukkan IAM kebijakan yang memberikan hak istimewa paling sedikit untuk mengakses CSV file 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 IAMkebijakan untuk inventaris Amazon S3 sebagai kumpulan data
Contoh berikut menunjukkan IAM kebijakan 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/*" ] } ] }