

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

# IaC テンプレートへのワークフローのエクスポート
<a name="exporting-iac-templates"></a>

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

## テンプレート設定オプション
<a name="exporting-iac-templates-config-options"></a>

この機能では、次のオプションを使用できます。IaC テンプレートファイルをエクスポートおよびダウンロードする際、保存したステートマシンに適用されるオプションがコンソールに表示されます。Infrastructure Composer にエクスポートする場合、Step Functions コンソールにより、ステートマシンに適用される設定が自動的にテンプレートに実装されます。
+  **コンソールによって作成された IAM ロールを含める** – このオプションでは、実行ロールのポリシーをテンプレートにエクスポートします。これにより、テンプレート内に IAM ロールが構築され、ステートマシンリソースにアタッチされます。このオプションは、ステートマシンにコンソールによって作成された実行ロールがある場合にのみ適用されます。
+  **CloudWatch ロググループを含める** – このオプションでは、テンプレート内に CloudWatch ロググループを作成し、ステートマシンリソースにアタッチします。このオプションは、ステートマシンに CloudWatch ロググループがアタッチされており、[ログレベル](cw-logs.md#cloudwatch-log-level)が `OFF` に設定されて*いない*場合にのみ適用されます。
+  **リソース参照を DefinitionSubstitutions に置き換える** – このオプションでは、次のコンポーネント用に [DefinitionSubstitutions](concepts-sam-sfn.md#sam-definition-substitution-eg) を生成します。
  + [分散マップ](state-map-distributed.md) 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 テンプレートをエクスポートしてダウンロードする
<a name="exporting-iac-templates-files-procedure"></a>

**ワークフローを IaC テンプレートファイルにエクスポートするには**

1. [Step Functions コンソール](https://console.aws.amazon.com/states/home?region=us-east-1#/)を開き、作業するステートマシンを選択します。次のステップに進む前に、ステートマシンへの変更がすべて保存されていることを確認してください。

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

1. 表示されるダイアログボックスの **[タイプ]** で、**SAM** または **CloudFormation** のいずれかを選択します。
   + **CloudFormation** テンプレートを選択した場合は、次に **JSON** または **YAML** ファイル形式を選択します。
   + **SAM** テンプレートを選択した場合、ファイル形式の選択肢は表示されません。SAM テンプレートはデフォルトで YAML ファイル形式になります。

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

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

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

## ワークフローを直接 AWS Infrastructure Composer にエクスポートする
<a name="exporting-iac-templates-infra-composer-procedure"></a>

**ワークフローを Infrastructure Composer にエクスポートするには**

1. [Step Functions コンソール](https://console.aws.amazon.com/states/home?region=us-east-1#/)を開き、作業するステートマシンを選択します。次のステップに進む前に、ステートマシンへの変更がすべて保存されていることを確認してください。

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

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

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

1. プロジェクトとワークフロー定義を Infrastructure Composer に保存するには、[ローカル同期モード](https://docs.aws.amazon.com/application-composer/latest/dg/reference-features-local-sync.html)を有効にします。

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

### Amazon S3 転送バケット設定
<a name="export-appcomposer-bucket-info"></a>

Step Functions がワークフロー転送用に作成する Amazon S3 バケットは、AES 256 暗号化標準を使用してオブジェクトを自動的に暗号化します。また、Step Functions は[バケット所有者条件](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-owner-condition.html)を使用するようにバケットを設定して、ユーザーの AWS アカウント だけがバケットにオブジェクトを追加できるようにします。

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

標準の [Amazon S3 の料金](https://aws.amazon.com/s3/pricing/)が適用されます。

### 必要なアクセス許可
<a name="export-appcomposer-permissions"></a>

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

AWS SAM テンプレートをダウンロードするには、次の API アクションに対するアクセス権限が必要です。
+ [iam:GetPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicy.html)
+ [iam:GetPolicyVersion](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicyVersion.html)
+ [iam:GetRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRole.html)
+ [iam:GetRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRolePolicy.html)
+ [iam:ListAttachedRolePolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedRolePolicies.html)
+ [iam:ListRolePolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListRolePolicies.html)
+ [iam:ListRoles](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListRoles.html)

Step Functions が関数の設定を Amazon S3 に書き込むには、次の API アクションを使用するためのアクセス許可が必要です。
+ [S3:PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)
+ [S3:CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html)
+ [S3:PutBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html)

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