기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Image Builder에서 사용자 지정 YAML 구성 요소에 대한 구성 요소 문서 생성
구성 요소를 빌드하려면 YAML 또는 JSON 애플리케이션 구성 요소 문서를 제공해야 합니다. 문서에는 이미지에 대한 사용자 지정을 제공하기 위해 정의한 단계에서 실행되는 코드가 포함되어 있습니다.
이 섹션의 일부 예제에서는 구성 요소 관리 애플리케이션에서 UpdateOS
작업 모듈을 호출하는 빌드 AWSTOE 구성 요소를 생성합니다. 이 모듈은 운영 체제를 업데이트합니다. UpdateOS
작업 모듈에 대한 자세한 내용은 UpdateOS 섹션을 참조하십시오.
macOS 운영 체제 예제에서는 ExecuteBash
작업 모듈을 사용하여 wget
유틸리티를 설치하고 확인합니다. UpdateOS
작업 모듈은 macOS를 지원하지 않습니다. ExecuteBash
작업 모듈에 대한 자세한 내용은 ExecuteBash 섹션을 참조하십시오. AWSTOE 애플리케이션 구성 요소 문서의 단계 및 구문에 대한 자세한 내용은 AWSTOE에서 문서 사용을 참조하십시오.
Image Builder는 구성 요소 문서에 정의된 단계를 기반으로 다음과 같이 구성 요소 유형을 결정합니다.
-
빌드 - 기본 구성 요소 유형입니다. 테스트 구성 요소로 분류되지 않은 모든 것은 빌드 구성 요소입니다. 이 유형의 구성 요소는 이미지 빌드 단계에서 실행됩니다. 이 빌드 구성 요소에 test
단계가 정의되어 있는 경우 해당 단계는 테스트 단계에서 실행됩니다.
-
테스트 - 테스트 구성 요소로 적합하려면 구성 요소 문서에 test
라는 이름의한 단계만 포함되어야 합니다. 빌드 구성 요소 구성과 관련된 테스트의 경우 독립형 테스트 구성 요소를 사용하지 않는 것이 좋습니다. 그보다는 연결된 빌드 구성 요소의 test
단계를 사용하십시오.
Image Builder에서 단계를 사용하여 빌드 프로세스에서 구성 요소 워크플로를 관리하는 방법에 대한 자세한 내용은 구성 요소를 사용하여 Image Builder 이미지 사용자 지정(을)를 참조하십시오.
샘플 YAML 애플리케이션에 대한 애플리케이션 구성 요소 문서를 생성하려면 이미지 운영 체제와 일치하는 탭의 단계를 따릅니다.
- Linux
-
YAML 구성 요소 파일 생성
파일 편집 도구를 사용하여 구성 요소 문서를 생성합니다. 설명서 예제에서는 update-linux-os.yaml
라는 파일을 다음 내용과 함께 사용합니다.
# Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: MIT-0
#
# Permission is hereby granted, free of charge, to any person obtaining a copy of this
# software and associated documentation files (the "Software"), to deal in the Software
# without restriction, including without limitation the rights to use, copy, modify,
# merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
# INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
# PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
name: update-linux-os
description: Updates Linux with the latest security updates.
schemaVersion: 1
phases:
- name: build
steps:
- name: UpdateOS
action: UpdateOS
# Document End
이 온라인 YAML 검사기와 같은 도구 또는 코드 환경의 YAML 린트 확장을 사용하여 YAML가 잘 구성되어 있는지 확인합니다.
- Windows
-
YAML 구성 요소 파일 생성
파일 편집 도구를 사용하여 구성 요소 문서를 생성합니다. 설명서 예제에서는 update-windows-os.yaml
라는 파일을 다음 내용과 함께 사용합니다.
# Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: MIT-0
#
# Permission is hereby granted, free of charge, to any person obtaining a copy of this
# software and associated documentation files (the "Software"), to deal in the Software
# without restriction, including without limitation the rights to use, copy, modify,
# merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
# INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
# PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
name: update-windows-os
description: Updates Windows with the latest security updates.
schemaVersion: 1.0
phases:
- name: build
steps:
- name: UpdateOS
action: UpdateOS
# Document End
이 온라인 YAML 검사기와 같은 도구 또는 코드 환경의 YAML 린트 확장을 사용하여 YAML가 잘 구성되어 있는지 확인합니다.
- macOS
-
YAML 구성 요소 파일 생성
파일 편집 도구를 사용하여 구성 요소 문서를 생성합니다. 설명서 예제에서는 wget-macos.yaml
라는 파일을 다음 내용과 함께 사용합니다.
name: WgetInstallDocument
description: This is wget installation document.
schemaVersion: 1.0
phases:
- name: build
steps:
- name: WgetBuildStep
action: ExecuteBash
inputs:
commands:
- |
PATH=/usr/local/bin:$PATH
sudo -u ec2-user brew install wget
- name: validate
steps:
- name: WgetValidateStep
action: ExecuteBash
inputs:
commands:
- |
function error_exit {
echo $1
echo "{\"failureMessage\":\"$2\"}"
exit 1
}
type wget
if [ $? -ne 0 ]; then
error_exit "$stderr" "Wget installation failed!"
fi
- name: test
steps:
- name: WgetTestStep
action: ExecuteBash
inputs:
commands:
- wget -h
이 온라인 YAML 검사기와 같은 도구 또는 코드 환경의 YAML 린트 확장을 사용하여 YAML가 잘 구성되어 있는지 확인합니다.