

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

# を使用してカスタムコンポーネントを開発するための手動セットアップ AWSTOE
<a name="toe-get-started"></a>

 AWS Task Orchestrator and Executor （AWSTOE) アプリケーションは、コンポーネント定義フレームワーク内でコマンドを作成、検証、実行するスタンドアロンアプリケーションです。 AWS のサービスでは、 AWSTOE を使用してワークフローのオーケストレーション、ソフトウェアのインストール、システム設定の変更、イメージビルドのテストを行うことができます。

 AWSTOE アプリケーションを手動でインストールし、カスタムコンポーネントを開発するためのスタンドアロンアプリケーションとして使用するには、次の手順に従います。Image Builder コンソールまたは AWS CLI コマンドを使用してカスタムコンポーネントを作成する場合、Image Builder はこれらのステップを自動的に処理します。詳細については、「[Image Builder を使用したカスタムコンポーネントの作成](create-component.md)」を参照してください。

**Topics**
+ [AWSTOE インストールダウンロードの署名を確認する](awstoe-verify-sig.md)
+ [ステップ 1: をインストールする AWSTOE](#toe-start-install)
+ [ステップ 2: AWS 認証情報を設定する](#toe-start-credentials)
+ [ステップ 3: コンポーネントドキュメントをローカルで開発する](#toe-start-develop)
+ [ステップ 4: AWSTOE コンポーネントを検証する](#toe-start-validate)
+ [ステップ 5: AWSTOE コンポーネントを実行する](#toe-start-run)

## ステップ 1: をインストールする AWSTOE
<a name="toe-start-install"></a>

コンポーネントをローカルで開発するには、 AWSTOE アプリケーションをダウンロードしてインストールします。

1. 

**AWSTOE アプリケーションをダウンロードする**

   インストールするには AWSTOE、アーキテクチャとプラットフォームに適したダウンロードリンクを選択します。アプリケーションのダウンロードリンクの詳細なリストについては、「[AWSTOE ダウンロード](toe-component-manager.md#toe-downloads)」を参照してください。
**重要**  
AWS は TLS バージョン 1.0 および 1.1 のサポートを段階的に廃止しています。 AWSTOE ダウンロード用に S3 バケットにアクセスするには、クライアントソフトウェアで TLS バージョン 1.2 以降を使用する必要があります。詳細については、[AWS セキュリティのブログ記事](https://aws.amazon.com/blogs/security/tls-1-2-required-for-aws-endpoints/)を参照してください。

1. 

**署名を検証する**

   ダウンロードを検証する手順は、インストール後に AWSTOE アプリケーションを実行するサーバープラットフォームによって異なります。Linux サーバーでダウンロードを確認する方法については、「[Linux または macOS での署名の検証](awstoe-verify-sig.md#awstoe-verify-sig-linux)」を参照してください。Windows サーバーでダウンロードを確認する方法については、「[Windows で署名を検証する](awstoe-verify-sig.md#awstoe-verify-sig-win)」を参照してください。

**注記**  
AWSTOE は、ダウンロード場所から直接呼び出されます。別途インストールを行う必要はありません。つまり、 はローカル環境を変更 AWSTOE することもできます。  
コンポーネント開発中に変更を確実に分離するには、EC2 インスタンスを使用して AWSTOE コンポーネントを開発およびテストすることをお勧めします。

## ステップ 2: AWS 認証情報を設定する
<a name="toe-start-credentials"></a>

 AWSTOE では AWS のサービス、次のようなタスクを実行するときに、Amazon S3 や Amazon CloudWatch などの他の に接続するための AWS 認証情報が必要です。
+ ユーザー提供の Amazon S3 パスから AWSTOE ドキュメントをダウンロードします。
+ `S3Download` または `S3Upload` アクションモジュールを実行する。
+ CloudWatch にログをストリーミングします (有効になっている場合)。

EC2 インスタンス AWSTOE で実行している場合、 の実行は EC2 インスタンスにアタッチされた IAM ロールと同じアクセス許可 AWSTOE を使用します。

EC2 の IAM ロールの詳細については、「[Amazon EC2 向けの IAM ロール](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html)」を参照してください。

次の例は、 `AWS_ACCESS_KEY_ID`および `AWS_SECRET_ACCESS_KEY`環境変数を使用して AWS 認証情報を設定する方法を示しています。

これらの変数を Linux、macOS、または Unix で設定するには、`export` を使用します。

```
export AWS_ACCESS_KEY_ID=your_access_key_id
```

```
export AWS_SECRET_ACCESS_KEY=your_secret_access_key
```

Windows で PowerShell を使ってこれらの変数を設定するには、`$env`を使う。

```
$env:AWS_ACCESS_KEY_ID=your_access_key_id
```

```
$env:AWS_SECRET_ACCESS_KEY=your_secret_access_key
```

Windows でコマンドプロンプトを使ってこれらの変数を設定するには、`set`を使う。

```
set AWS_ACCESS_KEY_ID=your_access_key_id
```

```
set AWS_SECRET_ACCESS_KEY=your_secret_access_key
```

## ステップ 3: コンポーネントドキュメントをローカルで開発する
<a name="toe-start-develop"></a>

コンポーネントは、プレーンテキストの YAML ドキュメントを使用して作成されます。ドキュメントの構文については[カスタム AWSTOE コンポーネントのコンポーネントドキュメントフレームワークを使用する](toe-use-documents.md)を参照。

以下は、開発の開始点として役立つ *Hello World* コンポーネントドキュメントの例です。

------
#### [ Linux ]

このガイドの Linux 用のコンポーネント例の一部は、`hello-world-linux.yml` という名前のコンポーネントドキュメントファイルを参照しています。これらの例を試すには、次のドキュメントを使用できます。

```
name: Hello World
description: This is hello world testing document for Linux.
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo 'Hello World from the build phase.'
  - name: validate
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo 'Hello World from the validate phase.'
  - name: test
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo 'Hello World from the test phase.'
```

------
#### [ Windows ]

このガイドの Windows 用のコンポーネント例の一部は、`hello-world-windows.yml` という名前のコンポーネントドキュメントファイルを参照しています。これらの例を試すには、次のドキュメントを使用できます。

```
name: Hello World
description: This is Hello World testing document for Windows.
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: HelloWorldStep
        action: ExecutePowerShell
        inputs:
          commands:
            - Write-Host 'Hello World from the build phase.'
  - name: validate
    steps:
      - name: HelloWorldStep
        action: ExecutePowerShell
        inputs:
          commands:
            - Write-Host 'Hello World from the validate phase.'
  - name: test
    steps:
      - name: HelloWorldStep
        action: ExecutePowerShell
        inputs:
          commands:
            - Write-Host 'Hello World from the test phase.'
```

------
#### [ macOS ]

このガイドの macOS 用のコンポーネント例の一部は、`hello-world-macos.yml` という名前のコンポーネントドキュメントファイルを参照しています。これらの例を試すには、次のドキュメントを使用できます。

```
name: Hello World
description: This is hello world testing document for macOS.
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo 'Hello World from the build phase.'
  - name: validate
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo 'Hello World from the validate phase.'
  - name: test
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo 'Hello World from the test phase.'
```

------

## ステップ 4: AWSTOE コンポーネントを検証する
<a name="toe-start-validate"></a>

アプリケーションの AWSTOE コンポーネント構文を AWSTOE ローカルで検証できます。次の例は、コンポーネントを実行せずに構文を検証するための AWSTOE アプリケーション`validate`コマンドを示しています。

**注記**  
 AWSTOE アプリケーションは、現在のオペレーティングシステムのコンポーネント構文のみを検証できます。例えば、`awstoe.exe` を Windows で実行している場合、`ExecuteBash` アクションモジュールを使用する Linux ドキュメントの構文は検証できません。

Linux または macOS

```
awstoe validate --documents /home/user/hello-world.yml
```

Windows

```
awstoe.exe validate --documents C:\Users\user\Documents\hello-world.yml
```

## ステップ 5: AWSTOE コンポーネントを実行する
<a name="toe-start-run"></a>

 AWSTOE アプリケーションは、`--phases`コマンドライン引数を使用して、指定されたドキュメントの 1 つ以上のフェーズを実行できます。`--phases`でサポートされている値は`build`、`validate`、`test`です。複数のフェーズ値をカンマで区切って入力できます。

フェーズのリストを指定すると、 AWSTOE アプリケーションは各ドキュメントの指定されたフェーズを順番に実行します。たとえば、 は の `build`および `validate`フェーズ AWSTOE を実行し`document1.yaml`、その後に の `build`および `validate`フェーズを実行します`document2.yaml`。

ログを安全に保存し、トラブルシューティングのために保持するには、Amazon S3 にログストレージを設定することをお勧めします。Image Builder では、ログを発行するための Amazon S3 の場所はインフラストラクチャ設定で指定されます。インフラ構成の詳細については、[Image Builder インフラストラクチャ設定の管理](manage-infra-config.md)を参照。

フェーズのリストが指定されていない場合、 AWSTOE アプリケーションは YAML ドキュメントに記載されている順序ですべてのフェーズを実行します。

1 つまたは複数のドキュメントで特定のフェーズを実行するには、以下のコマンドを使用します。

単一フェーズ

```
awstoe run --documents hello-world.yml --phases build
```

複数フェーズ

```
awstoe run --documents {{hello-world.yml}} --phases build,test
```

**ドキュメント実行**  
1 つのドキュメントですべてのフェーズを実行

```
awstoe run --documents {{documentName.yaml}}
```

複数のドキュメントで全フェーズを実行

```
awstoe run --documents {{documentName1.yaml}},{{documentName2.yaml}}
```

Amazon S3 情報を入力して、ユーザー定義のローカルパスから AWSTOE ログをアップロードする (推奨）

```
awstoe run --documents {{documentName.yaml}} --log-s3-bucket-name {{amzn-s3-demo-destination-bucket}} --log-s3-key-prefix {{S3KeyPrefix}} --log-s3-bucket-owner {{S3BucketOwner}} --log-directory {{local_path}}
```

1 つのドキュメントですべてのフェーズを実行し、すべてのログをコンソールに表示する

```
awstoe run --documents {{documentName.yaml}} --trace
```

コマンドの例

```
awstoe run --documents {{s3://bucket/key/doc.yaml}} --phases {{build,validate}}
```

一意の ID でドキュメントを実行

```
awstoe run --documents {{documentName.yaml}} --execution-id {{user-provided-id}} --phases {{build,test}}
```

のヘルプを取得する AWSTOE

```
awstoe --help
```