

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 를 사용하여 스타터 파이프라인을 사용자 지정하는 방법 AWS SAM
<a name="serverless-customizing-starter-pipelines"></a>

CI/CD 관리자는 조직의 개발자가 파이프라인 구성을 생성하는 데 사용할 수 있는 스타터 파이프라인 템플릿과 관련 안내 프롬프트를 사용자 지정할 수 있습니다.

 AWS SAMCLI는 스타터 템플릿을 생성할 때 Cookiecutter 템플릿을 사용합니다. 쿠키 커터 템플릿에 대한 자세한 내용은 [Cookiecutter](https://cookiecutter.readthedocs.io/en/latest/README.html) 섹션을 참조하세요.

`sam pipeline init` 명령을 사용하여 파이프라인 구성을 생성할 때 AWS SAMCLI가 사용자에게 표시하는 프롬프트를 사용자 지정할 수도 있습니다. 사용자 프롬프트를 사용자 지정하려면 다음을 수행합니다.

1. **`questions.json` 파일 만들기** - `questions.json` 파일은 프로젝트 저장소의 루트에 있어야 합니다. `cookiecutter.json` 파일과 동일한 디렉터리에 있습니다. `questions.json` 파일의 스키마를 보려면 [questions.json.schema](https://github.com/aws/aws-sam-cli/blob/2b831b29f76ac9c4e0cbcbd68b37f8f664e136d8/samcli/lib/pipeline/init/questions.json.schema)를 참조합니다. 예제 `questions.json` 파일을 보려면 [questions.json](https://github.com/aws/aws-sam-cli-pipeline-init-templates/blob/main/Jenkins/two-stage-pipeline-template/questions.json)을 참조합니다.

1. **질문 키와 쿠키 커터 이름 매핑** - `questions.json`파일의 각 객체에는 쿠키 커터 템플릿의 이름과 일치하는 키가 필요합니다. 이 키 매칭은 AWS SAMCLI가 사용자 프롬프트 응답을 쿠키 커터 템플릿에 매핑하는 방식입니다. 이 키 매칭의 예를 보려면 이 주제의 [예제 파일](#serverless-customizing-starter-pipelines-example-files) 섹션을 참조하세요.

1. **`metadata.json` 파일 만들기** - 파이프라인이 `metadata.json` 파일에 포함할 단계 수를 선언합니다. 단계의 수는 `sam pipeline init` 명령에 정보를 표시할 단계 수를 지정하거나, `--bootstrap` 옵션의 경우 인프라 리소스를 생성할 단계의 수를 지정합니다. 2단계로 구성된 파이프라인을 선언하는 예제 `metadata.json` 파일을 보려면 [metadata.json](https://github.com/aws/aws-sam-cli-pipeline-init-templates/blob/main/Jenkins/two-stage-pipeline-template/metadata.json)을 참조하세요.

## 예제 프로젝트
<a name="serverless-customizing-starter-pipelines-example-projects"></a>

다음은 Cookiecutter 템플릿, `questions.json` 파일, `metadata.json` 파일을 포함하는 예제 프로젝트입니다.
+ Jenkins 예제: [2단계 Jenkins 파이프라인 템플릿](https://github.com/aws/aws-sam-cli-pipeline-init-templates/tree/main/Jenkins/two-stage-pipeline-template)
+ CodePipeline 예제: [ 2단계 CodePipeline 파이프라인 템플릿](https://github.com/aws/aws-sam-cli-pipeline-init-templates/tree/main/AWS-CodePipeline/two-stage-pipeline-template)

## 예제 파일
<a name="serverless-customizing-starter-pipelines-example-files"></a>

다음 파일 세트는 `questions.json` 파일의 질문이 Cookiecutter 템플릿 파일의 항목과 어떻게 연관되는지를 보여줍니다. 참고로 이 예제는 전체 파일이 아닌 파일 스니펫입니다. 전체 파일의 예제를 보려면 이 주제의 앞부분에 나오는 [예제 프로젝트](#serverless-customizing-starter-pipelines-example-projects) 섹션을 참조하세요.

예 **`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}}'
    ...
```