Image Builder を使用してカスタムコンポーネントを作成する - EC2 Image Builder

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

Image Builder を使用してカスタムコンポーネントを作成する

コンポーネントドキュメントを完了したら、それを使用して、Image Builder レシピで使用できるカスタムコンポーネントを作成できます。Image Builder コンソール、API、または コマンドラインSDKsからカスタムコンポーネントを作成できます。入力パラメータを使用してカスタムコンポーネントを作成し、レシピで使用する方法の詳細については、「」を参照してくださいチュートリアル: 入力パラメータを使用してカスタムコンポーネントを作成する

以下のセクションでは、コンソールまたは からコンポーネントを作成する方法を示します AWS CLI。

コンソールからカスタムコンポーネントを作成する

Image Builder コンソールから AWSTOE アプリケーションコンポーネントを作成するには、次の手順に従います。

  1. で EC2 Image Builder コンソールを開きますhttps://console.aws.amazon.com/imagebuilder/

  2. ナビゲーションペインから コンポーネント を選択します。次に コンポーネントを作成 を選択します。

  3. コンポーネントの作成」ページの「コンポーネントの詳細」で、次のように入力します。

    1. イメージオペレーティングシステム (OS)。コンポーネントと互換性のあるオペレーティングシステムを指定します。

    2. コンポーネントカテゴリ。ドロップダウンから、作成するビルドコンポーネントまたはテストコンポーネントのタイプを選択します。

    3. コンポーネント名。コンポーネントの名前を入力します。

    4. コンポーネントのバージョン。コンポーネントのバージョン番号を入力します。

    5. 説明。ジョブの説明を追加して、ジョブを識別することも可能です。

    6. 説明の変更。このバージョンのコンポーネントに加えられた変更点を理解しやすいように、オプションで説明を入力します。

  4. 定義文書」セクションのデフォルトオプションは「文書コンテンツの定義」です。コンポーネントドキュメントは、イメージを作成するために Image Builder がビルドインスタンスとテストインスタンスで実行するアクションを定義します。

    コンテンツボックスに、YAMLコンポーネントドキュメントのコンテンツを入力します。Linux 用の Hello World サンプルから始めるには、「サンプルを使用する」オプションを選択します。YAML コンポーネントドキュメントを作成する方法、またはそのページから UpdateOS の例をコピーして貼り付ける方法については、「」を参照してくださいImage Builder でカスタムYAMLコンポーネントのコンポーネントドキュメントを作成する

  5. コンポーネントの詳細を入力したら、「コンポーネントを作成」を選択します。

    注記

    レシピを作成または更新するときに新しいコンポーネントを表示するには、ビルドまたはテスト用のコンポーネントリストに Owned by me フィルタを適用します。フィルタは、コンポーネントリストの上部にある、検索ボックスの横にあります。

  6. コンポーネントを削除するには、コンポーネント ページで、削除するコンポーネントの横にあるチェックボックスをオンにします。 Actions (アクション)ドロップダウンから Deploy API ( デプロイAPI )を選択します。

コンポーネントを更新する

新しいコンポーネントバージョンを作成するには、次の手順に従います。

  1. どこから始めるかによって:

    • コンポーネントリストページから — コンポーネント名の横にあるチェックボックスを選択し、「アクション」メニューから「新規バージョンを作成」を選択します。

    • コンポーネントの詳細ページから — 見出しの右上隅にある 新規バージョンを作成 ボタンをクリックします。

  2. Create Component」ページが表示されると、コンポーネント情報には現在の値が既に入力されています。「コンポーネントを作成」の手順に従って、コンポーネントを更新します。これにより、コンポーネントバージョンには固有のセマンティックバージョンを確実に入力できます。Image Builder リソースのセマンティックバージョニングの詳細については、Image Builder でのセマンティックバージョニングを参照してください。

からカスタムコンポーネントを作成する AWS CLI

このセクションでは、次のように、 で Image Builder コマンドを設定して使用 AWS CLI して AWSTOE アプリケーションコンポーネントを作成する方法について説明します。

  • コマンドラインから参照できる S3 バケットにYAMLコンポーネントドキュメントをアップロードします。

  • create-component コマンドを使用して AWSTOE アプリケーションコンポーネントを作成します。

  • list-componentsコマンドと名前フィルタを使用してコンポーネントのバージョンを一覧表示し、既に存在するバージョンを確認します。この出力を使用して、更新に必要な次のバージョンを決定できます。

入力YAMLドキュメントから AWSTOE アプリケーションコンポーネントを作成するには、イメージオペレーティングシステムプラットフォームに一致するステップに従います。

Linux
アプリケーションコンポーネントドキュメントを Amazon S3 に保存する

S3 バケットは、 AWSTOE アプリケーションコンポーネントのソースドキュメントのリポジトリとして使用できます。コンポーネントドキュメントを保存するには、次の手順に従います。

  • ドキュメントを Amazon S3 にアップロードする

    ドキュメントが 64 KB 未満の場合は、このステップをスキップできます。64 KB とその以上のサイズのドキュメントは Amazon S3 に保存する必要があります。

    aws s3 cp update-linux-os.yaml s3://amzn-s3-demo-destination-bucket/my-path/update-linux-os.yaml
YAML ドキュメントからコンポーネントを作成する

で使用するcreate-componentコマンドを効率化するには AWS CLI、コマンドに渡すすべてのコンポーネントパラメータを含むJSONファイルを作成します。前のステップで作成したupdate-linux-os.yamlドキュメントの場所を含めてください。uriキー値のペアには、ファイル参照が含まれます。

注記

JSON ファイル内のデータ値の命名規則は、Image Builder APIアクションリクエストパラメータに指定されたパターンに従います。API コマンドリクエストパラメータを確認するには、EC2Image Builder APIリファレンスCreateComponent コマンドを参照してください。

データ値をコマンドラインパラメータとして指定するには、AWS CLI コマンドリファレンスで指定されているパラメータ名を参照してください。

  1. CLI 入力JSONファイルを作成する

    ファイル編集ツールを使用して、create-update-linux-os-component.json という名前のファイルを作成します。次の内容を含めます:

    { "name": "update-linux-os", "semanticVersion": "1.1.2", "description": "An example component that updates the Linux operating system", "changeDescription": "Initial version.", "platform": "Linux", "uri": "s3://amzn-s3-demo-destination-bucket/my-path/update-linux-os.yaml", "kmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/98765432-b123-456b-7f89-0123456f789c", "tags": { "MyTagKey-purpose": "security-updates" } }
    注記
    • JSON ファイルパスの先頭にfile://表記を含める必要があります。

    • JSON ファイルのパスは、コマンドを実行しているベースオペレーティングシステムの適切な規則に従う必要があります。例えば、Windows ではディレクトリパスを参照するためにバックスプラッシュ (|) が使用され、Linux ではフォーワードスラッシュ (/) が使用されます。

  2. コンポーネントを作成する

    次のコマンドを使用してコンポーネントを作成し、前のステップで作成したJSONファイルのファイル名を参照します。

    aws imagebuilder create-component --cli-input-json file://create-update-linux-os-component.json
    注記
    • JSON ファイルパスの先頭にfile://表記を含める必要があります。

    • JSON ファイルのパスは、コマンドを実行しているベースオペレーティングシステムの適切な規則に従う必要があります。例えば、Windows ではディレクトリパスを参照するためにバックスプラッシュ (|) が使用され、Linux ではフォーワードスラッシュ (/) が使用されます。

Windows
アプリケーションコンポーネントドキュメントを Amazon S3 に保存する

S3 バケットは、 AWSTOE アプリケーションコンポーネントのソースドキュメントのリポジトリとして使用できます。コンポーネントドキュメントを保存するには、次の手順に従います。

  • ドキュメントを Amazon S3 にアップロードする

    ドキュメントが 64 KB 未満の場合は、このステップをスキップできます。64 KB とその以上のサイズのドキュメントは Amazon S3 に保存する必要があります。

    aws s3 cp update-windows-os.yaml s3://amzn-s3-demo-destination-bucket/my-path/update-windows-os.yaml
YAML ドキュメントからコンポーネントを作成する

で使用するcreate-componentコマンドを効率化するには AWS CLI、コマンドに渡すすべてのコンポーネントパラメータを含むJSONファイルを作成します。前のステップで作成したupdate-windows-os.yamlドキュメントの場所を含めてください。uriキー値のペアには、ファイル参照が含まれます。

注記

JSON ファイル内のデータ値の命名規則は、Image Builder APIアクションリクエストパラメータに指定されたパターンに従います。API コマンドリクエストパラメータを確認するには、EC2Image Builder APIリファレンスCreateComponent コマンドを参照してください。

データ値をコマンドラインパラメータとして指定するには、AWS CLI コマンドリファレンスで指定されているパラメータ名を参照してください。

  1. CLI 入力JSONファイルを作成する

    ファイル編集ツールを使用して、create-update-windows-os-component.json という名前のファイルを作成します。次の内容を含めます:

    { "name": "update-windows-os", "semanticVersion": "1.1.2", "description": "An example component that updates the Windows operating system.", "changeDescription": "Initial version.", "platform": "Windows", "uri": "s3://amzn-s3-demo-destination-bucket/my-path/update-windows-os.yaml", "kmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/98765432-b123-456b-7f89-0123456f789c", "tags": { "MyTagKey-purpose": "security-updates" } }
    注記
    • JSON ファイルパスの先頭にfile://表記を含める必要があります。

    • JSON ファイルのパスは、コマンドを実行しているベースオペレーティングシステムの適切な規則に従う必要があります。例えば、Windows ではディレクトリパスを参照するためにバックスプラッシュ (|) が使用され、Linux ではフォーワードスラッシュ (/) が使用されます。

  2. コンポーネントを作成する

    次のコマンドを使用してコンポーネントを作成し、前のステップで作成したJSONファイルのファイル名を参照します。

    aws imagebuilder create-component --cli-input-json file://create-update-windows-os-component.json
    注記
    • JSON ファイルパスの先頭にfile://表記を含める必要があります。

    • JSON ファイルのパスは、コマンドを実行しているベースオペレーティングシステムの適切な規則に従う必要があります。例えば、Windows ではディレクトリパスを参照するためにバックスプラッシュ (|) が使用され、Linux ではフォーワードスラッシュ (/) が使用されます。

AWSTOE からの更新のコンポーネントバージョニング AWS CLI

AWSTOE コンポーネント名とバージョンは、コンポーネントのプレフィックスの後にコンポーネントの Amazon リソースネーム (ARN) に埋め込まれます。コンポーネントの新しいバージョンごとに、独自の がありますARN。新しいバージョンを作成する手順は、そのコンポーネント名に対してセマンティックバージョンが一意である限り、新しいコンポーネントを作成する手順と完全に同じです。Image Builder リソースのセマンティックバージョニングの詳細については、Image Builder でのセマンティックバージョニングを参照してください。

次の論理的なバージョンを割り当てるために、まず変更したいコンポーネントの既存のバージョンのリストを取得してください。で list-components コマンドを使用し AWS CLI、名前をフィルタリングします。

この例では、以前の Linux の例で作成したコンポーネントの名前をフィルタします。作成したコンポーネントを一覧表示するには、 create-component コマンドで使用したJSONファイルの nameパラメータの値を使用します。

aws imagebuilder list-components --filters name="name",values="update-linux-os" { "requestId": "123a4567-b890-123c-45d6-ef789ab0cd1e", "componentVersionList": [ { "arn": "arn:aws:imagebuilder:us-west-2:1234560087789012:component/update-linux-os/1.0.0", "name": "update-linux-os", "version": "1.0.0", "platform": "Linux", "type": "BUILD", "owner": "123456789012", "dateCreated": "2020-09-24T16:58:24.444Z" }, { "arn": "arn:aws:imagebuilder:us-west-2:1234560087789012:component/update-linux-os/1.0.1", "name": "update-linux-os", "version": "1.0.1", "platform": "Linux", "type": "BUILD", "owner": "123456789012", "dateCreated": "2021-07-10T03:38:46.091Z" } ] }

結果に基づいて、次のバージョンを決定できます。

スクリプトをインポートして からコンポーネントを作成する AWS CLI

シナリオによっては、既存のスクリプトから始める方が簡単な場合もあります。このシナリオでは、以下の例を使うことができます。

この例では、import-component.json (図のように) というファイルがあることを前提としています。ファイルは、 に既にアップロードされている という PowerShell スクリプトを直接参照AdminConfig.ps1することに注意してくださいamzn-s3-demo-source-bucket。現在、コンポーネントSHELLがサポートされているformat

{ "name": "MyImportedComponent", "semanticVersion": "1.0.0", "description": "An example of how to import a component", "changeDescription": "First commit message.", "format": "SHELL", "platform": "Windows", "type": "BUILD", "uri": "s3://amzn-s3-demo-source-bucket/AdminConfig.ps1", "kmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/60763706-b131-418b-8f85-3420912f020c" }

インポートされたスクリプトからコンポーネントを作成するには、次のコマンドを実行します。

aws imagebuilder import-component --cli-input-json file://import-component.json