

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

# 基礎設施佈建的 DPA
<a name="dpa-for-infrastructure"></a>

在 DPA 1.0.0 版中，提供基礎設施佈建管道的plug-and-play範本。這些範本遵循 DevOps 最佳實務，例如內建安全控制、自動化部署、版本控制和成品管理。

本節說明如何使用 DPA 實作基礎設施即程式碼 (IaC) 工具的集中式管道範本。DPA 支援廣泛使用的 IaC 工具，例如 Terraform AWS CDK和 CloudFormation。這些範本可隨 CI/CD 服務和工具使用，例如 AWS CodePipeline 和 GitLab CI/CD。

下圖顯示基礎設施佈建的 DPA 架構。您可以使用 CI/CD 管道範本，使用 Terraform、CodePipeline 和 佈建基礎設施 AWS CDK。



![\[基礎設施佈建的 DPA 架構。\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/devops-pipeline-accelerator/images/DPA-building-blocks-iac.png)


下圖顯示 Terraform 型應用程式的參考管道，它會使用 Terraform 進入點。在部署後階段結束時，程式碼會進入發行管道，以部署到預備和生產環境。



![\[以 Terraform 為基礎的應用程式的參考管道\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/devops-pipeline-accelerator/images/DPA-reference-pipeline-terraform.png)


使用 DPA 進行基礎設施佈建時，請注意下列事項：
+ 儲存庫中發生的事件類型會影響管道建構。例如，`pull`請求不會將資源佈建至 AWS 雲端。不過，當`pull`請求合併到主分支時，管道會將資源佈建到 AWS 雲端。
+ 管道使用 [tfsec](https://aquasecurity.github.io/tfsec/v1.28.4/)、[Checkov](https://www.checkov.io/1.Welcome/What%20is%20Checkov.html) 和 [Terrascan](https://runterrascan.io/docs/) 等安全掃描工具，在 Terraform 管道繼續部署之前套用安全控制。對於 CloudFormation，管道也會使用 [cfn\$1nag](https://github.com/stelligent/cfn_nag) 和 [cfn-lint](https://github.com/aws-cloudformation/cfn-lint)。對於 AWS CDK，管道也會使用 [cdk-nag](https://github.com/cdklabs/cdk-nag)。
+ DPA 會建立專用的 Docker 映像，並將其託管在 Amazon ECR 儲存庫上。這些 Docker 影像包含工具，例如 Terraform CLI AWS CLI和 AWS CDK Toolkit。無論您選擇哪個 CI/CD 解決方案，管道都會在執行時間使用這些工具。