

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Cara menyesuaikan saluran pipa starter dengan AWS SAM
<a name="serverless-customizing-starter-pipelines"></a>

Sebagai CI/CD administrator, Anda mungkin ingin menyesuaikan template pipeline pemula, dan petunjuk terpandu terkait, yang dapat digunakan pengembang di organisasi Anda untuk membuat konfigurasi pipeline.

 AWS SAMCLIMenggunakan template Cookiecutter saat membuat template pemula. Untuk detail tentang template pemotong kue, [Cookiecutter](https://cookiecutter.readthedocs.io/en/latest/README.html).

Anda juga dapat menyesuaikan prompt yang AWS SAMCLI ditampilkan kepada pengguna saat membuat konfigurasi pipeline menggunakan perintah. `sam pipeline init` Untuk menyesuaikan permintaan pengguna, lakukan hal berikut:

1. **Buat `questions.json` file** — `questions.json` File harus berada di root respositori proyek. Ini adalah direktori yang sama dengan `cookiecutter.json` file. Untuk melihat skema `questions.json` file, lihat [questions.json.schema](https://github.com/aws/aws-sam-cli/blob/2b831b29f76ac9c4e0cbcbd68b37f8f664e136d8/samcli/lib/pipeline/init/questions.json.schema). Untuk melihat `questions.json` file contoh, lihat [questions.json](https://github.com/aws/aws-sam-cli-pipeline-init-templates/blob/main/Jenkins/two-stage-pipeline-template/questions.json).

1. **Peta kunci pertanyaan dengan nama cookiecutter** - Setiap objek dalam `questions.json` file membutuhkan kunci yang cocok dengan nama dalam template cookiecutter. Pencocokan kunci ini adalah bagaimana pengguna AWS SAMCLI memetakan tanggapan meminta ke template pemotong cookie. Untuk melihat contoh pencocokan kunci ini, lihat [Contoh file](#serverless-customizing-starter-pipelines-example-files) bagian nanti dalam topik ini. 

1. **Buat `metadata.json` file** — Deklarasikan jumlah tahapan yang akan dimiliki pipeline dalam file. `metadata.json` Jumlah tahapan menginstruksikan `sam pipeline init` perintah berapa banyak tahapan untuk meminta informasi tentang, atau dalam kasus `--bootstrap` opsi, berapa banyak tahapan untuk membuat sumber daya infrastruktur untuk. Untuk melihat `metadata.json` file contoh yang mendeklarasikan pipeline dengan dua tahap, lihat [metadata.json](https://github.com/aws/aws-sam-cli-pipeline-init-templates/blob/main/Jenkins/two-stage-pipeline-template/metadata.json).

## Contoh proyek
<a name="serverless-customizing-starter-pipelines-example-projects"></a>

Berikut adalah contoh proyek, yang masing-masing menyertakan template Cookiecutter, `questions.json` file, dan file: `metadata.json`
+ Contoh Jenkins: Template pipa [Jenkins dua tahap](https://github.com/aws/aws-sam-cli-pipeline-init-templates/tree/main/Jenkins/two-stage-pipeline-template)
+ CodePipeline contoh: [Template CodePipeline pipa dua tahap](https://github.com/aws/aws-sam-cli-pipeline-init-templates/tree/main/AWS-CodePipeline/two-stage-pipeline-template)

## Contoh file
<a name="serverless-customizing-starter-pipelines-example-files"></a>

Kumpulan file berikut menunjukkan bagaimana pertanyaan dalam `questions.json` file dikaitkan dengan entri dalam file template Cookiecutter. Perhatikan bahwa contoh ini adalah cuplikan file, bukan file lengkap. Untuk melihat contoh file lengkap, lihat [Contoh proyek](#serverless-customizing-starter-pipelines-example-projects) bagian sebelumnya dalam topik ini.

Contoh **`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"
  }, {
    ...
```

Contoh **`cookiecutter.json`**:

```
{
  "outputDir": "aws-sam-pipeline",
  "pipeline_user_jenkins_credential_id": "",
  "sam_template": "",
    ...
```

Contoh **`Jenkinsfile`**:

```
pipeline {
  agent any
  environment {
    PIPELINE_USER_CREDENTIAL_ID = '{{cookiecutter.pipeline_user_jenkins_credential_id}}'
    SAM_TEMPLATE = '{{cookiecutter.sam_template}}'
    ...
```