

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 integrasi layanan AWS SDK
<a name="tutorial-gather-s3-info"></a>

Tutorial ini menunjukkan cara melakukan [integrasi AWS SDK](supported-services-awssdk.md) 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
<a name="aws-sdk-create-state-machine"></a>

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](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadBucket.html)` API untuk memverifikasi apakah bucket yang dikembalikan dapat diakses di wilayah saat ini. Jika bucket tidak dapat diakses, panggilan `HeadBucket` API mengembalikan `S3.S3Exception` kesalahan. Anda akan menyertakan `Catch` blok untuk menangkap pengecualian ini dan `Pass` status sebagai status fallback.

1. Buka [konsol Step Functions](https://console.aws.amazon.com/states/home), pilih **State Machines** dari menu, lalu pilih **Create state machine**.

1. Pilih **Buat dari kosong**.

1. Beri nama mesin status Anda, lalu pilih **Lanjutkan** untuk mengedit mesin status Anda di Workflow Studio.

1. Untuk tutorial ini, Anda akan menulis definisi [Amazon States Language](concepts-amazon-states-language.md) (ASL) dari mesin status Anda di[Editor kode](workflow-studio.md#wfs-interface-code-editor). Untuk melakukan ini, pilih **Kode**.

1. 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
       }
     }
   }
   ```

1. 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**.

1. (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 peran IAM](procedure-create-iam-role.md) 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 ARN untuk peran IAM itu.

1. 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 role yang Step Functions buat, Step Functions tidak dapat membuatnya kembali nanti. Demikian pula, jika Anda mengubah peran (misalnya, dengan menghapus Step Functions dari principal dalam kebijakan IAM), Step Functions tidak dapat memulihkan pengaturan aslinya nanti. 

   Pada [Langkah 2](#aws-sdk-add-iam-permissions), Anda akan menambahkan izin yang hilang ke peran mesin status.

## Langkah 2: Tambahkan izin peran IAM yang diperlukan
<a name="aws-sdk-add-iam-permissions"></a>

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 **ARN peran IAM** untuk membuka halaman **Peran** untuk peran mesin status.

1. Pilih **Tambahkan izin**, lalu pilih **Buat kebijakan sebaris**.

1. Pilih tab **JSON**, lalu tempelkan izin berikut ke editor JSON.  
****  

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

1. Pilih **Tinjau kebijakan**.

1. Di bawah **Kebijakan peninjauan**, untuk **Nama** kebijakan, masukkan**s3-bucket-permissions**.

1. Pilih **Buat kebijakan**.

## Langkah 3: Jalankan eksekusi mesin status Standar
<a name="aws-sdk-run-standard"></a>

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

1. Dalam kotak dialog **Mulai eksekusi**, lakukan hal berikut:

   1. (Opsional) Masukkan nama eksekusi khusus untuk mengganti default yang dihasilkan.
**Nama dan pencatatan non-ASCII**  
Step Functions menerima nama untuk mesin negara, eksekusi, aktivitas, dan label yang berisi karakter non-ASCII. Karena karakter seperti itu akan CloudWatch mencegah Amazon mencatat data, sebaiknya gunakan hanya karakter ASCII sehingga Anda dapat melacak metrik Step Functions.

   1. Pilih **Mulai Eksekusi**.

   1. 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](concepts-view-execution-details.md#exec-details-intf-step-details) 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*, lihat[Ikhtisar detail eksekusi](concepts-view-execution-details.md#exec-details-interface-overview).

## Langkah 4: Jalankan eksekusi mesin status Express
<a name="aws-sdk-run-express"></a>

1. Buat mesin status Express menggunakan definisi mesin negara yang disediakan di [Langkah 1](#aws-sdk-create-state-machine). Pastikan Anda juga menyertakan izin peran IAM yang diperlukan seperti yang dijelaskan pada [Langkah](#aws-sdk-add-iam-permissions) 2.
**Tip**  
Untuk membedakan dari mesin Standar yang Anda buat sebelumnya, beri nama mesin status Express sebagai**Gather-S3-Bucket-Info-Express**.

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

1. Dalam kotak dialog **Mulai eksekusi**, lakukan hal berikut:

   1. (Opsional) Masukkan nama eksekusi khusus untuk mengganti default yang dihasilkan.
**Nama dan pencatatan non-ASCII**  
Step Functions menerima nama untuk mesin negara, eksekusi, aktivitas, dan label yang berisi karakter non-ASCII. Karena karakter seperti itu akan CloudWatch mencegah Amazon mencatat data, sebaiknya gunakan hanya karakter ASCII sehingga Anda dapat melacak metrik Step Functions.

   1. Pilih **Mulai Eksekusi**.

   1. 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](concepts-view-execution-details.md#exec-details-intf-step-details) 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*, lihat[Ikhtisar detail eksekusi](concepts-view-execution-details.md#exec-details-interface-overview).