Tutorial: Criar um pipeline que é implantado no Service Catalog - AWS CodePipeline

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á.

Tutorial: Criar um pipeline que é implantado no Service Catalog

O Service Catalog permite criar e provisionar produtos com base em modelos do AWS CloudFormation. Este tutorial mostra como criar e configurar um pipeline para implantar o modelo do produto no Service Catalog e fornecer as alterações realizadas no repositório de origem (já criado no GitHub, no CodeCommit ou no Amazon S3).

nota

Quando o Amazon S3 é o provedor de origem do pipeline, é necessário fazer upload de todos os arquivos de origem do bucket empacotados como um único arquivo .zip. Caso contrário, a ação da origem falhará.

Primeiro, crie um produto no Service Catalog e depois crie um pipeline no AWS CodePipeline. Este tutorial fornece duas opções para definir a configuração de implantação:

Opção 1: Implantar no Service Catalog sem um arquivo de configuração

Neste exemplo, faça upload do arquivo do modelo do AWS CloudFormation de um bucket do S3 e, depois, crie o produto no Service Catalog. Depois, crie o pipeline e especifique a configuração de implantação no console do CodePipeline.

Etapa 1: Fazer upload do arquivo do modelo de exemplo no repositório de origem

  1. Abra um editor de texto. Crie um modelo de exemplo colando o seguinte no arquivo. Salve o arquivo como S3_template.json.

    { "AWSTemplateFormatVersion": "2010-09-09", "Description": "CloudFormation Sample Template S3_Bucket: Sample template showing how to create a privately accessible S3 bucket. **WARNING** This template creates an S3 bucket. You will be billed for the resources used if you create a stack from this template.", "Resources": { "S3Bucket": { "Type": "AWS::S3::Bucket", "Properties": {} } }, "Outputs": { "BucketName": { "Value": { "Ref": "S3Bucket" }, "Description": "Name of Amazon S3 bucket to hold website content" } } }

    Esse modelo permite que o AWS CloudFormation crie um bucket do S3 que pode ser usado pelo Service Catalog.

  2. Carregue o arquivo S3_template.json no repositório do AWS CodeCommit.

Etapa 2: Criar um produto no Service Catalog

  1. Como administrador de TI, faça login no console do Service Catalog, vá para a página Produtos e, depois, selecione Fazer upload de novo produto.

  2. Na página Upload new product (Carregar novo produto), conclua o seguinte:

    1. Em Product name (Nome do produto), insira o nome que você deseja usar para o seu novo produto.

    2. Em Description (Descrição), insira a descrição do catálogo de produtos. Essa descrição é mostrada na lista de produtos para ajudar o usuário a escolher o produto correto.

    3. Em Provided by (Oferecido por), digite o nome de seu departamento ou do administrador de TI.

    4. Escolha Next (Próximo).

  3. (Opcional) Em Enter support details (Inserir detalhes do suporte), insira as informações de contato para suporte ao produto e selecione Next (Próximo).

  4. Em Version details (Detalhes da versão), conclua o seguinte:

    1. Selecione Carregar um arquivo de modelo. Procure o arquivo S3_template.json e carregue-o.

    2. Em Version title (Título da versão), insira o nome da versão do produto (por exemplo, devops S3 v2).

    3. Em Description (Descrição), insira os detalhes que distinguem essa versão em relação às outras.

    4. Escolha Next (Próximo).

  5. Na página Review (Revisar), verifique se as informações estão corretas e escolha Create (Criar).

  6. Na página Products (Produtos), no navegador, copie o URL do seu novo produto. Ela contém o ID do produto. Copie e retenha esse ID de produto. É necessário usá-lo ao criar o pipeline no CodePipeline.

    Veja a seguir o URL para um produto chamado my-product. Para extrair o ID do produto, copie o valor entre o sinal de igual (=) e o E comercial (&). Neste exemplo, o ID do produto é prod-example123456.

    https://<region-URL>/servicecatalog/home?region=<region>#/admin-products?productCreated=prod-example123456&createdProductTitle=my-product
    nota

    Copie o URL para o produto antes de sair da página. Depois de sair dessa página, você deve usar a CLI para obter o ID do produto.

    Após alguns segundos, o produto será exibido na página Produtos. Talvez seja necessário atualizar o navegador para ver o produto na lista.

Etapa 3: Criar o pipeline

  1. Para nomear o pipeline e selecionar os parâmetros para o pipeline, faça o seguinte:

    1. Faça login no AWS Management Console e abra o console do CodePipeline em https://console.aws.amazon.com/codepipeline/.

    2. Escolha Conceitos básicos. Selecione Create pipeline (Criar pipeline) e insira um nome para seu pipeline.

    3. Em Tipo de pipeline, selecione V1 para os fins deste tutorial. Também é possível selecionar V2; no entanto, observe que os tipos de pipeline diferem em características e preços. Para obter mais informações, consulte Tipos de Pipeline.

    4. Em Perfil de serviço, selecione Novo perfil de serviço para permitir que o CodePipeline crie um perfil de serviço no IAM.

    5. Deixe as configurações em Advanced settings (Configurações avançadas) como padrão e escolha Next (Próximo).

  2. Para adicionar um estágio de origem, faça o seguinte:

    1. Em Source provider (Provedor de código-fonte), selecione AWS CodeCommit.

    2. Em Repository name (Nome do repositório) e Branch name (Nome da ramificação), insira o nome do repositório e a ramificação que deseja usar para sua ação de origem.

    3. Escolha Next (Próximo).

  3. Em Add build stage (Adicionar estágio de compilação), selecione Skip build stage (Ignorar estágio de compilação) e aceite a mensagem de aviso ao clicar novamente em Skip (Ignorar).

  4. Em Add deploy stage (Adicionar estágio de implantação), conclua o seguinte:

    1. Em Deploy provider (Fornecedor de implantação), escolha AWS Service Catalog.

    2. Para a configuração de implantação, escolha Enter deployment configuration (Inserir configuração de implantação).

    3. Em ID do produto, cole o ID do produto que você copiou no console do Service Catalog.

    4. Em Template file path (Caminho do arquivo do modelo), insira o caminho relativo em que o arquivo do modelo é armazenado.

    5. Em Tipo de produto, selecione Modelo do AWS CloudFormation.

    6. Em Nome da versão do produto, insira o nome da versão do produto que você especificou no Service Catalog. Se você deseja que a alteração do modelo seja implantada em uma nova versão do produto, insira um nome de versão do produto que não tenha sido usado em uma versão anterior do mesmo produto.

    7. Em Input artifact (Artefato de entrada), selecione o artefato de entrada de origem.

    8. Escolha Next (Próximo).

  5. Em Review (Revisão), revise as configurações do pipeline e, em seguida, selecione Create (Criar).

  6. Depois que o pipeline for executado com êxito, no estágio de implantação, selecione Details (Detalhes). O produto será aberto no Service Catalog.

    
              Visualizar o estágio de implantação do Service Catalog do pipeline
  7. Nas informações do produto, escolha o nome da versão para abrir o modelo do produto. Visualize a implantação do modelo.

Etapa 4: Enviar uma alteração e verificar o produto no Service Catalog

  1. Visualize o pipeline no console do CodePipeline e, no estágio de origem, selecione Detalhes. O seu repositório de origem do AWS CodeCommit abre no console. Selecione Edit (Editar) e faça uma alteração no arquivo (por exemplo, na descrição).

    "Description": "Name of Amazon S3 bucket to hold and version website content"
  2. Confirme e envie a alteração. O pipeline será iniciado depois que você enviar a alteração. Quando a execução do pipeline for concluída, no estágio de implantação, selecione Detalhes para abrir o produto no Service Catalog.

  3. Nas informações do produto, escolha o nome da nova versão para abrir o modelo do produto. Visualize a alteração do modelo implantada.

Opção 2: Implantar no Service Catalog sem um arquivo de configuração

Neste exemplo, faça upload do arquivo do modelo do AWS CloudFormation de um bucket do S3 e, depois, crie o produto no Service Catalog. Você também pode carregar um arquivo de configuração separado que especifica a configuração de implantação. Em seguida, crie o pipeline e especifique o local do seu arquivo de configuração.

Etapa 1: Fazer upload do arquivo do modelo de exemplo no repositório de origem

  1. Abra um editor de texto. Crie um modelo de exemplo colando o seguinte no arquivo. Salve o arquivo como S3_template.json.

    { "AWSTemplateFormatVersion": "2010-09-09", "Description": "CloudFormation Sample Template S3_Bucket: Sample template showing how to create a privately accessible S3 bucket. **WARNING** This template creates an S3 bucket. You will be billed for the resources used if you create a stack from this template.", "Resources": { "S3Bucket": { "Type": "AWS::S3::Bucket", "Properties": {} } }, "Outputs": { "BucketName": { "Value": { "Ref": "S3Bucket" }, "Description": "Name of Amazon S3 bucket to hold website content" } } }

    Esse modelo permite que o AWS CloudFormation crie um bucket do S3 que pode ser usado pelo Service Catalog.

  2. Carregue o arquivo S3_template.json no repositório do AWS CodeCommit.

Etapa 2: Criar o arquivo de configuração da implantação do produto

  1. Abra um editor de texto. Crie o arquivo de configuração para o seu produto. O arquivo de configuração é usado para definir os parâmetros/preferências de implantação do Service Catalog. Use esse arquivo ao criar o pipeline.

    Este exemplo fornece um ProductVersionName de "devops S3 v2" e um ProductVersionDescription de MyProductVersionDescription. Se você deseja que a alteração do modelo seja implantada em uma nova versão do produto, basta inserir um nome de versão do produto que não tenha sido usado em uma versão anterior do mesmo produto.

    Salve o arquivo como sample_config.json.

    { "SchemaVersion": "1.0", "ProductVersionName": "devops S3 v2", "ProductVersionDescription": "MyProductVersionDescription", "ProductType": "CLOUD_FORMATION_TEMPLATE", "Properties": { "TemplateFilePath": "/S3_template.json" } }

    Esse arquivo criará as informações da versão do produto para você a cada vez que o pipeline for executado.

  2. Carregue o arquivo sample_config.json no repositório do AWS CodeCommit. Certifique-se de que você carregue esse arquivo no repositório de origem.

Etapa 3: Criar um produto no Service Catalog

  1. Como administrador de TI, faça login no console do Service Catalog, vá para a página Produtos e, depois, selecione Fazer upload de novo produto.

  2. Na página Upload new product (Carregar novo produto), conclua o seguinte:

    1. Em Product name (Nome do produto), insira o nome que você deseja usar para o seu novo produto.

    2. Em Description (Descrição), insira a descrição do catálogo de produtos. Essa descrição é mostrada na lista de produtos para ajudar o usuário a escolher o produto correto.

    3. Em Provided by (Oferecido por), digite o nome de seu departamento ou do administrador de TI.

    4. Escolha Next (Próximo).

  3. (Opcional) Em Enter support details (Inserir detalhes do suporte), insira as informações de contato para suporte ao produto e, em seguida, selecione Next (Próximo).

  4. Em Version details (Detalhes da versão), conclua o seguinte:

    1. Selecione Carregar um arquivo de modelo. Procure o arquivo S3_template.json e carregue-o.

    2. Em Version title (Título da versão), insira o nome da versão do produto (por exemplo, "devops S3 v2").

    3. Em Description (Descrição), insira os detalhes que distinguem essa versão em relação às outras.

    4. Escolha Next (Próximo).

  5. Na página Revisão, verifique se as informações estão corretas e, em seguida, selecione Confirmar e carregar.

  6. Na página Products (Produtos), no navegador, copie o URL do seu novo produto. Ela contém o ID do produto. Copie e retenha esse ID de produto. É necessário usá-lo ao criar o pipeline no CodePipeline.

    Veja a seguir o URL para um produto chamado my-product. Para extrair o ID do produto, copie o valor entre o sinal de igual (=) e o E comercial (&). Neste exemplo, o ID do produto é prod-example123456.

    https://<region-URL>/servicecatalog/home?region=<region>#/admin-products?productCreated=prod-example123456&createdProductTitle=my-product
    nota

    Copie o URL para o produto antes de sair da página. Depois de sair dessa página, você deve usar a CLI para obter o ID do produto.

    Após alguns segundos, o produto será exibido na página Produtos. Talvez seja necessário atualizar o navegador para ver o produto na lista.

Etapa 4: Criar o pipeline

  1. Para nomear o pipeline e selecionar os parâmetros para o pipeline, faça o seguinte:

    1. Faça login no AWS Management Console e abra o console do CodePipeline em https://console.aws.amazon.com/codepipeline/.

    2. Escolha Conceitos básicos. Selecione Create pipeline (Criar pipeline) e insira um nome para seu pipeline.

    3. Em Perfil de serviço, selecione Novo perfil de serviço para permitir que o CodePipeline crie um perfil de serviço no IAM.

    4. Deixe as configurações em Advanced settings (Configurações avançadas) como padrão e escolha Next (Próximo).

  2. Para adicionar um estágio de origem, faça o seguinte:

    1. Em Source provider (Provedor de código-fonte), selecione AWS CodeCommit.

    2. Em Repository name (Nome do repositório) e Branch name (Nome da ramificação), insira o nome do repositório e a ramificação que deseja usar para sua ação de origem.

    3. Escolha Next (Próximo).

  3. Em Add build stage (Adicionar estágio de compilação), selecione Skip build stage (Ignorar estágio de compilação) e aceite a mensagem de aviso ao clicar novamente em Skip (Ignorar).

  4. Em Add deploy stage (Adicionar estágio de implantação), conclua o seguinte:

    1. Em Deploy provider (Fornecedor de implantação), escolha AWS Service Catalog.

    2. Selecione Use configuration file (Usar arquivo de configuração).

    3. Em ID do produto, cole o ID do produto que você copiou no console do Service Catalog.

    4. No arquivo de Configuration file path (Caminho do arquivo de configuração), insira o caminho do arquivo de configuração em seu repositório.

    5. Escolha Next (Próximo).

  5. Em Review (Revisão), revise as configurações do pipeline e, em seguida, selecione Create (Criar).

  6. Depois que o pipeline for executado com êxito, no estágio de implantação, selecione Detalhes para abrir o produto no Service Catalog.

    
              Visualizar o estágio de implantação do Service Catalog do pipeline
  7. Nas informações do produto, escolha o nome da versão para abrir o modelo do produto. Visualize a implantação do modelo.

Etapa 5: Enviar uma alteração e verificar o produto no Service Catalog

  1. Visualize o pipeline no console do CodePipeline e, no estágio de origem, selecione Detalhes. O seu repositório de origem do AWS CodeCommit abre no console. Selecione Edit (Editar) e, em seguida, faça uma alteração no arquivo (por exemplo, na descrição).

    "Description": "Name of Amazon S3 bucket to hold and version website content"
  2. Confirme e envie a alteração. O pipeline será iniciado depois que você enviar a alteração. Quando a execução do pipeline for concluída, no estágio de implantação, selecione Detalhes para abrir o produto no Service Catalog.

  3. Nas informações do produto, escolha o nome da nova versão para abrir o modelo do produto. Visualize a alteração do modelo implantada.