Kumpulkan info bucket Amazon S3 menggunakan AWS SDKintegrasi layanan - AWS Step Functions

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

Kumpulkan info bucket Amazon S3 menggunakan AWS SDKintegrasi layanan

Tutorial ini menunjukkan kepada Anda bagaimana melakukan AWS SDKintegrasi dengan Amazon Simple Storage Service. Mesin status yang Anda buat dalam tutorial ini mengumpulkan informasi tentang bucket Amazon S3 Anda, lalu daftar bucket Anda bersama dengan informasi versi untuk setiap bucket di wilayah saat ini.

Langkah 1: Buat mesin negara

Menggunakan konsol Step Functions, Anda akan membuat mesin status yang menyertakan Task status untuk mencantumkan semua bucket Amazon S3 di akun dan wilayah saat ini. Kemudian, Anda akan menambahkan Task status lain yang memanggil HeadBucket API untuk memverifikasi apakah bucket yang dikembalikan dapat diakses di wilayah saat ini. Jika bucket tidak dapat diakses, HeadBucket API panggilan akan mengembalikan S3.S3Exception kesalahan. Anda akan menyertakan Catch blok untuk menangkap pengecualian ini dan Pass status sebagai status fallback.

  1. Buka Konsol Step Functions dan pilih Buat mesin status.

  2. Dalam kotak dialog Pilih templat, pilih Kosong.

  3. Pilih Pilih untuk membuka Workflow Studio diMode desain.

  4. Untuk tutorial ini, Anda akan menulis definisi Amazon States Language (ASL) dari mesin status Anda diEditor kode. Untuk melakukan ini, pilih Kode.

  5. Hapus kode boilerplate yang ada dan tempel definisi mesin status berikut.

    { "Comment": "A description of my state machine", "StartAt": "ListBuckets", "States": { "ListBuckets": { "Type": "Task", "Parameters": {}, "Resource": "arn:aws:states:::aws-sdk:s3:listBuckets", "Next": "Map" }, "Map": { "Type": "Map", "ItemsPath": "$.Buckets", "ItemProcessor": { "ProcessorConfig": { "Mode": "INLINE" }, "StartAt": "HeadBucket", "States": { "HeadBucket": { "Type": "Task", "ResultPath": null, "Parameters": { "Bucket.$": "$.Name" }, "Resource": "arn:aws:states:::aws-sdk:s3:headBucket", "Catch": [ { "ErrorEquals": [ "S3.S3Exception" ], "ResultPath": null, "Next": "Pass" } ], "Next": "GetBucketVersioning" }, "GetBucketVersioning": { "Type": "Task", "End": true, "Parameters": { "Bucket.$": "$.Name" }, "ResultPath": "$.BucketVersioningInfo", "Resource": "arn:aws:states:::aws-sdk:s3:getBucketVersioning" }, "Pass": { "Type": "Pass", "End": true, "Result": { "Status": "Unknown" }, "ResultPath": "$.BucketVersioningInfo" } } }, "End": true } } }
  6. Tentukan nama untuk mesin negara Anda. Untuk melakukan ini, pilih ikon edit di sebelah nama mesin status default MyStateMachine. Kemudian, dalam konfigurasi mesin Negara, tentukan nama di kotak Nama mesin Negara.

    Untuk tutorial ini, masukkan nama Gather-S3-Bucket-Info-Standard.

  7. (Opsional) Dalam konfigurasi mesin State, tentukan pengaturan alur kerja lainnya, seperti jenis mesin status dan peran pelaksanaannya.

    Simpan semua pilihan default dalam pengaturan mesin Negara.

    Jika sebelumnya Anda telah membuat IAM peran dengan izin yang benar untuk mesin status dan ingin menggunakannya, di Izin, pilih Pilih peran yang ada, lalu pilih peran dari daftar. Atau pilih Masukkan peran ARN dan kemudian berikan IAM peran ARN untuk itu.

  8. Dalam kotak dialog Konfirmasi pembuatan peran, pilih Konfirmasi untuk melanjutkan.

    Anda juga dapat memilih Lihat pengaturan peran untuk kembali ke konfigurasi mesin Status.

    catatan

    Jika Anda menghapus IAM peran yang dibuat Step Functions, Step Functions tidak dapat membuatnya kembali nanti. Demikian pula, jika Anda mengubah peran (misalnya, dengan menghapus Step Functions dari prinsipal dalam IAM kebijakan), Step Functions tidak dapat memulihkan pengaturan aslinya nanti.

    Pada Langkah 2, Anda akan menambahkan izin yang hilang ke peran mesin status.

Langkah 2: Tambahkan izin IAM peran yang diperlukan

Untuk mengumpulkan informasi tentang bucket Amazon S3 di wilayah Anda saat ini, Anda harus memberikan izin yang diperlukan mesin status Anda untuk mengakses bucket Amazon S3.

  1. Pada halaman mesin status, pilih IAMperan ARN untuk membuka halaman Peran untuk peran mesin status.

  2. Pilih Tambahkan izin, lalu pilih Buat kebijakan sebaris.

  3. Pilih JSONtab, lalu tempel izin berikut ke JSON editor.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "s3:ListAllMyBuckets", "s3:ListBucket", "s3:GetBucketVersioning" ], "Resource": "*" } ] }
  4. Pilih Tinjau kebijakan.

  5. Di bawah Kebijakan peninjauan, untuk Nama kebijakan, masukkans3-bucket-permissions.

  6. Pilih Buat kebijakan.

Langkah 3: Jalankan eksekusi mesin status Standar

  1. Pada halaman Gather-S3-Bucket-Info-Standard, pilih Mulai eksekusi.

  2. Dalam kotak dialog Mulai eksekusi, lakukan hal berikut:

    1. (Opsional) Masukkan nama eksekusi khusus untuk mengganti default yang dihasilkan.

      Non- ASCII nama dan logging

      Step Functions menerima nama untuk mesin negara, eksekusi, aktivitas, dan label yang berisi ASCII non-karakter. Karena karakter seperti itu tidak akan berfungsi dengan Amazon CloudWatch, kami sarankan hanya menggunakan ASCII karakter sehingga Anda dapat melacak metrik. CloudWatch

    2. Pilih Mulai Eksekusi.

    3. Konsol Step Functions mengarahkan Anda ke halaman yang berjudul dengan ID eksekusi Anda. Halaman ini dikenal sebagai halaman Detail Eksekusi. Di halaman ini, Anda dapat meninjau hasil eksekusi saat eksekusi berlangsung atau setelah selesai.

      Untuk meninjau hasil eksekusi, pilih status individual pada tampilan Grafik, lalu pilih tab individual di Detail langkah panel untuk melihat detail setiap status termasuk input, output, dan definisi masing-masing. Untuk detail tentang informasi eksekusi yang dapat Anda lihat di halaman Rincian Eksekusi, lihatIkhtisar detail eksekusi.

Langkah 4: Jalankan eksekusi mesin status Express

  1. Buat mesin status Express menggunakan definisi mesin negara yang disediakan di Langkah 1. Pastikan Anda juga menyertakan izin IAM peran yang diperlukan seperti yang dijelaskan pada Langkah 2.

    Tip

    Untuk membedakan dari mesin Standar yang Anda buat sebelumnya, beri nama mesin status Express sebagaiGather-S3-Bucket-Info-Express.

  2. Pada halaman Gather-S3-Bucket-Info-Standard, pilih Mulai eksekusi.

  3. Dalam kotak dialog Mulai eksekusi, lakukan hal berikut:

    1. (Opsional) Masukkan nama eksekusi khusus untuk mengganti default yang dihasilkan.

      Non- ASCII nama dan logging

      Step Functions menerima nama untuk mesin negara, eksekusi, aktivitas, dan label yang berisi ASCII non-karakter. Karena karakter seperti itu tidak akan berfungsi dengan Amazon CloudWatch, kami sarankan hanya menggunakan ASCII karakter sehingga Anda dapat melacak metrik. CloudWatch

    2. Pilih Mulai Eksekusi.

    3. Konsol Step Functions mengarahkan Anda ke halaman yang berjudul dengan ID eksekusi Anda. Halaman ini dikenal sebagai halaman Detail Eksekusi. Di halaman ini, Anda dapat meninjau hasil eksekusi saat eksekusi berlangsung atau setelah selesai.

      Untuk meninjau hasil eksekusi, pilih status individual pada tampilan Grafik, lalu pilih tab individual di Detail langkah panel untuk melihat detail setiap status termasuk input, output, dan definisi masing-masing. Untuk detail tentang informasi eksekusi yang dapat Anda lihat di halaman Rincian Eksekusi, lihatIkhtisar detail eksekusi.