

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

# 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)」。