でカスタムコンポーネントを開発するための手動セットアップ AWSTOE - EC2 イメージビルダー

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

でカスタムコンポーネントを開発するための手動セットアップ AWSTOE

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

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

ステップ 1: をインストールする AWSTOE

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

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

    インストールするには AWSTOE、アーキテクチャとプラットフォームに適したダウンロードリンクを選択します。アプリケーションのダウンロードリンクの詳細なリストについては、「AWSTOE ダウンロード」を参照してください。

    重要

    AWS は TLS バージョン 1.0 および 1.1 のサポートを段階的に廃止しています。 AWSTOE ダウンロード用に S3 バケットにアクセスするには、クライアントソフトウェアで TLS バージョン 1.2 以降を使用する必要があります。詳細については、AWS セキュリティのブログ記事を参照してください。

  2. 署名を検証する

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

注記

AWSTOE は、ダウンロード場所から直接呼び出されます。別途インストールを行う必要はありません。つまり、 はローカル環境を変更 AWSTOE することもできます。

コンポーネント開発中に変更を確実に分離するには、EC2 インスタンスを使用して AWSTOE コンポーネントを開発およびテストすることをお勧めします。

ステップ 2: AWS 認証情報を設定する

AWSTOE では AWS のサービス、タスクを実行するときに、Amazon S3 や Amazon CloudWatch などの他の に接続するための AWS 認証情報が必要です。

  • ユーザー提供の Amazon S3 パスから AWSTOE ドキュメントをダウンロードする。

  • S3Download または S3Upload アクションモジュールを実行する。

  • CloudWatch にログをストリーミングします (有効になっている場合)。

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

EC2 の IAM ロールの詳細については、「Amazon EC2 向けの IAM ロール」を参照してください。

次の例は、 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: コンポーネントドキュメントをローカルで開発する

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

以下は、開発の開始点として役立つ 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 コンポーネントを検証する

アプリケーションの 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 コンポーネントを実行する

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

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

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

フェーズのリストが指定されていない場合、 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