ResultWriter (Peta) - AWS Step Functions

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

ResultWriter (Peta)

ResultWriterBidang adalah JSON objek yang menentukan lokasi Amazon S3 tempat Step Functions menulis hasil eksekusi alur kerja anak yang dimulai oleh status Peta Terdistribusi. Secara default, Step Functions tidak mengekspor hasil ini.

penting

Pastikan bucket Amazon S3 yang Anda gunakan untuk mengekspor hasil Map Run berada di bawah yang sama Akun AWS and Wilayah AWS sebagai mesin negara Anda. Jika tidak, eksekusi mesin status Anda akan gagal dengan States.ResultWriterFailed kesalahan tersebut.

Mengekspor hasil ke bucket Amazon S3 sangat membantu jika ukuran payload output Anda melebihi 256 KB. Step Functions menggabungkan semua data eksekusi alur kerja anak, seperti input dan output eksekusiARN, dan status eksekusi. Kemudian mengekspor eksekusi dengan status yang sama ke file masing-masing di lokasi Amazon S3 yang ditentukan. Contoh berikut menunjukkan sintaks ResultWriter bidang jika Anda mengekspor hasil eksekusi alur kerja anak. Dalam contoh ini, Anda menyimpan hasilnya dalam bucket bernama amzn-s3-demo-destination-bucket dalam awalan yang disebutcsvProcessJobs.

{ "ResultWriter": { "Resource": "arn:aws:states:::s3:putObject", "Parameters": { "Bucket": "amzn-s3-demo-destination-bucket", "Prefix": "csvProcessJobs" } } }
Tip

Di Workflow Studio, Anda dapat mengekspor hasil eksekusi alur kerja turunan dengan memilih Hasil status Peta Ekspor ke Amazon S3. Kemudian, berikan nama bucket Amazon S3 dan awalan tempat Anda ingin mengekspor hasilnya.

Step Functions membutuhkan izin yang sesuai untuk mengakses bucket dan folder tempat Anda ingin mengekspor hasilnya. Untuk informasi tentang IAM kebijakan yang diperlukan, lihatIAMkebijakan untuk ResultWriter.

Jika Anda mengekspor hasil eksekusi alur kerja turunan, eksekusi status Peta Terdistribusi akan menampilkan Map Run ARN dan data tentang lokasi ekspor Amazon S3 dalam format berikut:

{ "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 mengekspor eksekusi dengan status yang sama ke file masing-masing. Misalnya, jika eksekusi alur kerja anak Anda menghasilkan 500 keberhasilan dan 200 hasil kegagalan, Step Functions akan membuat dua file di lokasi Amazon S3 yang ditentukan untuk hasil keberhasilan dan kegagalan. Dalam contoh ini, file hasil sukses berisi 500 hasil keberhasilan, sedangkan file hasil kegagalan berisi 200 hasil kegagalan.

Untuk upaya eksekusi tertentu, Step Functions membuat file berikut di lokasi Amazon S3 yang ditentukan tergantung pada output eksekusi Anda:

  • manifest.json— Berisi metadata Map Run, seperti lokasi ekspor, Map RunARN, dan informasi tentang file hasil.

    Jika Anda sudah redrivenMap Run, manifest.json file, berisi referensi ke semua eksekusi alur kerja anak yang berhasil di semua upaya Map Run. Namun, file ini berisi referensi ke eksekusi yang gagal dan tertunda untuk tertentu redrive.

  • SUCCEEDED_n.json— Berisi data konsolidasi untuk semua eksekusi alur kerja anak yang berhasil. n mewakili nomor indeks file. Nomor indeks dimulai dari 0. Misalnya, SUCCEEDED_1.json.

  • FAILED_n.json— Berisi data konsolidasi untuk semua eksekusi alur kerja anak yang gagal, habis waktu, dan dibatalkan. Gunakan file ini untuk memulihkan dari eksekusi yang gagal. n mewakili indeks file. Nomor indeks dimulai dari 0. Misalnya, FAILED_1.json.

  • PENDING_n.json— Berisi data konsolidasi untuk semua eksekusi alur kerja anak yang tidak dimulai karena Map Run gagal atau dibatalkan. n mewakili indeks file. Nomor indeks dimulai dari 0. Misalnya, PENDING_1.json.

Step Functions mendukung file hasil individual hingga 5 GB. Jika ukuran file melebihi 5 GB, Step Functions membuat file lain untuk menulis hasil eksekusi yang tersisa dan menambahkan nomor indeks ke nama file. Misalnya, jika ukuran Succeeded_0.json file melebihi 5 GB, Step Functions membuat Succeeded_1.json file untuk merekam hasil yang tersisa.

Jika Anda tidak menentukan untuk mengekspor hasil eksekusi alur kerja anak, eksekusi mesin status mengembalikan larik hasil eksekusi alur kerja anak seperti yang ditunjukkan pada contoh berikut:

catatan

Jika ukuran output yang dikembalikan melebihi 256 KB, eksekusi mesin status gagal dan mengembalikan States.DataLimitExceeded kesalahan.

[ { "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" } }, ... ]

IAMkebijakan untuk ResultWriter

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, cakup 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 menulis hasil eksekusi alur kerja anak Anda ke folder bernama csvJobs di ember Amazon S3 menggunakan aksi. 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/*" ] } ] }

Jika bucket Amazon S3 tempat Anda menulis, hasil eksekusi alur kerja anak dienkripsi menggunakan AWS Key Management Service (AWS KMS) kunci, Anda harus memasukkan yang diperlukan AWS KMS izin dalam IAM kebijakan Anda. Untuk informasi selengkapnya, lihat IAMizin untuk AWS KMS key ember Amazon S3 terenkripsi.