を使用してカスタムコンポーネントを開発するための手動セットアップ AWSTOE - EC2 Image Builder

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

を使用してカスタムコンポーネントを開発するための手動セットアップ 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 で署名を検証する」を参照してください。Windows サーバーでダウンロードを確認する方法については、「Windows で署名を検証する」を参照してください。

重要

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

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

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

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

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

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

  • 有効にすると CloudWatch、ログを にストリーミングします。

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

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

次の例は、 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

C:\> $env:AWS_ACCESS_KEY_ID=your_access_key_id
C:\> $env:AWS_SECRET_ACCESS_KEY=your_secret_access_key

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

C:\> set AWS_ACCESS_KEY_ID=your_access_key_id
C:\> set AWS_SECRET_ACCESS_KEY=your_secret_access_key

ステップ 3: コンポーネントドキュメントをローカルで開発する

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

以下は、使用開始に役立つ Hello World コンポーネントドキュメントの例です。

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.'

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.'

ステップ 4: AWSTOE コンポーネントを検証する

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

注記

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

Windows

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

Linux

$ awstoe validate --documents /home/user/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 <S3Bucket> --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 <comma separated list of phases>

のヘルプを取得する AWSTOE

awstoe --help