

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

# Infrastructure Composer の拡張コンポーネントカード
<a name="using-composer-cards-use-enhanced-component"></a>

拡張コンポーネントカードを設定するには、Infrastructure Composer は**リソースプロパティ**パネルにフォームを提供します。このフォームは、各拡張コンポーネントカードの設定をガイドするために独自に厳選されています。フォームに入力すると、Infrastructure Composer はインフラストラクチャコードを変更します。

一部の拡張コンポーネントカードには追加機能があります。このセクションでは、拡張コンポーネントカードの使用の基本を確認し、追加機能を備えたカードの詳細を提供します。

拡張コンポーネントカードの詳細については、[Infrastructure Composer の拡張コンポーネントカード](using-composer-cards-component-intro-enhanced.md)「」および「」を参照してください。 [Infrastructure Composer の拡張コンポーネントカード](using-composer-cards-component-intro-enhanced.md)

# 手順


**リソースプロパティ**パネルは、設定を合理化し、カード設定を簡素化するガイドレールを追加します。このパネルを使用するには、次の手順を実行します。

1. カードをダブルクリックして、**リソースプロパティ**パネルを表示します。

1. カードをクリックし、**詳細**を選択してリソースプロパティパネルを表示します。

1. から Infrastructure Composer で AWS マネジメントコンソール、**テンプレート**を選択してアプリケーションコードを表示します。ここから直接 を設定します。

   次の図は、これを行う方法を示しています。  
![\[テンプレートビューを選択し、そこからインフラストラクチャコードを変更します。\]](http://docs.aws.amazon.com/ja_jp/infrastructure-composer/latest/dg/images/aac_ref_11.gif)

# Amazon Relational Database Service (Amazon RDS) での Infrastructure Composer の使用
<a name="using-composer-services-rds"></a>

AWS Infrastructure Composer は、Amazon Relational Database Service (Amazon RDS) との統合を備えています。Infrastructure Composer の **RDS Database (External)** 拡張コンポーネントカードを使用すると、アプリケーションを別の CloudFormation または AWS Serverless Application Model (AWS SAM) テンプレートで定義されている Amazon RDS DBクラスター、インスタンス、プロキシに接続できます。

**RDS データベース (外部)** 拡張コンポーネントカードは、別のテンプレートで定義されている Amazon RDS リソースを表します。これには、以下が含まれます。
+ 別のテンプレートで定義されている Amazon RDS DBクラスターまたはインスタンス
+ Amazon RDS DBプロキシ

**RDS データベース (外部)** 拡張コンポーネントカードは、 **リソース**パレットから入手できます。

![\[Amazon RDS データベース (外部) 拡張コンポーネントカード。\]](http://docs.aws.amazon.com/ja_jp/infrastructure-composer/latest/dg/images/aac_use_rds_01.png)


このカードを使用するには、Infrastructure Composer キャンバスにドラッグして設定し、他のリソースに接続します。

Lambda 関数を使用して、アプリケーションを外部の Amazon RDS DBクラスターまたはインスタンスに接続できます。

## 要件
<a name="using-composer-services-rds-requirements"></a>

この機能を使用するには、次の要件を満たす必要があります。

1. 外部の Amazon RDS DBクラスター、インスタンス、またはプロキシは、 を使用してユーザーパスワード AWS Secrets Manager を管理する必要があります。詳細については、[「Amazon RDS ユーザーガイド」の「Amazon RDS でのパスワード管理」および AWS Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html)**「」を参照してください。

1. Infrastructure Composer のアプリケーションは、新しいプロジェクトであるか、Infrastructure Composer で最初に作成されたものである必要があります。

## 手順
<a name="using-composer-services-rds-connect"></a>

### ステップ 1: 外部 RDS データベースカードを設定する
<a name="using-composer-services-rds-connect-step1"></a>

**リソース**パレットから、**RDS データベース (外部)** 拡張コンポーネントカードをキャンバスにドラッグします。

カードを選択して**詳細**を選択するか、カードをダブルクリックして**リソースプロパティ**パネルを表示します。カードのリソースプロパティパネルが表示されます。

![\[RDS Database (外部) 拡張コンポーネントカードのリソースプロパティパネル。\]](http://docs.aws.amazon.com/ja_jp/infrastructure-composer/latest/dg/images/aac_use_rds_03.png)


ここで以下を設定できます。
+ **論理 ID** – 外部の Amazon RDS DBクラスター、インスタンス、またはプロキシの一意の名前。この ID は、外部 Amazon RDS DBリソースの論理 ID 値と一致する必要はありません。
+ **データベースシークレット** – Amazon RDS DBクラスター、インスタンス、またはプロキシに関連付けられている AWS Secrets Manager シークレットの識別子。このフィールドには、次の値を使用できます。
  + **静的値** – シークレット ARN などのデータベースシークレットの一意の識別子。以下に例を示します。`arn:aws:secretsmanager:us-west-2:123456789012:secret:my-path/my-secret-name-1a2b3c`。詳細については、*AWS Secrets Manager ユーザーガイド*の「[AWS Secrets Manager コンセプト](https://docs.aws.amazon.com/secretsmanager/latest/userguide/getting-started.html) 」を参照してください。
  + **出力値** – Secrets Manager シークレットがデプロイされると AWS CloudFormation、出力値が作成されます。ここで、 `[Fn::ImportValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-importvalue.html)`組み込み関数を使用して出力値を指定できます。例えば、`!ImportValue MySecret`。
  + **SSM パラメータストアの値** – SSM パラメータストアにシークレットを保存し、動的リファレンスを使用してその値を指定できます。例えば、`{{resolve:ssm:MySecret}}`。詳細については、「 *AWS CloudFormation ユーザーガイド*」の[「SSM パラメータ](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-ssm)」を参照してください。
+ **データベースホスト名** – Amazon RDS DBクラスター、インスタンス、またはプロキシへの接続に使用できるホスト名。この値は、Amazon RDS リソースを定義する外部テンプレートで指定されます。次の値を使用できます。
  + **静的値** – エンドポイントアドレスなど、データベースホスト名の一意の識別子。以下に例を示します。`mystack-mydb-1apw1j4phylrk.cg034hpkmmjt.us-east-2.rds.amazonaws.com`。
  + **出力値** – デプロイされた Amazon RDS DBクラスター、インスタンス、またはプロキシの出力値。`[Fn::ImportValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-importvalue.html)` 組み込み関数を使用して出力値を指定できます。例えば、`!ImportValue myStack-myDatabase-abcd1234`。
  + **SSM パラメータストアの値** – データベースホスト名を SSM パラメータストアに保存し、動的リファレンスを使用してその値を指定できます。例えば、`{{resolve:ssm:MyDatabase}}`。
+ **データベースポート** – Amazon RDS DBクラスター、インスタンス、またはプロキシへの接続に使用できるポート番号。この値は、Amazon RDS リソースを定義する外部テンプレートで指定されます。次の値を使用できます。
  + **静的値** – データベースポート。例えば、`3306`。
  + **出力値** – デプロイされた Amazon RDS DBクラスター、インスタンス、またはプロキシの出力値。例えば、`!ImportValue myStack-MyRDSInstancePort`。
  + **SSM パラメータストアの値** – データベースホスト名を SSM パラメータストアに保存し、動的リファレンスを使用してその値を指定できます。例えば、`{{resolve:ssm:MyRDSInstancePort}}`。

**注記**  
ここで設定する必要があるのは論理 ID 値のみです。必要に応じて、デプロイ時に他のプロパティを設定できます。

### ステップ 2: Lambda 関数カードを接続する
<a name="using-composer-services-rds-connect-step2"></a>

**リソース**パレットから、**Lambda Function** 拡張コンポーネントカードをキャンバスにドラッグします。

**Lambda 関数**カードの左ポートを **RDS データベース (外部)** カードの右ポートに接続します。

![\[RDS データベース (外部) 拡張コンポーネントカードに接続された Lambda 関数カード。\]](http://docs.aws.amazon.com/ja_jp/infrastructure-composer/latest/dg/images/aac_use_rds_02.png)


Infrastructure Composer はこの接続を容易にするためにテンプレートをプロビジョニングします。

## Infrastructure Composer が接続を作成するために行うこと
<a name="using-composer-services-rds-ref-how"></a>

上記の手順を完了すると、Infrastructure Composer は Lambda 関数をデータベースに接続するための特定のアクションを実行します。

### 外部 Amazon RDS DBクラスター、インスタンス、またはプロキシを指定する場合
<a name="using-composer-services-rds-ref-how-specify"></a>

**RDS データベース (外部)** カードをキャンバスにドラッグすると、Infrastructure Composer は必要に応じてテンプレートの `Metadata`および `Parameters`セクションを更新します。以下に例を示します。

```
Metadata:
  AWS::Composer::ExternalResources:
    ExternalRDS:
      Type: externalRDS
      Settings:
        Port: !Ref ExternalRDSPort
        Hostname: !Ref ExternalRDSHostname
        SecretArn: !Ref ExternalRDSSecretArn
Parameters:
  ExternalRDSPort:
    Type: Number
  ExternalRDSHostname:
    Type: String
  ExternalRDSSecretArn:
    Type: String
```

[メタデータ](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html)は、 CloudFormation テンプレートに関する詳細を保存するために使用されるテンプレートセクションです。Infrastructure Composer に固有のメタデータは、`AWS::Composer::ExternalResources`メタデータキーの下に保存されます。ここでは、Infrastructure Composer は Amazon RDS DBクラスター、インスタンス、またはプロキシに指定した値を保存します。

 CloudFormation テンプレートの[パラメータ](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html)セクションは、デプロイ時にテンプレート全体に挿入できるカスタム値を保存するために使用されます。指定した値のタイプに応じて、Infrastructure Composer は Amazon RDS DBクラスター、インスタンス、またはプロキシの値をここに保存し、テンプレート全体で指定する場合があります。

`Metadata` および `Parameters`セクションの文字列値は、**RDS データベース (外部)** カードで指定した論理 ID 値を使用します。論理 ID を更新すると、文字列値が変更されます。

### Lambda 関数をデータベースに接続する場合
<a name="using-composer-services-rds-ref-how-connecting"></a>

**Lambda 関数**カードを **RDS データベース (外部)** カードに接続すると、Infrastructure Composer は環境変数と AWS Identity and Access Management (IAM) ポリシーをプロビジョニングします。以下に例を示します。

```
Resources:
  Function:
    Type: AWS::Serverless::Function
    Properties:
      ...
      Environment:
        Variables:
          EXTERNALRDS_PORT: !Ref ExternalRDSPort
          EXTERNALRDS_HOSTNAME: !Ref ExternalRDSHostname
          EXTERNALRDS_SECRETARN: !Ref ExternalRDSSecretArn
      Policies:
        - AWSSecretsManagerGetSecretValuePolicy:
            SecretArn: !Ref ExternalRDSSecretArn
```

[環境](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html#sam-function-environment)変数は、実行時に関数で使用できる変数です。詳細については、「 *AWS Lambda デベロッパーガイド*」の[「Lambda 環境変数の使用](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html)」を参照してください。

[ポリシー](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html#sam-function-policies)は、関数のアクセス許可をプロビジョニングします。ここでは、Infrastructure Composer は、関数から Secrets Manager への読み取りアクセスを許可するポリシーを作成し、Amazon RDS DBクラスター、インスタンス、またはプロキシにアクセスするためのパスワードを取得します。

# AWS Infrastructure Composer での の使用 AWS Step Functions
<a name="using-composer-services-sf"></a>

AWS Infrastructure Composer には、 との統合があります[AWS Step Functions Workflow Studio](https://docs.aws.amazon.com/step-functions/latest/dg/workflow-studio.html)。Infrastructure Composer を使用して以下を実行します。
+ Infrastructure Composer 内で Step Functions Workflow Studioを直接起動します。
+ 新しいワークフローを作成および管理するか、既存のワークフローを Infrastructure Composer にインポートします。
+ Infrastructure Composer キャンバスを使用して、ワークフローを他の AWS リソースと統合します。

次の画像は Step Functions ステートマシンカードのものです。

![\[Step Functions ステートマシンカード。\]](http://docs.aws.amazon.com/ja_jp/infrastructure-composer/latest/dg/images/aac_use_sf_01.png)


Infrastructure Composer Workflow Studioの Step Functions を使用すると、2 人の強力なビジュアルデザイナーの利点を 1 か所で利用できます。ワークフローとアプリケーションを設計すると、Infrastructure Composer はInfrastructure as Code (IaC) を作成し、デプロイに向けてガイドします。

**Topics**
+ [IAM ポリシー](#using-composer-services-sf-use-iam)
+ [Infrastructure Composer Workflow Studioでの Step Functions の開始方法](#using-composer-services-sf-gs)
+ [Infrastructure Composer Workflow Studioでの Step Functions の使用](#using-composer-services-sf-use)
+ [詳細情報](#using-composer-services-sf-learn)

## IAM ポリシー
<a name="using-composer-services-sf-use-iam"></a>

ワークフローから リソースにタスクを接続すると、Infrastructure Composer はリソース間のインタラクションを承認するために必要な AWS Identity and Access Management (IAM) ポリシーを自動的に作成します。以下に例を示します。

```
Transform: AWS::Serverless-2016-10-31
Resources:
  StockTradingStateMachine:
    Type: AWS::Serverless::StateMachine
    Properties:
      ...
      Policies:
        - LambdaInvokePolicy:
            FunctionName: !Ref CheckStockValue
      ...
  CheckStockValue:
    Type: AWS::Serverless::Function
    ...
```

必要に応じて、テンプレートに IAM ポリシーを追加できます。

## Infrastructure Composer Workflow Studioでの Step Functions の開始方法
<a name="using-composer-services-sf-gs"></a>

開始するには、新しいワークフローを作成するか、既存のワークフローをインポートします。

### 新しいワークフローを作成するには
<a name="using-composer-services-sf-gs-create"></a>

1. **リソース**パレットから、**Step Functions ステートマシン**拡張コンポーネントカードをキャンバスにドラッグします。  
![\[Step Functions ステートマシンカード。\]](http://docs.aws.amazon.com/ja_jp/infrastructure-composer/latest/dg/images/aac_use_sf_02.png)

   **Step Functions ステートマシン**カードをキャンバスにドラッグすると、Infrastructure Composer は以下を作成します。
   + ステートマシンを定義する `[ AWS::Serverless::StateMachine](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-statemachine.html)` リソース。デフォルトでは、Infrastructure Composer は標準ワークフローを作成します。Express ワークフローを作成するには、テンプレートの`Type`値を から `STANDARD` に変更します`EXPRESS`。
   + ステートマシンの Amazon CloudWatch ロググループを定義する`[AWS::Logs::LogGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html)`リソース。

1. カードの**リソースプロパティ**パネルを開き、**Workflow Studio で編集**を選択して Infrastructure Composer Workflow Studio内で開きます。

   Step Functions が**設計**モードでWorkflow Studio開きます。詳細については、「 *AWS Step Functions デベロッパーガイド*」の[「設計モード](https://docs.aws.amazon.com/step-functions/latest/dg/workflow-studio-components.html#wfs-interface-design-mode)」を参照してください。
**注記**  
Infrastructure Composer を変更して、ステートマシンの定義を外部ファイルに保存できます。詳細については[外部ファイルの使用](#using-composer-services-sf-use-external)を参照してください。

1. ワークフローを作成し、**保存**を選択します。を終了するにはWorkflow Studio、**「インフラストラクチャコンポーザーに戻る**」を選択します。

   Infrastructure Composer は、 `AWS::Serverless::StateMachine`リソースの `Defintion`プロパティを使用してワークフローを定義します。

1. ワークフローを変更するには、次のいずれかを実行します。
   + Workflow Studio を再度開き、ワークフローを変更します。
   + コンソールから Infrastructure Composer の場合は、アプリケーションの**テンプレート**ビューを開き、テンプレートを変更できます。**ローカル同期**を使用する場合は、ローカル IDE でワークフローを変更できます。Infrastructure Composer は変更を検出し、Infrastructure Composer でワークフローを更新します。
   + Toolkit for VS Code の Infrastructure Composer では、テンプレートを直接変更できます。Infrastructure Composer は変更を検出し、Infrastructure Composer でワークフローを更新します。

### 既存のワークフローをインポートするには
<a name="using-composer-services-sf-gs-import"></a>

 AWS Serverless Application Model (AWS SAM) テンプレートを使用して定義されたアプリケーションからワークフローをインポートできます。`AWS::Serverless::StateMachine` リソースタイプで定義されたステートマシンを使用すると、 の起動に使用できる **Step Functions ステートマシン**拡張コンポーネントカードとして視覚化されますWorkflow Studio。

`AWS::Serverless::StateMachine` リソースは、次のいずれかのプロパティを使用してワークフローを定義できます。
+ `[ Definition](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-statemachine.html#sam-statemachine-definition)` – ワークフローは AWS SAM 、テンプレート内でオブジェクトとして定義されます。
+ `[ DefinitionUri](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-statemachine.html#sam-statemachine-definitionuri)` – ワークフローは、[Amazon States Language](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html) を使用して外部ファイルで定義されます。次に、ファイルのローカルパスがこのプロパティで指定されます。

#### 定義プロパティ
<a name="using-composer-services-sf-gs-import-definition"></a>

**コンソールからの Infrastructure Composer**  
`Definition` プロパティを使用して定義されたワークフローでは、単一のテンプレートまたはプロジェクト全体をインポートできます。  
+ **テンプレート** – テンプレートをインポートする手順については、「」を参照してください[Infrastructure Composer コンソールで既存のプロジェクトテンプレートをインポートする](using-composer-project-import-template.md)。Infrastructure Composer 内で行った変更を保存するには、テンプレートをエクスポートする必要があります。
+ **プロジェクト** – プロジェクトをインポートするときは、**ローカル同期**を有効にする必要があります。行った変更は、ローカルマシンに自動的に保存されます。プロジェクトをインポートする手順については、「」を参照してください[Infrastructure Composer コンソールで既存のプロジェクトフォルダをインポートする](using-composer-project-import-folder.md)。

**Toolkit for VS Code のインフラストラクチャコンポーザー**  
`Definition` プロパティを使用して定義されたワークフローの場合、テンプレートから Infrastructure Composer を開くことができます。手順については、「[から Infrastructure Composer にアクセスする AWS Toolkit for Visual Studio Code](setting-up-composer-access-ide.md)」を参照してください。

#### DefinitionUri プロパティ
<a name="using-composer-services-sf-gs-import-definitionuri"></a>

**コンソールからの Infrastructure Composer**  
`DefinitionUri` プロパティを使用して定義されたワークフローの場合、プロジェクトをインポートし、**ローカル同期**を有効にする必要があります。プロジェクトをインポートする手順については、「」を参照してください[Infrastructure Composer コンソールで既存のプロジェクトフォルダをインポートする](using-composer-project-import-folder.md)。

**Toolkit for VS Code のインフラストラクチャコンポーザー**  
`DefinitionUri` プロパティを使用して定義されたワークフローの場合、テンプレートから Infrastructure Composer を開くことができます。手順については、「[から Infrastructure Composer にアクセスする AWS Toolkit for Visual Studio Code](setting-up-composer-access-ide.md)」を参照してください。

## Infrastructure Composer Workflow Studioでの Step Functions の使用
<a name="using-composer-services-sf-use"></a>

### ワークフローの構築
<a name="using-composer-services-sf-use-build"></a>

Infrastructure Composer は定義置換を使用して、ワークフロータスクをアプリケーションのリソースにマッピングします。定義の置換の詳細については、「 *AWS Serverless Application Model デベロッパーガイド*`[ DefinitionSubstitutions](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-statemachine.html#sam-statemachine-definitionsubstitutions)`」の「」を参照してください。

でタスクを作成するときはWorkflow Studio、各タスクの定義置換を指定します。その後、Infrastructure Composer キャンバスのリソースにタスクを接続できます。

**で定義の置換を指定するには Workflow Studio**

1. タスク**の設定**タブを開き、**API パラメータ**フィールドを見つけます。  
![\[のタスクの設定タブWorkflow Studio。\]](http://docs.aws.amazon.com/ja_jp/infrastructure-composer/latest/dg/images/aac_use_sf_05.png)

1. **API パラメータ**フィールドにドロップダウンオプションがある場合は、** CloudFormation 置換を入力**を選択します。次に、一意の名前を指定します。

   同じリソースに接続するタスクの場合、タスクごとに同じ定義置換を指定します。既存の定義置換を使用するには、** CloudFormation 置換の選択**を選択し、使用する置換を選択します。

1. **API** Parameters フィールドに JSON オブジェクトが含まれている場合は、定義の置換を使用するようにリソース名を指定するエントリを変更します。次の例では、 `"MyDynamoDBTable"`を に変更します`"${RecordTransaction}"`。  
![\[のタスクの設定タブWorkflow Studio。\]](http://docs.aws.amazon.com/ja_jp/infrastructure-composer/latest/dg/images/aac_use_sf_06.png)

1. **保存**して **Infrastructure Composer に戻る**を選択します。

ワークフローのタスクは、**Step Functions ステートマシン**カードで視覚化されます。

![\[タスクが視覚化された Step Functions ステートマシンカード。\]](http://docs.aws.amazon.com/ja_jp/infrastructure-composer/latest/dg/images/aac_use_sf_03.png)


### リソースをワークフロータスクに接続する
<a name="using-composer-services-sf-use-connect"></a>

Infrastructure Composer では、サポートされているワークフロータスクとサポートされている Infrastructure Composer カード間の接続を作成できます。
+ **サポートされているワークフロータスク** – Step Functions 用に最適化された AWS のサービス のタスク。詳細については、[「 デベロッパーガイド」の「Step Functions の最適化された統合](https://docs.aws.amazon.com/step-functions/latest/dg/connect-supported-services.html)」を参照してください。 *AWS Step Functions *
+ **サポートされている Infrastructure Composer カード** – 拡張コンポーネントカードがサポートされています。Infrastructure Composer のカードの詳細については、「」を参照してください[Infrastructure Composer でカードを設定および変更する](using-composer-cards.md)。

接続を作成するときは、タスクとカードの AWS のサービス が一致している必要があります。たとえば、Lambda 関数を呼び出すワークフロータスクを **Lambda **関数拡張コンポーネントカードに接続できます。

接続を作成するには、タスクのポートをクリックして、拡張コンポーネントカードの左ポートにドラッグします。

![\[Lambda 関数リソースカードに接続されたタスクを持つ Step Functions ステートマシンカード。\]](http://docs.aws.amazon.com/ja_jp/infrastructure-composer/latest/dg/images/aac_use_sf_04.png)


Infrastructure Composer は`DefinitionSubstitution`、値を自動的に更新して接続を定義します。以下に例を示します。

```
Transform: AWS::Serverless-2016-10-31
Resources:
  StateMachine:
    Type: AWS::Serverless::StateMachine
    Properties:
      Definition:
        StartAt: Check Stock Value
        States:
          Check Stock Value:
            Type: Task
            Resource: arn:aws:states:::lambda:invoke
            Parameters:
              Payload.$: $
              FunctionName: ${CheckStockValue}
            Next: Choice
          ...
      DefinitionSubstitutions:
        CheckStockValue: !GetAtt CheckStockValue.Arn
        ...
  CheckStockValue:
    Type: AWS::Serverless::Function
    Properties:
      ...
```

### 外部ファイルの使用
<a name="using-composer-services-sf-use-external"></a>

**Step Functions ステートマシン**カードからワークフローを作成すると、Infrastructure Composer は `Definition`プロパティを使用してステートマシン定義をテンプレート内に保存します。ステートマシン定義を外部ファイルに保存するように Infrastructure Composer を設定できます。

**注記**  
から Infrastructure Composer でこの機能を使用するには AWS マネジメントコンソール、**ローカル同期**を有効にする必要があります。詳細については、「[Infrastructure Composer コンソールでプロジェクトをローカルに同期して保存する](using-composer-project-local-sync.md)」を参照してください。

**ステートマシン定義を外部ファイルに保存するには**

1. **Step Functions ステートマシン**カードの**リソースプロパティ**パネルを開きます。

1. **ステートマシン定義に外部ファイルを使用する**オプションを選択します。

1. ステートマシン定義ファイルの相対パスと名前を指定します。

1. **[保存]** を選択します。

Infrastructure Composer は以下を実行します。

1. ステートマシン定義を `Definition`フィールドから外部ファイルに移動します。

1. Amazon States Language を使用して、ステートマシン定義を外部ファイルに保存します。

1. `DefinitionUri` フィールドを使用して外部ファイルを参照するようにテンプレートを変更します。

## 詳細情報
<a name="using-composer-services-sf-learn"></a>

Infrastructure Composer の Step Functions の詳細については、以下を参照してください。
+ 「 *AWS Step Functions デベロッパーガイド*」の[「Infrastructure Composer Workflow Studioでの の使用](https://docs.aws.amazon.com/step-functions/latest/dg/use-wfs-in-app-composer.html)」。
+ *AWS Step Functions デベロッパーガイド*の[AWS SAM 「テンプレートの DefinitionSubstitutions](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-sam-sfn.html#sam-definition-substitution-eg)」。