自定义入门管道 - Amazon Serverless Application Model
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

自定义入门管道

作为 CI/CD 管理员,您可能想自定义入门管道模板和相关的指导性提示,从而让组织中的开发人员可以使用它们来创建管道配置。

在创建入门模板时 Amazon SAM CLI 使用 Cookiecutter 模板。有关 cookiecutter 模板的详细信息,请访问 Cookiecutter

您还可以自定义使用 sam pipeline init 命令创建管道配置时 Amazon SAM CLI 向用户显示的提示。要自定义用户提示,请执行以下操作:

  1. 创建 questions.json 文件 – 该 questions.json 文件必须位于项目存储库的根目录中。这是与 cookiecutter.json 文件相同的目录。要查看 questions.json 文件的架构,请参阅 questions.json.schema。要查看示例 questions.json 文件,请参阅 questions.json

  2. 使用 cookiecutter 名称映射问题键questions.json 文件中的每个对象都需要一个与 cookiecutter 模板中的名称相匹配的键。这种键匹配即 Amazon SAM CLI 如何将用户提示响应映射到 cookiecutter 模板。要查看此键匹配示例,请参阅本主题后面的 示例文件 部分。

  3. 创建 metadata.json 文件 – 在 metadata.json 文件中声明管道将包含的阶段数。阶段数指示 sam pipeline init 命令提示多少阶段的信息,或者如果是 --bootstrap 选项,则为多少阶段创建基础架构资源。要查看声明具有两个阶段的管道的示例 metadata.json 文件,请参阅 metadata.json

示例项目

以下是示例项目,每个项目都包含一个 Cookiecutter 模板、一个 questions.json 文件和一个 metadata.json 文件:

示例文件

以下一组文件显示了 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}}' ...