

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AWS SDK サービス統合を使用して Amazon S3 バケット情報を収集する
<a name="tutorial-gather-s3-info"></a>

このチュートリアルでは、Amazon Simple Storage Service による [AWS SDK 統合](supported-services-awssdk.md)の実行方法を学習します。このチュートリアルで作成するステートマシンは、Amazon S3 バケットに関する情報を収集し、現在のリージョンの各バケットのバージョン情報とともにバケットを一覧表示します。

## ステップ 1: ステートマシンを作成する
<a name="aws-sdk-create-state-machine"></a>

Step Functions コンソールを使用して、現在のアカウントとリージョンのすべての Amazon S3 バケットを一覧表示する `Task` 状態を含むステートマシンを作成します。次に、`[HeadBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadBucket.html)` API を呼び出す `Task` 状態をもう 1 つ追加して、返されたバケットが現在のリージョンでアクセスできるかどうかを確認します。バケットにアクセスできない場合、`HeadBucket` API コールは `S3.S3Exception` エラーを返します。この例外を捕捉する `Catch` ブロックと、フォールバック状態として `Pass` 状態を含めます。

1. [Step Functions コンソール](https://console.aws.amazon.com/states/home)を開き、メニューから **[ステートマシン]** を選択したら、**[ステートマシンの作成]** を選択します。

1. **[空白から作成]** を選択します。

1. ステートマシンに名前を付け、**[続行]** を選択して Workflow Studio でステートマシンを編集します。

1. このチュートリアルでは、[コードエディタ](workflow-studio.md#wfs-interface-code-editor) でステートマシンの [Amazon States Language](concepts-amazon-states-language.md) (ASL) 定義を記述します。これを行うには、**[コード]** を選択します。

1. 既存のボイラープレートコードを削除して、次のステートマシンの定義を貼り付けます。

   ```
   {
     "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. ステートマシンの名前を指定します。これを行うには、**MyStateMachine** のデフォルトステートマシン名の横にある編集アイコンを選択します。次に、**[ステートマシンの設定]** の **[ステートマシン名]** ボックスに名前を指定します。

   このチュートリアルでは、名前として「**Gather-S3-Bucket-Info-Standard**」と入力します。

1. (オプション) **[ステートマシンの設定]** で、ステートマシンのタイプや実行ロールなど、他のワークフロー設定を指定します。

   **[ステートマシンの設定]** のデフォルト設定をすべてそのまま使用します。

   ステートマシンに適切なアクセス許可を持つ [IAM ロールを以前に作成](procedure-create-iam-role.md)していて、そのロールを使用する場合は、**[アクセス許可]** で **[既存のロールを選択]** を選択し、一覧からロールを選択します。または、**[ロールの ARN を入力]** を選択し、その IAM ロールの ARN を指定します。

1. **[ロールの作成を確認]** ダイアログボックスで、**[確認]** を選択して続行します。

   **[ロールの設定を表示]** を選択して **[ステートマシンの設定]** に戻ることもできます。
**注記**  
Step Functions が作成した IAM ロールを削除すると、Step Functions を後で再作成することはできません。同様に、ロールを変更すると (例えば、IAM ポリシーのプリンシパルから Step Functions を削除するなど)、後で Step Functions でそれを元の設定に復元することはできません。

   [ステップ 2](#aws-sdk-add-iam-permissions) では、不足しているアクセス許可をステートマシンのロールに追加します。

## ステップ 2: 必要な IAM ロールを追加する
<a name="aws-sdk-add-iam-permissions"></a>

現在のリージョンにある Amazon S3 バケットに関する情報を収集するには、Amazon S3 バケットにアクセスするために必要なアクセス許可をステートマシンに提供する必要があります。

1. ステートマシンのページで **[IAM ロール ARN]** を選択し、ステートマシンのロールの **[ロール]** ページを開きます。

1. **[アクセス許可を追加]**、**[インラインポリシーを作成]** の順に選択します。

1. **[JSON]** タブを選択して、次のアクセス許可を JSON エディタに貼り付けます。  
****  

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

1. **[ポリシーの確認]** を選択します。

1. **[ポリシーの確認]** でポリシーの **[名前]** に「**s3-bucket-permissions**」と入力します。

1. [**Create policy**] (ポリシーの作成) を選択します。

## ステップ 3: Standard ステートステートマシンを実行する
<a name="aws-sdk-run-standard"></a>

1. **[Gather-S3-Bucket-Info-Standard]** ページで、**[実行を開始]** を選択します。

1. **[実行を開始]** ダイアログボックスで、以下の操作を行います。

   1. (オプション) 生成されたデフォルトを上書きするカスタム実行名を入力します。
**非 ASCII 名とログ記録**  
Step Functions では、ステートマシン、実行、アクティビティ、ラベルに、ASCII 以外の文字を含む名前を使用できます。このような文字を使用すると Amazon CloudWatch がデータを記録できなくなるため、Step Functions のメトリクスを追跡できるように ASCII 文字のみを使用することをお勧めします。

   1. **[実行のスタート]** を選択します。

   1. Step Functions コンソールから実行 ID のタイトルが付いたページが表示されます。このページは、*[実行の詳細]* ページと呼ばれます。このページでは、実行の進行中または完了後に実行結果を確認できます。

      実行結果を確認するには、**[グラフビュー]** で個々の状態を選択し、[ステップの詳細](concepts-view-execution-details.md#exec-details-intf-step-details) ペインの個々のタブを選択すると、入力、出力、定義などの各状態の詳細がそれぞれ表示されます。*[実行の詳細]* ページに表示できる実行情報の詳細については、「[実行の詳細の概要](concepts-view-execution-details.md#exec-details-interface-overview)」を参照してください。

## ステップ 4: Express ステートマシンを実行する
<a name="aws-sdk-run-express"></a>

1. [ステップ 1](#aws-sdk-create-state-machine) で提供されたステートマシン定義を使用して Express ステートマシンを作成します。[ステップ 2](#aws-sdk-add-iam-permissions) で説明したように、必要な IAM ロールのアクセス許可も必ず含めてください。
**ヒント**  
前に作成した Standard マシンと区別するため、Express ステートマシンには **Gather-S3-Bucket-Info-Express** という名前を付けます。

1. **[Gather-S3-Bucket-Info-Standard]** ページで、**[実行を開始]** を選択します。

1. **[実行を開始]** ダイアログボックスで、以下の操作を行います。

   1. (オプション) 生成されたデフォルトを上書きするカスタム実行名を入力します。
**非 ASCII 名とログ記録**  
Step Functions では、ステートマシン、実行、アクティビティ、ラベルに、ASCII 以外の文字を含む名前を使用できます。このような文字を使用すると Amazon CloudWatch がデータを記録できなくなるため、Step Functions のメトリクスを追跡できるように ASCII 文字のみを使用することをお勧めします。

   1. **[実行のスタート]** を選択します。

   1. Step Functions コンソールから実行 ID のタイトルが付いたページが表示されます。このページは、*[実行の詳細]* ページと呼ばれます。このページでは、実行の進行中または完了後に実行結果を確認できます。

      実行結果を確認するには、**[グラフビュー]** で個々の状態を選択し、[ステップの詳細](concepts-view-execution-details.md#exec-details-intf-step-details) ペインの個々のタブを選択すると、入力、出力、定義などの各状態の詳細がそれぞれ表示されます。*[実行の詳細]* ページに表示できる実行情報の詳細については、「[実行の詳細の概要](concepts-view-execution-details.md#exec-details-interface-overview)」を参照してください。