Como personalizar pipelines iniciais com o AWS SAM - AWS Serverless Application Model

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Como personalizar pipelines iniciais com o AWS SAM

Como administrador de CI/CD, talvez você queira personalizar um modelo inicial de pipeline e as instruções guiadas associadas que os desenvolvedores da sua organização possam usar para criar configurações de pipeline.

O AWS SAMCLI usa modelos Cookiecutter ao criar modelos iniciais. Para obter detalhes sobre o cookie cutter template, Cookiecutter.

Você também pode personalizar os prompts que AWS SAM CLI exibe aos usuários ao criar configurações de pipeline usando o comando sam pipeline init. Para personalizar os prompts do usuário, faça o seguinte:

  1. Criar um arquivo questions.json — O arquivo questions.json deve estar na raiz do repositório do projeto. Este é o mesmo diretório do arquivo cookiecutter.json. Para ver o esquema do arquivo questions.json, consulte questions.json.schema. Para ver um arquivo questions.json de exemplo, consulte questions.json.

  2. Mapeie chaves de pergunta com nomes de cookiecutter — Cada objeto no arquivo questions.json precisa de uma chave que corresponda a um nome no modelo cookiecutter. Essa combinação de teclas é a forma como AWS SAM CLI mapeia as respostas rápidas do usuário ao modelo do cortador de biscoitos. Para obter exemplo dessa correspondência de teclas, consulte a seção Exemplo de arquivos mais adiante neste tópico.

  3. Crie um metadata.json arquivo - Declare o número de estágios que o pipeline terá no arquivo metadata.json . O número de estágios instrui o comando sam pipeline init sobre quantos estágios solicitar informações ou, no caso da opção --bootstrap, para quantos estágios criar recursos de infraestrutura. Para ver um arquivo metadata.json de exemplo que declara um pipeline com dois estágios, consulte metadata.json.

Projetos de exemplo

Aqui estão exemplos de projetos, cada um incluindo um modelo Cookiecutter, um arquivo questions.json e um arquivo: metadata.json

Exemplo de arquivos

O conjunto de arquivos a seguir mostra como as perguntas no arquivo questions.json são associadas às entradas no arquivo de modelo Cookiecutter. Observe que esses exemplos são trechos de arquivo, não arquivos completos. Para ver exemplos de arquivos completos, consulte a seção Projetos de exemplo anterior neste tópico.

Exemplo de 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" }, { ...

Exemplo de cookiecutter.json:

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

Exemplo de Jenkinsfile:

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