を使用して Amazon S3 バケット情報を収集する AWS SDK サービス統合 - AWS Step Functions

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

を使用して Amazon S3 バケット情報を収集する AWS SDK サービス統合

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

ステップ 1: ステートマシンを作成する

Step Functions コンソールを使用して、現在のアカウントとリージョンのすべての Amazon S3 バケットを一覧表示する Task 状態を含むステートマシンを作成します。次に、 を呼び出す別のTask状態を追加してHeadBucketAPI、返されたバケットが現在のリージョンでアクセス可能かどうかを確認します。バケットにアクセスできない場合、HeadBucketAPI呼び出しはS3.S3Exceptionエラーを返します。この例外を捕捉する Catch ブロックと、フォールバック状態として Pass 状態を含めます。

  1. Step Functions コンソールを開き、[ステートマシンの作成] を選択します。

  2. [テンプレートを選択] ダイアログボックスで [空白] を選択します。

  3. 選択 を選択して、 で Workflow Studio を開きますデザインモード

  4. このチュートリアルでは、ステートマシンの Amazon ステートメント言語 (ASL) 定義を に書き込みますコードエディタ。これを行うには、[コード] を選択します。

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

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

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

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

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

    ステートマシンに対して正しいアクセス許可を持つ IAMロールを以前に作成していて、それを使用する場合は、アクセス許可 既存のロールを選択 を選択し、リストからロールを選択します。または、ロールを入力しARN、そのIAMロールARNの を指定します。

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

    [ロールの設定を表示] を選択して [ステートマシンの設定] に戻ることもできます。

    注記

    Step Functions が作成するIAMロールを削除した場合、Step Functions は後で再作成できません。同様に、ロールを変更した場合 (IAMポリシー内のプリンシパルから Step Functions を削除した場合など)、Step Functions は後で元の設定を復元できません。

    ステップ 2 では、不足しているアクセス許可をステートマシンのロールに追加します。

ステップ 2: 必要なIAMロールのアクセス許可を追加する

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

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

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

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

    { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "s3:ListAllMyBuckets", "s3:ListBucket", "s3:GetBucketVersioning" ], "Resource": "*" } ] }
  4. [ポリシーの確認] を選択します。

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

  6. [Create policy] を選択します。

ステップ 3: Standard ステートステートマシンを実行する

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

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

    1. (オプション) 生成されたデフォルトを上書きするカスタム実行名を入力します。

      非ASCII名前とログ記録

      Step Functions は、 ASCII以外の文字を含むステートマシン、実行、アクティビティ、およびラベルの名前を受け入れます。このような文字は Amazon では機能しないため CloudWatch、 でメトリクスを追跡できるようにASCII、文字のみを使用することをお勧めします CloudWatch。

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

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

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

ステップ 4: Express ステートマシンを実行する

  1. ステップ 1 で提供されたステートマシン定義を使用して Express ステートマシンを作成します。ステップ 2 で説明されているように、必要なIAMロールのアクセス許可も必ず含めてください。

    ヒント

    前に作成した Standard マシンと区別するため、Express ステートマシンには Gather-S3-Bucket-Info-Express という名前を付けます。

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

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

    1. (オプション) 生成されたデフォルトを上書きするカスタム実行名を入力します。

      非ASCII名前とログ記録

      Step Functions は、 ASCII以外の文字を含むステートマシン、実行、アクティビティ、およびラベルの名前を受け入れます。このような文字は Amazon では機能しないため CloudWatch、 でメトリクスを追跡できるようにASCII、文字のみを使用することをお勧めします CloudWatch。

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

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

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