翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
このチュートリアルでは、Amazon Simple Storage Service による AWS SDK 統合の実行方法を学習します。このチュートリアルで作成するステートマシンは、Amazon S3 バケットに関する情報を収集し、現在のリージョンの各バケットのバージョン情報とともにバケットを一覧表示します。
ステップ 1: ステートマシンを作成する
Step Functions コンソールを使用して、現在のアカウントとリージョンのすべての Amazon S3 バケットを一覧表示する Task
状態を含むステートマシンを作成します。次に、HeadBucket
API を呼び出す Task
状態をもう 1 つ追加して、返されたバケットが現在のリージョンでアクセスできるかどうかを確認します。バケットにアクセスできない場合、HeadBucket
API コールは S3.S3Exception
エラーを返します。この例外を捕捉する Catch
ブロックと、フォールバック状態として Pass
状態を含めます。
-
Step Functions コンソール
を開き、[ステートマシンの作成] を選択します。 [テンプレートを選択] ダイアログボックスで [空白] を選択します。
[選択] を選択して、デザインモード で Workflow Studio を開きます。
-
このチュートリアルでは、コードエディタ でステートマシンの Amazon States Language (ASL) 定義を記述します。これを行うには、[コード] を選択します。
-
既存のボイラープレートコードを削除して、次のステートマシンの定義を貼り付けます。
{ "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 } } }
-
ステートマシンの名前を指定します。これを行うには、MyStateMachine のデフォルトステートマシン名の横にある編集アイコンを選択します。次に、[ステートマシンの設定] の [ステートマシン名] ボックスに名前を指定します。
このチュートリアルでは、名前として「
Gather-S3-Bucket-Info-Standard
」と入力します。 -
(オプション) [ステートマシンの設定] で、ステートマシンのタイプや実行ロールなど、他のワークフロー設定を指定します。
[ステートマシンの設定] のデフォルト設定をすべてそのまま使用します。
ステートマシンに適切なアクセス許可を持つ IAM ロールを以前に作成していて、そのロールを使用する場合は、[アクセス許可] で [既存のロールを選択] を選択し、一覧からロールを選択します。または、[ロールの ARN を入力] を選択し、その IAM ロールの ARN を指定します。
-
[ロールの作成を確認] ダイアログボックスで、[確認] を選択して続行します。
[ロールの設定を表示] を選択して [ステートマシンの設定] に戻ることもできます。
注記
Step Functions が作成した IAM ロールを削除すると、Step Functions を後で再作成することはできません。同様に、ロールを変更すると (例えば、IAM ポリシーのプリンシパルから Step Functions を削除するなど)、後で Step Functions でそれを元の設定に復元することはできません。
ステップ 2 では、不足しているアクセス許可をステートマシンのロールに追加します。
ステップ 2: 必要な IAM ロールを追加する
現在のリージョンにある Amazon S3 バケットに関する情報を収集するには、Amazon S3 バケットにアクセスするために必要なアクセス許可をステートマシンに提供する必要があります。
-
ステートマシンのページで [IAM ロール ARN] を選択し、ステートマシンのロールの [ロール] ページを開きます。
-
[アクセス許可を追加]、[インラインポリシーを作成] の順に選択します。
[JSON] タブを選択して、次のアクセス許可を JSON エディタに貼り付けます。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "s3:ListAllMyBuckets", "s3:ListBucket", "s3:GetBucketVersioning" ], "Resource": "*" } ] }
[ポリシーの確認] を選択します。
[ポリシーの確認] でポリシーの [名前] に「
s3-bucket-permissions
」と入力します。[Create policy] を選択します。
ステップ 3: Standard ステートステートマシンを実行する
-
[Gather-S3-Bucket-Info-Standard] ページで、[実行を開始] を選択します。
-
[実行を開始] ダイアログボックスで、以下の操作を行います。
-
(オプション) 生成されたデフォルトを上書きするカスタム実行名を入力します。
非 ASCII 名とログ記録
Step Functions では、ステートマシン、実行、アクティビティ、ラベルに、ASCII 以外の文字を含む名前を使用できます。このような文字は Amazon CloudWatch では機能しないため、CloudWatch でメトリクスを追跡できるように ASCII 文字のみを使用することをお勧めします。
-
[実行のスタート] を選択します。
-
Step Functions コンソールから実行 ID のタイトルが付いたページが表示されます。このページは、[実行の詳細] ページと呼ばれます。このページでは、実行の進行中または完了後に実行結果を確認できます。
実行結果を確認するには、[グラフビュー] で個々の状態を選択し、ステップの詳細 ペインの個々のタブを選択すると、入力、出力、定義などの各状態の詳細がそれぞれ表示されます。[実行の詳細] ページに表示できる実行情報の詳細については、「実行の詳細の概要」を参照してください。
-
ステップ 4: Express ステートマシンを実行する
-
ステップ 1 で提供されたステートマシン定義を使用して Express ステートマシンを作成します。ステップ 2 で説明したように、必要な IAM ロールのアクセス許可も必ず含めてください。
ヒント
前に作成した Standard マシンと区別するため、Express ステートマシンには
Gather-S3-Bucket-Info-Express
という名前を付けます。 -
[Gather-S3-Bucket-Info-Standard] ページで、[実行を開始] を選択します。
-
[実行を開始] ダイアログボックスで、以下の操作を行います。
-
(オプション) 生成されたデフォルトを上書きするカスタム実行名を入力します。
非 ASCII 名とログ記録
Step Functions では、ステートマシン、実行、アクティビティ、ラベルに、ASCII 以外の文字を含む名前を使用できます。このような文字は Amazon CloudWatch では機能しないため、CloudWatch でメトリクスを追跡できるように ASCII 文字のみを使用することをお勧めします。
-
[実行のスタート] を選択します。
-
Step Functions コンソールから実行 ID のタイトルが付いたページが表示されます。このページは、[実行の詳細] ページと呼ばれます。このページでは、実行の進行中または完了後に実行結果を確認できます。
実行結果を確認するには、[グラフビュー] で個々の状態を選択し、ステップの詳細 ペインの個々のタブを選択すると、入力、出力、定義などの各状態の詳細がそれぞれ表示されます。[実行の詳細] ページに表示できる実行情報の詳細については、「実行の詳細の概要」を参照してください。
-