

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在 AWS CodePipeline 中產生 的入門管道 AWS SAM
<a name="serverless-generating-example-ci-cd-codepipeline"></a>

若要產生 的入門管道組態 AWS CodePipeline，請依此順序執行下列任務：

1. 建立基礎設施資源

1. 產生管道組態

1. 將您的管道組態遞交至 Git

1. 將您的 Git 儲存庫與您的 CI/CD 系統連線

**注意**  
下列程序使用兩個 AWS SAM CLI命令 `sam pipeline bootstrap`和 `sam pipeline init`。有兩個命令的原因是處理使用案例，其中管理員 （即需要許可來設定基礎設施 AWS 資源的使用者，例如 IAM 使用者和角色） 擁有更多許可，開發人員 （即只需要許可來設定個別管道，但不需要必要基礎設施 AWS 資源的使用者）。

## 步驟 1：建立基礎設施資源
<a name="generating-example-step-1"></a>

使用 的管道 AWS SAM 需要特定 AWS 資源，例如具有必要許可的 IAM 使用者和角色、Amazon S3 儲存貯體，以及選用的 Amazon ECR 儲存庫。您必須針對管道的每個部署階段擁有一組基礎設施資源。

您可以執行下列命令來協助進行此設定：

```
sam pipeline bootstrap
```

**注意**  
針對管道的每個部署階段執行先前的命令。

## 步驟 2：產生管道組態
<a name="generating-example-step-2"></a>

若要產生管道組態，請執行下列命令：

```
sam pipeline init
```

## 步驟 3：將您的管道組態遞交至 Git 儲存庫
<a name="generating-example-step-3"></a>

此步驟是必要的，以確保您的 CI/CD 系統知道您的管道組態，並在遞交變更時執行。

## 步驟 4：將 Git 儲存庫與您的 CI/CD 系統連線
<a name="generating-example-step-4"></a>

對於 AWS CodePipeline ，您現在可以執行下列命令來建立連線：

```
sam deploy -t codepipeline.yaml --stack-name <pipeline-stack-name> --capabilities=CAPABILITY_IAM --region <region-X>
```

如果您使用的是 GitHub 或 Bitbucket，則先前執行 **sam deploy**命令後，請依照*開發人員工具主控台使用者指南*中的更新待定連線主題中的**完成連線**步驟，完成連線。 [https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-update.html](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-update.html)此外，請存放`CodeStarConnectionArn`來自 **sam deploy**命令輸出的 複本，因為如果您想要 AWS CodePipeline 搭配 以外的其他分支使用 ，則需要它`main`。

## 設定其他分支
<a name="configuring-other-branches"></a>

根據預設， AWS CodePipeline 會使用 `main`分支 AWS SAM。如果您想要使用 以外的分支`main`，您必須再次執行 **sam deploy**命令。請注意，視您使用的 Git 儲存庫而定，您可能還需要提供 `CodeStarConnectionArn`：

```
# For GitHub and Bitbucket
sam deploy -t codepipeline.yaml --stack-name <feature-pipeline-stack-name> --capabilities=CAPABILITY_IAM --parameter-overrides="FeatureGitBranch=<branch-name> CodeStarConnectionArn=<codestar-connection-arn>"

# For AWS CodeCommit
sam deploy -t codepipeline.yaml --stack-name <feature-pipeline-stack-name> --capabilities=CAPABILITY_IAM --parameter-overrides="FeatureGitBranch=<branch-name>"
```

## 進一步了解
<a name="serverless-generating-cicd-learn"></a>

如需設定 CI/CD 管道的實作範例，請參閱*完成 AWS SAM 研討會*中的[使用 CI/CD AWS CodePipeline](https://catalog.workshops.aws/complete-aws-sam/en-US/module-4-cicd)。