翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
でスターターパイプラインをカスタマイズする方法 AWS SAM
CI/CD 管理者は、組織内のデベロッパーがパイプライン構成を作成するために使用できる、スターターパイプラインテンプレートおよび関連するガイド付きプロンプトをカスタマイズできます。
AWS SAM CLI は、スターターテンプレートの作成時に Cookiecutter テンプレートを使用します。クッキーカッターテンプレートの詳細については、Cookiecutter
また、sam pipeline init コマンドを使用してパイプライン設定を作成するときに、 AWS SAM CLI がユーザに表示するプロンプトをカスタマイズすることもできます。ユーザプロンプトをカスタマイズするには、次の操作を行います。
-
questions.jsonファイルの作成 –questions.jsonファイルはプロジェクトリポジトリのルートにある必要があります。これは、cookiecutter.jsonファイルと同じディレクトリです。questions.jsonファイルのスキーマを表示するには、「questions.json.schema」を参照してください。 questions.jsonファイルの例を表示するには、「questions.json」を参照してください。 -
質問キーをクッキーカッターの名前でマッピングする –
questions.jsonファイル内の各オブジェクトには cookieCutter テンプレートの名前と一致するキーが必要です。このキーマッチングは、 AWS SAM CLI が、ユーザプロンプトのレスポンスを Cookie Cutter テンプレートにマッピングする方法です。このキーマッチングの例については、このトピックの後半の ファイルの例 セクション。 -
metadata.jsonファイルの作成 – パイプラインがmetadata.jsonファイルで持つステージ数を宣言します。ステージ数は、sam pipeline initコマンドに、インフラストラクチャリソースを作成するステージ数に関する情報を求めるステージ数、または--bootstrapオプションの場合はステージ数を指示します。metadata.json2 つのステージを持つパイプラインを宣言する ファイルの例については、metadata.jsonを参照してください。
プロジェクトの例
以下に、Cookiecutter テンプレート、questions.json ファイル、および metadata.json ファイルをそれぞれ含むプロジェクトの例を示します。
-
Jenkins の例: 2 段階の Jenkins パイプラインテンプレート
-
CodePipeline の例: 2 段階の CodePipeline パイプラインテンプレート
ファイルの例
次の一連のファイルは、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}}' ...