Tutorial: Criar um pipeline que implanta noAWS 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 implanta noAWS Service Catalog

O AWS Service Catalog permite que você crie e provisione produtos com base em modelos do AWS CloudFormation. Este tutorial mostra como criar e configurar um pipeline para implantar o modelo do produto noAWS Service Cataloge fornecer as alterações realizadas no seu 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, você deve carregar todos os arquivos de origem empacotados em seu bucket como um único arquivo .zip. Caso contrário, a ação da origem falhará.

Primeiro, crie um produto no AWS 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: Implantação noAWS Service Catalogsem um arquivo de configuração

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

Etapa 1: Enviar o 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": "AWS 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 AWS 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 AWS Service Catalog.

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

Etapa 2: Criar um produto noAWS Service Catalog

  1. Como administrador de TI, faça login no console do AWS Service Catalog, vá para a página Products (Produtos) e, em seguida, selecione Upload new product (Carregar 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 Upload a template file (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. Você pode 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 noAWS Management Consolee abra o console do CodePipeline emhttps://console.aws.amazon.com/codepipeline/.

    2. Selecione Getting started (Começar a usar). Selecione Create pipeline (Criar pipeline) e insira um nome para seu pipeline.

    3. DentroFunção de serviço, escolhaNova função de serviçoPara permitir que o CodePipeline crie uma função 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), selecione AWS Service Catalog.

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

      
                  Adicionar o estágio de implantação do AWS Service Catalog do pipeline
    3. Em Product ID (ID do produto), cole o ID do produto que você copiou no console do AWS 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 Product type (Tipo de produto), selecione AWS CloudFormation Template (Modelo do AWS CloudFormation).

    6. Em Product version name (Nome da versão do produto), insira o nome da versão do produto que você especificou no AWS 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 seu produto será aberto no AWS Service Catalog.

    
              Visualizar o estágio de implantação do AWS 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.

    
              Visualizar o modelo implantado do AWS Service Catalog do pipeline

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

  1. Visualize o pipeline no console do CodePipeline e, no estágio de origem, selecioneDetalhes. 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 Details (Detalhes) para abrir seu produto no AWS 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.

    
              Visualizar o modelo atualizado do AWS Service Catalog do pipeline

Opção 2: Implantação noAWS Service CatalogUsar um arquivo de configuração

Neste exemplo, faça upload do arquivo do modelo do AWS CloudFormation de exemplo em um bucket do S3 e crie o produto no AWS 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: Enviar o 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": "AWS 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 AWS 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 AWS 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 seus parâmetros/preferências de implantação do AWS 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 noAWS Service Catalog

  1. Como administrador de TI, faça login no console do AWS Service Catalog, vá para a página Products (Produtos) e, em seguida, selecione Upload new product (Carregar 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 Upload a template file (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. Use-o 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 noAWS Management Consolee abra o console do CodePipeline emhttps://console.aws.amazon.com/codepipeline/.

    2. Selecione Getting started (Começar a usar). Selecione Create pipeline (Criar pipeline) e insira um nome para seu pipeline.

    3. DentroFunção de serviço, escolhaNova função de serviçoPara permitir que o CodePipeline crie uma função 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), selecione AWS Service Catalog.

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

      
                  Adicionar o estágio de implantação do AWS Service Catalog do pipeline e escolher um arquivo de configuração separado
    3. Em Product ID (ID do produto), cole o ID do produto que você copiou no console do AWS 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 Details (Detalhes) para abrir seu produto no AWS Service Catalog.

    
              Visualizar o estágio de implantação do AWS 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.

    
              Visualizar o modelo implantado do AWS Service Catalog do pipeline

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, selecioneDetalhes. 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 Details (Detalhes) para abrir seu produto no AWS 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.

    
              Visualizar o modelo atualizado do AWS Service Catalog do pipeline