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

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

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

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

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

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

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

  1. のダウンロード AWSTOE アプリケーション

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

    重要

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

  2. 署名を検証する

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

重要

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

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

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

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

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

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

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

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

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

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

これらの変数を 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 コンポーネントを実行せずに構文を検証する application 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 アプリケーションは、各ドキュメントの指定されたフェーズを順番に実行します。例えば、 などです AWSTOE は の buildおよび validateフェーズを実行し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