기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWS SAM에서 스타터 파이프라인을 사용자 지정하는 방법
CI/CD 관리자는 조직의 개발자가 파이프라인 구성을 생성하는 데 사용할 수 있는 스타터 파이프라인 템플릿과 관련 안내 프롬프트를 사용자 지정할 수 있습니다.
AWS SAM CLI는 스타터 템플릿을 생성할 때 Cookiecutter 템플릿을 사용합니다. 쿠키 커터 템플릿에 대한 자세한 내용은 Cookiecutter
sam pipeline init 명령을 사용하여 파이프라인 구성을 생성할 때 AWS SAM CLI가 사용자에게 표시하는 프롬프트를 사용자 지정할 수도 있습니다. 사용자 프롬프트를 사용자 지정하려면 다음을 수행합니다.
-
questions.json파일 만들기 -questions.json파일은 프로젝트 저장소의 루트에 있어야 합니다.cookiecutter.json파일과 동일한 디렉터리에 있습니다.questions.json파일의 스키마를 보려면 questions.json.schema를 참조합니다. 예제 questions.json파일을 보려면 questions.json을 참조합니다. -
질문 키와 쿠키 커터 이름 매핑 -
questions.json파일의 각 객체에는 쿠키 커터 템플릿의 이름과 일치하는 키가 필요합니다. 이 키 매칭은 AWS SAM CLI가 사용자 프롬프트 응답을 쿠키 커터 템플릿에 매핑하는 방식입니다. 이 키 매칭의 예를 보려면 이 주제의 예제 파일 섹션을 참조하세요. -
metadata.json파일 만들기 - 파이프라인이metadata.json파일에 포함할 단계 수를 선언합니다. 단계의 수는sam pipeline init명령에 정보를 표시할 단계 수를 지정하거나,--bootstrap옵션의 경우 인프라 리소스를 생성할 단계의 수를 지정합니다. 2단계로 구성된 파이프라인을 선언하는 예제metadata.json파일을 보려면 metadata.json을 참조하세요.
예제 프로젝트
다음은 Cookiecutter 템플릿, questions.json 파일, metadata.json 파일을 포함하는 예제 프로젝트입니다.
-
Jenkins 예제: 2단계 Jenkins 파이프라인 템플릿
-
CodePipeline 예제: 2단계 CodePipeline 파이프라인 템플릿
예제 파일
다음 파일 세트는 questions.json 파일의 질문이 Cookiecutter 템플릿 파일의 항목과 어떻게 연관되는지를 보여줍니다. 참고로 이 예제는 전체 파일이 아닌 파일 스니펫입니다. 전체 파일의 예제를 보려면 이 주제의 앞부분에 나오는 예제 프로젝트 섹션을 참조하세요.
예 questions.json:
{ "questions": [{ "key": "intro", "question": "\nThis template configures a pipeline that deploys a serverless application to a testing and a production stage.\n", "kind": "info" }, { "key": "pipeline_user_jenkins_credential_id", "question": "What is the Jenkins credential ID (via Jenkins plugin \"aws-credentials\") for pipeline user access key?", "isRequired": true }, { "key": "sam_template", "question": "What is the template file path?", "default": "template.yaml" }, { ...
예 cookiecutter.json:
{ "outputDir": "aws-sam-pipeline", "pipeline_user_jenkins_credential_id": "", "sam_template": "", ...
예 Jenkinsfile:
pipeline { agent any environment { PIPELINE_USER_CREDENTIAL_ID = '{{cookiecutter.pipeline_user_jenkins_credential_id}}' SAM_TEMPLATE = '{{cookiecutter.sam_template}}' ...