Membuat pekerjaan Operasi Batch S3 - Amazon Simple Storage Service

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

Membuat pekerjaan Operasi Batch S3

Dengan Operasi Batch Amazon S3, Anda dapat melakukan operasi batch berskala besar pada daftar objek Amazon S3 tertentu. Bagian ini menjelaskan informasi yang Anda perlukan untuk membuat pekerjaan Operasi Batch S3 dan hasil permintaan CreateJob. Ini juga menyediakan instruksi untuk membuat pekerjaan Operasi Batch dengan menggunakan konsol Amazon S3, AWS Command Line Interface (AWS CLI), dan. AWS SDK for Java

Saat membuat pekerjaan Operasi Batch S3, Anda dapat meminta laporan penyelesaian untuk semua tugas atau hanya untuk tugas yang gagal. Selama setidaknya ada satu tugas yang berhasil diinvokasi, Operasi Batch S3 akan menghasilkan laporan untuk pekerjaan yang telah selesai, gagal, atau dibatalkan. Untuk informasi selengkapnya, lihat Contoh: Laporan penyelesaian Operasi Batch S3.

Video berikut menunjukkan demonstrasi singkat tentang cara membuat pekerjaan Operasi Batch dengan menggunakan konsol Amazon S3.

Elemen permintaan pekerjaan Operasi Batch

Untuk membuat pekerjaan Operasi Batch S3, Anda harus memberikan informasi berikut:

Operasi

Tentukan operasi yang akan dijalankan Operasi Batch S3 terhadap objek dalam manifes. Setiap jenis operasi menerima parameter khusus untuk operasi tersebut. Dengan Operasi Batch, Anda dapat melakukan operasi secara massal, dengan hasil yang sama seperti jika Anda melakukan operasi itu one-by-one pada setiap objek.

Manifes

Manifes adalah daftar semua objek yang harus dijalankan Operasi Batch S3. Anda dapat menggunakan metode berikut untuk menentukan manifes yang akan digunakan dalam pekerjaan Operasi Batch:

  • Buat daftar objek berformat CSV yang disesuaikan secara manual.

  • Pilih laporan Inventaris Amazon S3 berformat CSV yang ada.

  • Atur Operasi Batch agar menghasilkan manifes secara otomatis berdasarkan kriteria filter objek yang Anda tentukan saat membuat pekerjaan. Opsi ini tersedia untuk pekerjaan replikasi batch yang Anda buat di konsol Amazon S3, atau untuk jenis pekerjaan apa pun yang Anda buat dengan menggunakan AWS CLI AWS , SDK, atau Amazon S3 REST API.

catatan
  • Terlepas dari cara Anda menentukan manifes, daftar itu harus disimpan di dalam sebuah bucket yang bersifat umum. Operasi Batch tidak dapat mengimpor manifes yang ada dari, atau menyimpan manifes yang dihasilkan ke bucket direktori. Objek yang dijelaskan dalam manifes tetap dapat disimpan dalam direktori bucket. Untuk informasi selengkapnya, lihat Bucket direktori.

  • Jika objek dalam manifes Anda berada dalam bucket yang memiliki versi, menentukan ID versi untuk objek akan mengarahkan Operasi Batch untuk melakukan operasi pada versi tertentu. Jika tidak ada ID versi yang ditentukan, Operasi Batch akan melakukan operasi pada versi terbaru objek. Jika manifes menyertakan bidang ID versi, Anda harus memberikan ID versi untuk semua objek dalam manifes.

Untuk informasi selengkapnya, lihat Menentukan manifes.

Prioritas

Gunakan prioritas pekerjaan untuk menunjukkan prioritas relatif dari pekerjaan ini jika dibandingkan tugas lain yang berjalan di akun Anda. Angka yang lebih tinggi menunjukkan prioritas yang lebih tinggi.

Prioritas pekerjaan hanya memiliki makna relatif terhadap prioritas yang ditetapkan untuk pekerjaan lain di akun dan Wilayah yang sama. Anda bisa memilih sistem penomoran yang sesuai. Misalnya, Anda ingin menetapkan semua pekerjaan Pulihkan (RestoreObject) menjadi prioritas 1, semua pekerjaan Salin (CopyObject) menjadi prioritas 2, dan semua pekerjaan Ganti daftar kontrol akses (ACL) (PutObjectAcl) menjadi prioritas 3.

Operasi Batch S3 memprioritaskan pekerjaan sesuai dengan urutan prioritas, tetapi tidak menjamin urutan prioritas secara teratur. Oleh karena itu, jangan gunakan prioritas pekerjaan untuk memastikan bahwa satu pekerjaan dimulai atau selesai sebelum pekerjaan lainnya. Jika Anda harus memastikan urutan secara teratur, tunggu hingga satu pekerjaan selesai sebelum memulai pekerjaan berikutnya.

RoleArn

Tentukan peran AWS Identity and Access Management (IAM) untuk menjalankan pekerjaan. Peran IAM yang Anda gunakan harus memiliki izin yang memadai untuk melakukan operasi yang ditentukan dalam pekerjaan. Misalnya, untuk menjalankan pekerjaan CopyObject, peran IAM harus memiliki izin s3:GetObject untuk bucket sumber dan izin s3:PutObject untuk bucket tujuan. Peran ini juga memerlukan izin untuk membaca manifes dan menulis laporan penyelesaian pekerjaan.

Untuk informasi selengkapnya tentang peran IAM, lihat Peran IAM dalam Panduan Pengguna IAM.

Untuk informasi selengkapnya tentang izin Amazon S3, lihat Tindakan kebijakan untuk Amazon S3.

catatan

Pekerjaan Operasi Batch yang menjalankan tindakan pada bucket direktori memerlukan izin tertentu. Untuk informasi selengkapnya, lihat AWS Identity and Access Management (IAM) untuk S3 Express One Zone.

Laporan

Tentukan apakah Anda ingin Operasi Batch S3 membuat laporan penyelesaian. Jika meminta laporan penyelesaian pekerjaan, Anda juga harus memberikan parameter untuk laporan dalam elemen ini. Informasi yang diperlukan meliputi:

  • Bucket tempat Anda ingin menyimpan laporan

    catatan

    Laporan harus disimpan dalam bucket yang bersifat umum. Operasi Batch tidak dapat menyimpan laporan ke bucket direktori. Untuk informasi selengkapnya, lihat Bucket direktori.

  • Format laporan

  • Anda ingin laporan menyertakan detail semua tugas atau hanya tugas yang gagal

  • String prefiks opsional

catatan

Laporan penyelesaian selalu dienkripsi dengan kunci terkelola Amazon S3 (SSE-S3).

Tanda (opsional)

Anda dapat melabeli dan mengontrol akses ke pekerjaan Operasi Batch S3 Anda dengan menambahkan tag. Anda dapat menggunakan tanda untuk mengidentifikasi pihak yang bertanggung jawab atas pekerjaan Operasi Batch, atau untuk mengontrol cara pengguna berinteraksi dengan pekerjaan Operasi Batch. Adanya tanda pekerjaan dapat memberikan atau membatasi kemampuan pengguna untuk membatalkan pekerjaan, mengaktifkan pekerjaan dalam status konfirmasi, atau mengubah tingkat prioritas pekerjaan. Misalnya, Anda dapat memberikan izin pengguna untuk menginvokasi operasi CreateJob, asalkan pekerjaan tersebut dibuat dengan tanda "Department=Finance".

Anda dapat membuat pekerjaan dengan tanda yang tersemat, dan dapat menambahkan tanda ke pekerjaan setelah Anda selesai membuatnya.

Untuk informasi selengkapnya, lihat Mengendalikan pekerjaan akses dan pelabelan menggunakan tag.

Deskripsi (opsional)

Untuk melacak dan memantau pekerjaan, Anda juga dapat memberikan deskripsi hingga 256 karakter. Amazon S3 akan menyertakan deskripsi ini setiap memberikan informasi tentang pekerjaan atau menampilkan detail pekerjaan pada konsol Amazon S3. Kemudian, Anda dapat dengan mudah mengurutkan dan memfilter pekerjaan sesuai dengan deskripsi yang Anda tetapkan. Deskripsi tidak harus unik, sehingga Anda dapat menggunakan deskripsi sebagai kategori (misalnya, "Pekerjaan Menyalin Log Mingguan") untuk memudahkan Anda melacak kelompok pekerjaan yang serupa.

Menentukan manifes

Manifes adalah objek Amazon S3 yang berisi kunci objek yang harus ditindaklanjuti Amazon S3. Anda dapat memberikan manifes dengan salah satu cara berikut:

  • Buat file manifes baru secara manual.

  • Gunakan manifes yang ada.

  • Atur Operasi Batch agar menghasilkan manifes secara otomatis berdasarkan kriteria filter objek yang Anda tentukan saat membuat pekerjaan. Opsi ini tersedia untuk pekerjaan replikasi batch yang Anda buat di konsol Amazon S3, atau untuk jenis pekerjaan apa pun yang Anda buat dengan menggunakan AWS CLI AWS , SDK, atau Amazon S3 REST API.

catatan

Terlepas dari cara Anda menentukan manifes, daftar itu harus disimpan di dalam sebuah bucket yang bersifat umum. Operasi Batch tidak dapat mengimpor manifes yang ada dari, atau menyimpan manifes yang dihasilkan ke bucket direktori. Objek yang dijelaskan dalam manifes tetap dapat disimpan dalam direktori bucket. Untuk informasi selengkapnya, lihat Bucket direktori.

Membuat file manifes

Untuk membuat manifes secara manual, Anda perlu menentukan kunci objek manifes, ETag (tanda entitas), dan ID versi opsional dalam daftar yang berformat CSV. Isi manifes harus dienkode URL.

Secara default, Amazon S3 secara otomatis menggunakan enkripsi di sisi server dengan kunci terkelola Amazon S3 (SSE-S3) untuk mengenkripsi manifes yang diunggah ke bucket Amazon S3. Manifes yang menggunakan enkripsi di sisi server dengan kunci yang disediakan pelanggan (SSE-C) tidak didukung. Manifes yang menggunakan enkripsi sisi server dengan kunci AWS Key Management Service (AWS KMS) (SSE-KMS) hanya didukung saat Anda menggunakan laporan inventaris berformat CSV. Menggunakan manifes yang dibuat secara manual dengan AWS KMS tidak didukung.

Manifes Anda harus berisi nama bucket, kunci objek, dan secara opsional, versi objek untuk setiap objek. Bidang lain dalam manifes tidak digunakan oleh Operasi Batch S3.

catatan

Jika objek dalam manifes Anda berada dalam bucket yang memiliki versi, menentukan ID versi untuk objek akan mengarahkan Operasi Batch untuk melakukan operasi pada versi tertentu. Jika tidak ada ID versi yang ditentukan, Operasi Batch akan melakukan operasi pada versi terbaru objek. Jika manifes menyertakan bidang ID versi, Anda harus memberikan ID versi untuk semua objek dalam manifes.

Berikut ini adalah contoh manifes dalam format CSV tanpa ID versi.

Examplebucket,objectkey1 Examplebucket,objectkey2 Examplebucket,objectkey3 Examplebucket,photos/jpgs/objectkey4 Examplebucket,photos/jpgs/newjersey/objectkey5 Examplebucket,object%20key%20with%20spaces

Berikut ini adalah contoh manifes dalam format CSV yang menyertakan ID versi.

Examplebucket,objectkey1,PZ9ibn9D5lP6p298B7S9_ceqx1n5EJ0p Examplebucket,objectkey2,YY_ouuAJByNW1LRBfFMfxMge7XQWxMBF Examplebucket,objectkey3,jbo9_jhdPEyB4RrmOxWS0kU0EoNrU_oI Examplebucket,photos/jpgs/objectkey4,6EqlikJJxLTsHsnbZbSRffn24_eh5Ny4 Examplebucket,photos/jpgs/newjersey/objectkey5,imHf3FAiRsvBW_EHB8GOu.NHunHO1gVs Examplebucket,object%20key%20with%20spaces,9HkPvDaZY5MVbMhn6TMn1YTb5ArQAo3w

Menentukan file manifes yang ada

Anda dapat menentukan manifes untuk permintaan buat pekerjaan dengan menggunakan salah satu dari dua format berikut:

  • Laporan Inventaris Amazon S3–Harus berupa laporan Inventaris Amazon S3 berformat CSV. Anda harus menentukan file manifest.json yang terkait dengan laporan inventaris. Untuk informasi selengkapnya tentang laporan inventaris, lihat Inventaris Amazon S3. Jika laporan inventaris menyertakan ID versi, Operasi Batch S3 beroperasi pada versi objek tertentu.

    catatan
    • Operasi Batch S3 mendukung laporan inventaris CSV yang dienkripsi dengan SSE-KMS.

    • Jika Anda mengirimkan manifes laporan inventaris yang dienkripsi dengan SSE-KMS, kebijakan IAM Anda harus menyertakan izin "kms:Decrypt" dan "kms:GenerateDataKey" untuk objek manifest.json serta semua file data CSV terkait.

  • File CSV–Setiap baris dalam file harus menyertakan nama bucket, kunci objek, dan secara opsional, versi objek. Kunci objek harus dienkode URL, seperti yang ditunjukkan dalam contoh berikut. Manifes harus menyertakan ID versi untuk semua objek atau menghilangkan ID versi untuk semua objek. Untuk informasi selengkapnya tentang format manifes CSV, lihat JobManifestSpec di Referensi API Amazon Simple Storage Service.

    catatan

    Operasi Batch S3 tidak mendukung file manifes CSV yang dienkripsi dengan SSE-KMS.

penting

Saat Anda menggunakan manifes yang dibuat secara manual dan bucket yang memiliki versi, sebaiknya Anda menentukan ID versi untuk objek tersebut. Saat Anda membuat pekerjaan, Operasi Batch S3 mengurai seluruh manifes sebelum menjalankan pekerjaan tersebut. Namun, proses tersebut tidak mengambil "snapshot" dari status bucket.

Karena manifes dapat berisi miliaran objek, pekerjaan mungkin membutuhkan waktu yang lama untuk dijalankan, sehingga dapat memengaruhi versi objek yang ditindaklanjuti oleh pekerjaan tersebut. Misalnya, Anda menimpa objek dengan versi baru saat pekerjaan berjalan dan Anda tidak menentukan ID versi untuk objek tersebut. Dalam hal ini, Amazon S3 akan melakukan operasi pada versi terbaru dari objek tersebut, bukan pada versi yang ada ketika Anda membuat pekerjaan. Satu-satunya cara untuk menghindari hal ini adalah dengan menentukan ID versi untuk objek yang terdaftar dalam manifes.

Membuat manifes secara otomatis

Anda dapat mengatur Amazon S3 untuk membuat manifes secara otomatis berdasarkan kriteria filter objek yang Anda tentukan saat membuat pekerjaan. Opsi ini tersedia untuk pekerjaan replikasi batch yang Anda buat di konsol Amazon S3, atau untuk jenis pekerjaan apa pun yang Anda buat dengan menggunakan AWS CLI AWS , SDK, atau Amazon S3 REST API. Untuk informasi selengkapnya tentang Replikasi Batch, lihat Mereplikasi objek yang ada dengan Replikasi Batch S3.

Untuk membuat manifes secara otomatis, tentukan elemen berikut sebagai bagian dari permintaan pembuatan pekerjaan Anda:

  • Informasi tentang bucket yang berisi objek sumber Anda, termasuk pemilik bucket dan Amazon Resource Name (ARN)

  • Informasi tentang output manifes, termasuk tanda untuk membuat file manifes, pemilik bucket output, ARN, prefiks, format file, dan jenis enkripsi

  • Kriteria opsional untuk memfilter objek berdasarkan tanggal pembuatan, nama kunci, ukuran, kelas penyimpanan, dan tanda

Kriteria filter objek

Untuk memfilter daftar objek yang akan disertakan dalam manifes yang dibuat secara otomatis, Anda dapat menentukan kriteria berikut. Untuk informasi selengkapnya, lihat JobManifestGeneratorFilter di Referensi API Amazon S3.

CreatedAfter

Jika tersedia, manifes yang dibuat hanya akan mencakup objek bucket sumber yang dibuat setelah waktu ini.

CreatedBefore

Jika tersedia, manifes yang dibuat hanya akan mencakup objek bucket sumber yang dibuat sebelum waktu ini.

EligibleForReplication

Jika tersedia, manifes yang dibuat akan mencakup objek hanya jika objek tersebut memenuhi syarat untuk direplikasi sesuai dengan konfigurasi replikasi pada bucket sumber.

KeyNameConstraint

Jika disediakan, manifes yang dihasilkan hanya mencakup objek bucket sumber yang kunci objeknya cocok dengan batasan string yang ditentukan untuk MatchAnySubstring,, MatchAnyPrefixdan. MatchAnySuffix

MatchAnySubstring— Jika disediakan, manifes yang dihasilkan mencakup objek jika string yang ditentukan muncul di mana saja dalam string kunci objek.

MatchAnyPrefix— Jika disediakan, manifes yang dihasilkan mencakup objek jika string yang ditentukan muncul di awal string kunci objek.

MatchAnySuffix— Jika disediakan, manifes yang dihasilkan mencakup objek jika string yang ditentukan muncul di akhir string kunci objek.

MatchAnyStorageClass

Jika tersedia, manifes yang dibuat hanya akan mencakup objek bucket sumber yang disimpan dengan kelas penyimpanan yang ditentukan.

ObjectReplicationStatuses

Jika tersedia, manifes yang dibuat hanya akan mencakup objek bucket sumber yang memiliki salah satu status replikasi yang ditentukan.

ObjectSizeGreaterThanBytes

Jika tersedia, manifes yang dibuat hanya akan mencakup objek bucket sumber yang ukuran filenya lebih besar dari jumlah byte yang ditentukan.

ObjectSizeLessThanBytes

Jika tersedia, manifes yang dibuat hanya akan mencakup objek bucket sumber yang ukuran filenya kurang dari jumlah byte yang ditentukan.

catatan

Anda tidak dapat mengkloning sebagian besar tugas yang telah membuat manifes secara otomatis. Pekerjaan replikasi batch dapat dikloning, kecuali ketika pekerjaan tersebut menggunakan kriteria filter manifes KeyNameConstraint, MatchAnyStorageClass, ObjectSizeGreaterThanBytes, atau ObjectSizeLessThanBytes.

Sintaks untuk menentukan kriteria manifes bervariasi tergantung pada metode yang Anda gunakan untuk membuat pekerjaan. Sebagai contoh, lihat Membuat pekerjaan.

Membuat pekerjaan

Anda dapat membuat pekerjaan Operasi Batch S3 dengan menggunakan konsol Amazon S3, SDK AWS CLI AWS , atau Amazon S3 REST API.

Untuk informasi selengkapnya tentang cara membuat permintaan pekerjaan, lihat Elemen permintaan pekerjaan Operasi Batch.

Prasyarat

Sebelum membuat pekerjaan Operasi Batch, konfirmasikan bahwa Anda telah mengonfigurasi izin yang relevan. Untuk informasi selengkapnya, lihat Memberikan izin untuk Operasi Batch Amazon S3.

Untuk membuat pekerjaan batch
  1. Masuk ke AWS Management Console dan buka konsol Amazon S3 di https://console.aws.amazon.com/s3/.

  2. Di bilah navigasi di bagian atas halaman, pilih nama yang saat ini ditampilkan Wilayah AWS. Selanjutnya, pilih Wilayah tempat Anda ingin membuat pekerjaan Anda.

    catatan

    Untuk operasi penyalinan, Anda harus membuat pekerjaan di Wilayah yang sama dengan bucket tujuan. Untuk semua operasi lainnya, Anda harus membuat pekerjaan di Wilayah yang sama dengan objek dalam manifes.

  3. Pilih Operasi Batch di panel navigasi kiri konsol Amazon S3.

  4. Pilih Buat tugas.

  5. Lihat di Wilayah AWSmana Anda ingin membuat pekerjaan Anda.

  6. Pada Format manifes, pilih jenis objek manifes yang akan digunakan.

    • Jika Anda memilih Laporan inventaris S3, masukkan jalur ke objek manifes.json yang dihasilkan Amazon S3 sebagai bagian dari laporan Inventaris berformat CSV, dan secara opsional, ID versi untuk objek manifes jika Anda ingin menggunakan versi selain yang terbaru.

    • Jika Anda memilih CSV, masukkan jalur ke objek manifes yang diformat CSV. Objek manifes harus mengikuti format yang dijelaskan di konsol. Anda dapat memasukkan ID versi secara opsional untuk objek manifes jika ingin menggunakan versi selain yang terbaru.

    catatan

    Konsol Amazon S3 mendukung pembuatan manifes otomatis untuk pekerjaan replikasi batch saja. Untuk semua jenis pekerjaan lainnya, jika Anda ingin Amazon S3 menghasilkan manifes secara otomatis berdasarkan kriteria filter yang Anda tentukan, Anda harus mengonfigurasi pekerjaan menggunakan, AWS SDK AWS CLI, atau Amazon S3 REST API.

  7. Pilih Selanjutnya.

  8. Pada Operasi, pilih operasi yang ingin Anda jalankan pada semua objek yang tercantum dalam manifes. Isi informasi untuk operasi yang Anda pilih lalu pilih Selanjutnya.

  9. Isi informasi untuk Konfigurasikan opsi tambahan, lalu pilih Selanjutnya.

  10. Untuk Peninjauan, verifikasikan pengaturan. Jika Anda perlu membuat perubahan, pilih Sebelumnya. Atau, pilih Buat Tugas.

Specify manifest

Contoh berikut menunjukkan cara membuat pekerjaan S3PutObjectTagging Operasi Batch S3 yang bekerja pada objek yang terdaftar dalam file manifes yang ada.

Untuk membuat pekerjaan S3PutObjectTagging Operasi Batch
  1. Gunakan perintah berikut untuk membuat peran AWS Identity and Access Management (IAM), lalu buat kebijakan IAM untuk menetapkan izin yang relevan. Peran dan kebijakan berikut memberikan izin Amazon S3 untuk menambahkan tanda objek yang akan Anda perlukan saat membuat pekerjaan di langkah berikutnya.

    1. Gunakan perintah contoh berikut untuk membuat peran IAM untuk Operasi Batch yang akan digunakan. Untuk menggunakan contoh perintah ini, ganti S3BatchJobRole dengan nama yang ingin Anda berikan ke peran tersebut.

      aws iam create-role \ --role-name S3BatchJobRole \ --assume-role-policy-document '{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"batchoperations.s3.amazonaws.com" }, "Action":"sts:AssumeRole" } ] }'

      Catat Amazon Resource Name (ARN) untuk peran. Anda akan membutuhkan ARN saat membuat pekerjaan.

    2. Gunakan contoh berikut untuk membuat kebijakan IAM dengan izin yang diperlukan dan lampirkan ke peran IAM yang Anda buat di langkah sebelumnya. Untuk informasi selengkapnya tentang izin yang diperlukan, lihat Memberikan izin untuk Operasi Batch Amazon S3.

      catatan

      Pekerjaan Operasi Batch yang menjalankan tindakan pada bucket direktori memerlukan izin tertentu. Untuk informasi selengkapnya, lihat AWS Identity and Access Management (IAM) untuk S3 Express One Zone.

      Untuk menggunakan perintah contoh ini, ganti user input placeholders sebagai berikut:

      • Ganti S3BatchJobRole dengan nama peran IAM Anda. Pastikan nama ini cocok dengan nama yang Anda gunakan sebelumnya.

      • Ganti PutObjectTaggingBatchJobPolicy dengan nama yang ingin Anda berikan pada kebijakan IAM.

      • Ganti example-s3-destination-bucket dengan nama bucket yang berisi objek yang ingin Anda berikan tanda.

      • Ganti DOC-EXAMPLE-MANIFEST-BUCKET dengan nama bucket yang berisi manifes.

      • Ganti DOC-EXAMPLE-REPORT-BUCKET dengan nama bucket tujuan pengiriman laporan penyelesaian.

      aws iam put-role-policy \ --role-name S3BatchJobRole \ --policy-name PutObjectTaggingBatchJobPolicy \ --policy-document '{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:PutObjectTagging", "s3:PutObjectVersionTagging" ], "Resource": "arn:aws:s3:::example-s3-destination-bucket/*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-MANIFEST-BUCKET", "arn:aws:s3:::DOC-EXAMPLE-MANIFEST-BUCKET/*" ] }, { "Effect":"Allow", "Action":[ "s3:PutObject", "s3:GetBucketLocation" ], "Resource":[ "arn:aws:s3:::DOC-EXAMPLE-REPORT-BUCKET", "arn:aws:s3:::DOC-EXAMPLE-REPORT-BUCKET/*" ] } ] }'
  2. Gunakan contoh perintah berikut untuk membuat pekerjaan S3PutObjectTagging.

    File manifest.csv menyediakan daftar bucket dan nilai kunci objek. Pekerjaan ini menerapkan tanda yang ditentukan ke objek yang diidentifikasi dalam manifes. ETag adalah ETag objek manifest.csv yang bisa Anda dapatkan dari konsol Amazon S3. Permintaan ini menentukan parameter no-confirmation-required, sehingga Anda dapat menjalankan pekerjaan tanpa harus mengonfirmasinya dengan perintah update-job-status. Untuk informasi selengkapnya, lihat create-job di AWS CLI Referensi Perintah.

    Untuk menggunakan perintah contoh ini, ganti user input placeholders dengan informasi Anda sendiri. Ganti IAM-role dengan ARN peran IAM yang Anda buat sebelumnya.

    aws s3control create-job \ --region us-west-2 \ --account-id acct-id \ --operation '{"S3PutObjectTagging": { "TagSet": [{"Key":"keyOne", "Value":"ValueOne"}] }}' \ --manifest '{"Spec":{"Format":"S3BatchOperations_CSV_20180820","Fields":["Bucket","Key"]},"Location":{"ObjectArn":"arn:aws:s3:::my_manifests/manifest.csv","ETag":"60e460c9d1046e73f7dde5043ac3ae85"}}' \ --report '{"Bucket":"arn:aws:s3:::DOC-EXAMPLE-REPORT-BUCKET","Prefix":"final-reports", "Format":"Report_CSV_20180820","Enabled":true,"ReportScope":"AllTasks"}' \ --priority 42 \ --role-arn IAM-role \ --client-request-token $(uuidgen) \ --description "job description" \ --no-confirmation-required

    Sebagai tanggapan, Amazon S3 akan mengembalikan ID pekerjaan (misalnya, 00e123a4-c0d8-41f4-a0eb-b46f9ba5b07c). Anda akan memerlukan ID pekerjaan untuk mengidentifikasi, memantau, dan mengubah pekerjaan.

Generate manifest

Contoh berikut menunjukkan cara membuat pekerjaan S3DeleteObjectTagging Operasi Batch S3 yang secara otomatis membuat manifes berdasarkan kriteria filter objek Anda. Kriteria ini mencakup tanggal pembuatan, nama kunci, ukuran, kelas penyimpanan, dan tanda.

Untuk membuat pekerjaan S3DeleteObjectTagging Operasi Batch
  1. Gunakan perintah berikut untuk membuat peran AWS Identity and Access Management (IAM), lalu buat kebijakan IAM untuk menetapkan izin. Peran dan kebijakan berikut memberikan izin Amazon S3 untuk menghapus tanda objek, yang akan Anda perlukan saat membuat pekerjaan di langkah berikutnya.

    1. Gunakan perintah contoh berikut untuk membuat peran IAM untuk Operasi Batch yang akan digunakan. Untuk menggunakan contoh perintah ini, ganti S3BatchJobRole dengan nama yang ingin Anda berikan ke peran tersebut.

      aws iam create-role \ --role-name S3BatchJobRole \ --assume-role-policy-document '{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"batchoperations.s3.amazonaws.com" }, "Action":"sts:AssumeRole" } ] }'

      Catat Amazon Resource Name (ARN) untuk peran. Anda akan membutuhkan ARN saat membuat pekerjaan.

    2. Gunakan contoh berikut untuk membuat kebijakan IAM dengan izin yang diperlukan dan lampirkan ke peran IAM yang Anda buat di langkah sebelumnya. Untuk informasi selengkapnya tentang izin yang diperlukan, lihat Memberikan izin untuk Operasi Batch Amazon S3.

      catatan

      Pekerjaan Operasi Batch yang menjalankan tindakan pada bucket direktori memerlukan izin tertentu. Untuk informasi selengkapnya, lihat AWS Identity and Access Management (IAM) untuk S3 Express One Zone.

      Untuk menggunakan perintah contoh ini, ganti user input placeholders sebagai berikut:

      • Ganti S3BatchJobRole dengan nama peran IAM Anda. Pastikan nama ini cocok dengan nama yang Anda gunakan sebelumnya.

      • Ganti DeleteObjectTaggingBatchJobPolicy dengan nama yang ingin Anda berikan pada kebijakan IAM.

      • Ganti example-s3-destination-bucket dengan nama bucket yang berisi objek yang ingin Anda berikan tanda.

      • Ganti DOC-EXAMPLE-MANIFEST-OUTPUT-BUCKET dengan nama bucket tempat Anda ingin menyimpan manifes.

      • Ganti DOC-EXAMPLE-REPORT-BUCKET dengan nama bucket tujuan pengiriman laporan penyelesaian.

      aws iam put-role-policy \ --role-name S3BatchJobRole \ --policy-name DeleteObjectTaggingBatchJobPolicy \ --policy-document '{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:DeleteObjectTagging", "s3:DeleteObjectVersionTagging" ], "Resource": "arn:aws:s3:::example-s3-destination-bucket/*" }, { "Effect":"Allow", "Action":[ "s3:PutInventoryConfiguration" ], "Resource": "arn:aws:s3:::example-s3-destination-bucket" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-MANIFEST-OUTPUT-BUCKET", "arn:aws:s3:::DOC-EXAMPLE-MANIFEST-OUTPUT-BUCKET/*" ] }, { "Effect":"Allow", "Action":[ "s3:PutObject", "s3:ListBucket" ], "Resource":[ "arn:aws:s3:::DOC-EXAMPLE-REPORT-BUCKET", "arn:aws:s3:::DOC-EXAMPLE-REPORT-BUCKET/*", "arn:aws:s3:::DOC-EXAMPLE-MANIFEST-OUTPUT-BUCKET/*" ] } ] }'

  2. Gunakan contoh berikut untuk membuat pekerjaan S3DeleteObjectTagging.

    Dalam contoh ini, nilai di bagian --report menentukan bucket, prefiks, format, dan cakupan laporan pekerjaan yang akan dihasilkan. Bagian --manifest -generator ini menentukan informasi tentang bucket sumber yang berisi objek yang akan ditindaklanjuti oleh pekerjaan, informasi tentang daftar output manifes yang akan dibuat untuk pekerjaan, dan kriteria filter untuk mempersempit cakupan objek yang akan disertakan dalam manifes berdasarkan tanggal pembuatan, batasan nama, ukuran, dan kelas penyimpanan. Perintah ini juga menentukan prioritas pekerjaan, peran IAM, dan Wilayah AWS.

    Untuk informasi selengkapnya, lihat create-job di AWS CLI Referensi Perintah.

    Untuk menggunakan perintah contoh ini, ganti user input placeholders dengan informasi Anda sendiri. Ganti IAM-role dengan ARN peran IAM yang Anda buat sebelumnya.

    aws s3control create-job \ --account-id 012345678901 \ --operation '{ "S3DeleteObjectTagging": {} }' \ --report '{ "Bucket":"arn:aws:s3:::DOC-EXAMPLE-REPORT-BUCKET", "Prefix":"reports", "Format":"Report_CSV_20180820", "Enabled":true, "ReportScope":"AllTasks" }' \ --manifest-generator '{ "S3JobManifestGenerator": { "ExpectedBucketOwner": "012345678901", "SourceBucket": "arn:aws:s3:::DOC-EXAMPLE-SOURCE-BUCKET", "EnableManifestOutput": true, "ManifestOutputLocation": { "ExpectedManifestBucketOwner": "012345678901", "Bucket": "arn:aws:s3:::DOC-EXAMPLE-MANIFEST-OUTPUT-BUCKET", "ManifestPrefix": "prefix", "ManifestFormat": "S3InventoryReport_CSV_20211130" }, "Filter": { "CreatedAfter": "2023-09-01", "CreatedBefore": "2023-10-01", "KeyNameConstraint": { "MatchAnyPrefix": [ "prefix" ], "MatchAnySuffix": [ "suffix" ] }, "ObjectSizeGreaterThanBytes": 100, "ObjectSizeLessThanBytes": 200, "MatchAnyStorageClass": [ "STANDARD", "STANDARD_IA" ] } } }' \ --priority 2 \ --role-arn IAM-role \ --region us-east-1

    Sebagai tanggapan, Amazon S3 akan mengembalikan ID pekerjaan (misalnya, 00e123a4-c0d8-41f4-a0eb-b46f9ba5b07c). Anda akan memerlukan ID pekerjaan ini untuk mengidentifikasi, memantau, atau mengubah pekerjaan.

Specify manifest

Contoh berikut menunjukkan cara membuat pekerjaan S3PutObjectTagging Operasi Batch S3 yang bekerja pada objek yang terdaftar dalam file manifes yang ada. Untuk menggunakan contoh ini, ganti user input placeholders dengan informasi Anda sendiri.

package aws.example.s3control; import com.amazonaws.AmazonServiceException; import com.amazonaws.SdkClientException; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.services.s3control.AWSS3Control; import com.amazonaws.services.s3control.AWSS3ControlClient; import com.amazonaws.services.s3control.model.*; import java.util.UUID; import java.util.ArrayList; import static com.amazonaws.regions.Regions.US_WEST_2; public class CreateJob { public static void main(String[] args) { String accountId = "Account ID"; String iamRoleArn = "IAM Role ARN"; String reportBucketName = "arn:aws:s3:::DOC-EXAMPLE-REPORT-BUCKET"; String uuid = UUID.randomUUID().toString(); ArrayList tagSet = new ArrayList<S3Tag>(); tagSet.add(new S3Tag().withKey("keyOne").withValue("ValueOne")); try { JobOperation jobOperation = new JobOperation() .withS3PutObjectTagging(new S3SetObjectTaggingOperation() .withTagSet(tagSet) ); JobManifest manifest = new JobManifest() .withSpec(new JobManifestSpec() .withFormat("S3BatchOperations_CSV_20180820") .withFields(new String[]{ "Bucket", "Key" })) .withLocation(new JobManifestLocation() .withObjectArn("arn:aws:s3:::my_manifests/manifest.csv") .withETag("60e460c9d1046e73f7dde5043ac3ae85")); JobReport jobReport = new JobReport() .withBucket(reportBucketName) .withPrefix("reports") .withFormat("Report_CSV_20180820") .withEnabled(true) .withReportScope("AllTasks"); AWSS3Control s3ControlClient = AWSS3ControlClient.builder() .withCredentials(new ProfileCredentialsProvider()) .withRegion(US_WEST_2) .build(); s3ControlClient.createJob(new CreateJobRequest() .withAccountId(accountId) .withOperation(jobOperation) .withManifest(manifest) .withReport(jobReport) .withPriority(42) .withRoleArn(iamRoleArn) .withClientRequestToken(uuid) .withDescription("job description") .withConfirmationRequired(false) ); } catch (AmazonServiceException e) { // The call was transmitted successfully, but Amazon S3 couldn't process // it and returned an error response. e.printStackTrace(); } catch (SdkClientException e) { // Amazon S3 couldn't be contacted for a response, or the client // couldn't parse the response from Amazon S3. e.printStackTrace(); } } }
Generate manifest

Contoh berikut menunjukkan cara membuat pekerjaan s3PutObjectCopy Operasi Batch S3 yang secara otomatis membuat manifes berdasarkan kriteria filter objek, termasuk tanggal pembuatan, nama kunci, dan ukuran. Untuk menggunakan contoh ini, ganti user input placeholders dengan informasi Anda sendiri.

package aws.example.s3control; import com.amazonaws.AmazonServiceException; import com.amazonaws.SdkClientException; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.services.s3control.AWSS3Control; import com.amazonaws.services.s3control.AWSS3ControlClient; import com.amazonaws.services.s3control.model.CreateJobRequest; import com.amazonaws.services.s3control.model.CreateJobResult; import com.amazonaws.services.s3control.model.JobManifestGenerator; import com.amazonaws.services.s3control.model.JobManifestGeneratorFilter; import com.amazonaws.services.s3control.model.JobOperation; import com.amazonaws.services.s3control.model.JobReport; import com.amazonaws.services.s3control.model.KeyNameConstraint; import com.amazonaws.services.s3control.model.S3JobManifestGenerator; import com.amazonaws.services.s3control.model.S3ManifestOutputLocation; import com.amazonaws.services.s3control.model.S3SetObjectTaggingOperation; import com.amazonaws.services.s3control.model.S3Tag; import java.time.Instant; import java.util.Date; import java.util.UUID; import java.util.ArrayList; import static com.amazonaws.regions.Regions.US_WEST_2; public class test { public static void main(String[] args) { String accountId = "012345678901"; String iamRoleArn = "arn:aws:iam::012345678901:role/ROLE"; String sourceBucketName = "arn:aws:s3:::DOC-EXAMPLE-SOURCE-BUCKET"; String reportBucketName = "arn:aws:s3:::DOC-EXAMPLE-REPORT-BUCKET"; String manifestOutputBucketName = "arn:aws:s3:::DOC-EXAMPLE-MANIFEST-OUTPUT-BUCKET"; String uuid = UUID.randomUUID().toString(); long minimumObjectSize = 100L; ArrayList<S3Tag> tagSet = new ArrayList<>(); tagSet.add(new S3Tag().withKey("keyOne").withValue("ValueOne")); ArrayList<String> prefixes = new ArrayList<>(); prefixes.add("s3KeyStartsWith"); try { JobOperation jobOperation = new JobOperation() .withS3PutObjectTagging(new S3SetObjectTaggingOperation() .withTagSet(tagSet) ); S3ManifestOutputLocation manifestOutputLocation = new S3ManifestOutputLocation() .withBucket(manifestOutputBucketName) .withManifestPrefix("manifests") .withExpectedManifestBucketOwner(accountId) .withManifestFormat("S3InventoryReport_CSV_20211130"); JobManifestGeneratorFilter jobManifestGeneratorFilter = new JobManifestGeneratorFilter() .withEligibleForReplication(true) .withKeyNameConstraint( new KeyNameConstraint() .withMatchAnyPrefix(prefixes)) .withCreatedBefore(Date.from(Instant.now())) .withObjectSizeGreaterThanBytes(minimumObjectSize); S3JobManifestGenerator s3JobManifestGenerator = new S3JobManifestGenerator() .withEnableManifestOutput(true) .withManifestOutputLocation(manifestOutputLocation) .withFilter(jobManifestGeneratorFilter) .withSourceBucket(sourceBucketName); JobManifestGenerator jobManifestGenerator = new JobManifestGenerator() .withS3JobManifestGenerator(s3JobManifestGenerator); JobReport jobReport = new JobReport() .withBucket(reportBucketName) .withPrefix("reports") .withFormat("Report_CSV_20180820") .withEnabled(true) .withReportScope("AllTasks"); AWSS3Control s3ControlClient = AWSS3ControlClient.builder() .withCredentials(new ProfileCredentialsProvider()) .withRegion(US_WEST_2) .build(); CreateJobResult createJobResult = s3ControlClient.createJob(new CreateJobRequest() .withAccountId(accountId) .withOperation(jobOperation) .withManifestGenerator(jobManifestGenerator) .withReport(jobReport) .withPriority(42) .withRoleArn(iamRoleArn) .withClientRequestToken(uuid) .withDescription("job description") .withConfirmationRequired(true) ); System.out.println("Created job " + createJobResult.getJobId()); } catch (AmazonServiceException e) { // The call was transmitted successfully, but Amazon S3 couldn't process // it and returned an error response. e.printStackTrace(); } catch (SdkClientException e) { // Amazon S3 couldn't be contacted for a response, or the client // couldn't parse the response from Amazon S3. e.printStackTrace(); } } }

Anda dapat menggunakan API REST untuk membuat pekerjaan Operasi Batch. Untuk informasi selengkapnya, lihat CreateJob di Referensi API Amazon Simple Storage Service.

Respons pekerjaan

Jika permintaan CreateJob berhasil, Amazon S3 akan mengembalikan ID pekerjaan. ID pekerjaan adalah pengenal unik yang dihasilkan secara otomatis oleh Amazon S3 sehingga Anda dapat mengidentifikasi pekerjaan Operasi Batch dan memantau statusnya.

Saat Anda membuat pekerjaan melalui AWS CLI, AWS SDK, atau REST API, Anda dapat menyetel Operasi Batch S3 untuk mulai memproses pekerjaan secara otomatis. Pekerjaan akan segera dijalankan setelah siap, tanpa harus menunggu pekerjaan yang lebih diprioritaskan.

Saat membuat pekerjaan melalui konsol Amazon S3, Anda harus meninjau detail pekerjaan dan mengonfirmasi bahwa Anda ingin menjalankannya sebelum Operasi Batch dapat mulai memprosesnya. Jika suatu pekerjaan tetap berada dalam status ditangguhkan selama lebih dari 30 hari, pekerjaan tersebut akan gagal.