IaC テンプレートへのワークフローのエクスポート - AWS Step Functions

IaC テンプレートへのワークフローのエクスポート

AWS Step Functions コンソールで、保存されたワークフローを AWS CloudFormation または AWS SAM (SAM) テンプレートとしてエクスポートおよびダウンロードできるようになりました。AWS Infrastructure Composer をサポートしている AWS リージョン では、ワークフローを Infrastructure Composer にエクスポートし、Infrastructure Composer コンソールに移動して、新しく生成されたテンプレートで作業を続行できるようになりました。

テンプレート設定オプション

この機能では、次のオプションを使用できます。IaC テンプレートファイルをエクスポートおよびダウンロードする際、保存したステートマシンに適用されるオプションがコンソールに表示されます。Infrastructure Composer にエクスポートする場合、Step Functions コンソールにより、ステートマシンに適用される設定が自動的にテンプレートに実装されます。

  • コンソールによって作成された IAM ロールを含める – このオプションでは、実行ロールのポリシーをテンプレートにエクスポートします。これにより、テンプレート内に IAM ロールが構築され、ステートマシンリソースにアタッチされます。このオプションは、ステートマシンにコンソールによって作成された実行ロールがある場合にのみ適用されます。

  • CloudWatch ロググループを含める – このオプションでは、テンプレート内に CloudWatch ロググループを作成し、ステートマシンリソースにアタッチします。このオプションは、ステートマシンに CloudWatch ロググループがアタッチされており、ログレベルOFF に設定されていない場合にのみ適用されます。

  • リソース参照を DefinitionSubstitutions に置き換える – このオプションでは、次のコンポーネント用に DefinitionSubstitutions を生成します。

    • 分散マップ S3 のフィールド。

    • Activity リソース。エクスポートには、Run Activity タスクに対応した CloudFormation テンプレート内の Activity リソースがすべて含まれます。エクスポートには、作成された Activity リソースを参照する DefinitionSubstitutions も含まれます。

    • すべてのサービス統合のペイロードフィールドに含まれる ARN または S3URI

    • ARN および S3URI フィールドに加えて、エクスポートでは他の頻繁に使用されるサービス統合ペイロードフィールドに対応する DefinitionSubstitutions も生成されます。対象となる特定のサービス統合は次のとおりです。

      • athena:startQueryExecution

      • batch:submitJob

      • dynamodb:getItem, dynamodb:updateItem, dynamodb:updateItem, dynamodb:deleteItem

      • ecs:runTask

      • glue:startJobRun

      • http:invoke

      • lambda:invoke

      • sns:publish

      • sqs:sendMessage

      • states:startExecution

ワークフローの IaC テンプレートをエクスポートしてダウンロードする

ワークフローを IaC テンプレートファイルにエクスポートするには
  1. Step Functions コンソールを開き、作業するステートマシンを選択します。次のステップに進む前に、ステートマシンへの変更がすべて保存されていることを確認してください。

  2. [アクション] メニューから [CloudFormation または SAM テンプレートにエクスポート] を選択します。

  3. 表示されるダイアログボックスの [タイプ] で、SAM または CloudFormation のいずれかを選択します。

    • CloudFormation テンプレートを選択した場合は、次に JSON または YAML ファイル形式を選択します。

    • SAM テンプレートを選択した場合、ファイル形式の選択肢は表示されません。SAM テンプレートはデフォルトで YAML ファイル形式になります。

  4. [追加設定] を展開します。デフォルトでは、すべてのオプションが選択されています。IaC テンプレートのオプションの選択内容を確認し、必要に応じて更新します。オプションについては、前のセクション「テンプレート設定オプション」で詳しく説明します。

    特定のワークフローに適用されないオプションは、ダイアログボックスに表示されません。

  5. [ダウンロード] を選択して、生成された IaC テンプレートファイルをエクスポートしてダウンロードします。

ワークフローを直接 AWS Infrastructure Composer にエクスポートする

ワークフローを Infrastructure Composer にエクスポートするには
  1. Step Functions コンソールを開き、作業するステートマシンを選択します。次のステップに進む前に、ステートマシンへの変更がすべて保存されていることを確認してください。

  2. [アクション] メニューから [Infrastructure Composer にエクスポート] を選択します。

  3. [Infrastructure Composer にエクスポート] ダイアログボックスが表示されます。[転送バケット名] フィールドに表示されるデフォルト名をそのまま使用するか、新しい名前を入力できます。Amazon S3 バケットの名前は、グローバルに一意で、バケットの命名規則に従ったものである必要があります。

  4. [プロジェクトの確認と作成] を選択すると、ワークフローが Infrastructure Composer にエクスポートされます。

  5. プロジェクトとワークフロー定義を Infrastructure Composer に保存するには、ローカル同期モードを有効にします。

注記

以前に [Infrastructure Composer へのエクスポート] 機能を使用し、デフォルト名で Amazon S3 バケットを作成している場合、Step Functions はこのバケットがまだ存在していれば再利用できます。既存のバケットを再利用するには、ダイアログボックスのデフォルトのバケット名をそのまま使用してください。

Amazon S3 転送バケット設定

Step Functions がワークフロー転送用に作成する Amazon S3 バケットは、AES 256 暗号化標準を使用してオブジェクトを自動的に暗号化します。また、Step Functions はバケット所有者条件を使用するようにバケットを設定して、ユーザーの AWS アカウント だけがバケットにオブジェクトを追加できるようにします。

デフォルトのバケット名には、プレフィックス states-templates、10 桁の英数字の文字列、およびワークフローを作成した AWS リージョン が使用されます (例: states-templates-amzn-s3-demo-bucket-us-east-1)。AWS アカウントに追加料金が発生しないように、ワークフローを Infrastructure Composer にエクスポートし終えたらすぐに Amazon S3 バケットを削除することをお勧めします。

標準の Amazon S3 の料金が適用されます。

必要なアクセス許可

Infrastructure Composer でこの Step Functions のエクスポート機能を使用するには、AWS SAM テンプレートをダウンロードし、そのテンプレート設定を Amazon S3 に書き込むための特定のアクセス許可が必要です。

AWS SAM テンプレートをダウンロードするには、次の API アクションに対するアクセス権限が必要です。

Step Functions が関数の設定を Amazon S3 に書き込むには、次の API アクションを使用するためのアクセス許可が必要です。

関数の設定を Infrastructure Composer にエクスポートできない場合は、アカウントにこれらのオペレーションに必要なアクセス許可があることを確認してください。