Tutorial: Criar um pipeline que realiza a implantação no Service Catalog
O Service Catalog permite criar e provisionar produtos com base em modelos do AWS CloudFormation.
Importante
Como parte da criação de um pipeline, um bucket de artefatos do S3 fornecido pelo cliente será usado pelo CodePipeline para artefatos. (Este bucket não é o mesmo utilizado para uma ação de origem do S3.) Se o bucket de artefatos do S3 estiver em uma conta diferente da conta do pipeline, garanta que o bucket de artefatos do S3 seja de propriedade de Contas da AWS seguras e confiáveis.
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, você deve fazer upload de todos os arquivos de origem compactados em seu bucket 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:
-
Crie um produto no Service Catalog e faça upload de um arquivo de modelo no repositório de origem. Forneça a versão do produto e a configuração de implantação no console do CodePipeline (sem um arquivo de configuração separado). Consulte Opção 1: Implantar no Service Catalog sem um arquivo de configuração.
nota
O arquivo de modelo pode ser criado no formato JSON ou YAML.
-
Crie um produto no Service Catalog e faça upload de um arquivo de modelo no repositório de origem. Forneça a versão do produto e a configuração de implantação em um arquivo de configuração separado. Consulte Opção 2: Implantar no Service Catalog com um arquivo de configuraçã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. Em seguida, crie seu 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
-
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.
-
Carregue o arquivo
S3_template.jsonno repositório do AWS CodeCommit.
Etapa 2: Criar um produto no Service Catalog
-
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.
-
Na página Upload new product (Carregar novo produto), conclua o seguinte:
-
Em Product name (Nome do produto), insira o nome que você deseja usar para o seu novo produto.
-
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.
-
Em Provided by (Oferecido por), digite o nome de seu departamento ou do administrador de TI.
-
Escolha Próximo.
-
-
(Opcional) Em Enter support details (Inserir detalhes do suporte), insira as informações de contato para suporte ao produto e selecione Next (Próximo).
-
Em Version details (Detalhes da versão), conclua o seguinte:
-
Selecione Carregar um arquivo de modelo. Procure o arquivo
S3_template.jsone carregue-o. -
Em Version title (Título da versão), insira o nome da versão do produto (por exemplo,
devops S3 v2). -
Em Description (Descrição), insira os detalhes que distinguem essa versão em relação às outras.
-
Escolha Próximo.
-
-
Na página Review (Revisar), verifique se as informações estão corretas e escolha Create (Criar).
-
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-productnota
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
-
Para nomear o pipeline e selecionar os parâmetros para o pipeline, faça o seguinte:
Faça login no Console de gerenciamento da AWS e abra o console do CodePipeline em https://console.aws.amazon.com/codesuite/codepipeline
. -
Na página Welcome (Bem-vindo), Getting started (Conceitos básicos) ou Pipelines, selecione Create pipeline (Criar pipeline).
-
Na página Etapa 1: Escolher opção de criação, em Opções de criação, selecione a opção Criar pipeline personalizado. Escolha Próximo.
-
Em Etapa 2: escolher as configurações do pipeline, em Nome do pipeline, insira um nome para o pipeline.
-
O CodePipeline disponibiliza pipelines dos tipos V1 e V2, que apresentam características e custos diferentes. O tipo V2 é o único tipo que você pode escolher no console. Para ter mais informações, consulte Pipeline types. Para obter informações sobre preços do CodePipeline, consulte Preços
. -
Em Perfil de serviço, escolha Novo perfil de serviço para permitir que o CodePipeline crie um perfil de serviço no IAM.
-
Deixe as configurações em Advanced settings (Configurações avançadas) como padrão e escolha Next (Próximo).
-
Para adicionar um estágio de origem na página Etapa 3: Adicionar etapa de origem, faça o seguinte:
-
Em Source provider (Provedor de código-fonte), selecione AWS CodeCommit.
-
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.
-
Escolha Próximo.
-
-
Em Etapa 4: Adicionar etapa de compilação, escolha Ignorar etapa de compilação e aceite a mensagem de aviso escolhendo Ignorar novamente.
-
Em Etapa 5: Adicionar etapa de teste, escolha Ignorar etapa de teste e aceite a mensagem de aviso escolhendo Ignorar novamente.
Escolha Próximo.
-
Em Etapa 6: Adicionar etapa de implantação, conclua o seguinte:
-
Em Deploy provider (Fornecedor de implantação), escolha AWS Service Catalog.
-
Para a configuração de implantação, escolha Enter deployment configuration (Inserir configuração de implantação).
-
Em ID do produto, cole o ID do produto que você copiou no console do Service Catalog.
-
Em Template file path (Caminho do arquivo do modelo), insira o caminho relativo em que o arquivo do modelo é armazenado.
-
Em Tipo de produto, escolha modelo do CloudFormation.
-
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.
-
Em Input artifact (Artefato de entrada), selecione o artefato de entrada de origem.
-
Escolha Próximo.
-
-
Em Etapa 7: Revisão, examine as configurações do pipeline e, em seguida, escolha Criar.
-
Depois que o pipeline for executado com êxito, no estágio de implantação, selecione Details (Detalhes). O produto será aberto no Service Catalog.
-
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
-
Visualize seu 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" -
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 seu produto no Service Catalog.
-
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 com 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
-
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.
-
Carregue o arquivo
S3_template.jsonno repositório do AWS CodeCommit.
Etapa 2: Criar o arquivo de configuração da implantação do produto
-
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 Service Catalog. Use esse arquivo ao criar o pipeline.
Este exemplo fornece um
ProductVersionNamede "devops S3 v2" e umProductVersionDescriptiondeMyProductVersionDescription. 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.
-
Carregue o arquivo
sample_config.jsonno 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
-
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.
-
Na página Upload new product (Carregar novo produto), conclua o seguinte:
-
Em Product name (Nome do produto), insira o nome que você deseja usar para o seu novo produto.
-
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.
-
Em Provided by (Oferecido por), digite o nome de seu departamento ou do administrador de TI.
-
Escolha Próximo.
-
-
(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).
-
Em Version details (Detalhes da versão), conclua o seguinte:
-
Selecione Carregar um arquivo de modelo. Procure o arquivo
S3_template.jsone carregue-o. -
Em Version title (Título da versão), insira o nome da versão do produto (por exemplo, "devops S3 v2").
-
Em Description (Descrição), insira os detalhes que distinguem essa versão em relação às outras.
-
Escolha Próximo.
-
-
Na página Revisão, verifique se as informações estão corretas e, em seguida, selecione Confirmar e carregar.
-
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-productnota
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
-
Para nomear o pipeline e selecionar os parâmetros para o pipeline, faça o seguinte:
Faça login no Console de gerenciamento da AWS e abra o console do CodePipeline em https://console.aws.amazon.com/codesuite/codepipeline
. -
Escolha Conceitos básicos. Selecione Create pipeline (Criar pipeline) e insira um nome para seu pipeline.
-
Em Perfil de serviço, escolha Novo perfil de serviço para permitir que o CodePipeline crie um perfil de serviço no IAM.
-
Deixe as configurações em Advanced settings (Configurações avançadas) como padrão e escolha Next (Próximo).
-
Para adicionar um estágio de origem, faça o seguinte:
-
Em Source provider (Provedor de código-fonte), selecione AWS CodeCommit.
-
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.
-
Escolha Próximo.
-
-
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).
-
Em Add deploy stage (Adicionar estágio de implantação), conclua o seguinte:
-
Em Deploy provider (Fornecedor de implantação), escolha AWS Service Catalog.
-
Selecione Use configuration file (Usar arquivo de configuração).
-
Em ID do produto, cole o ID do produto que você copiou no console do Service Catalog.
-
No arquivo de Configuration file path (Caminho do arquivo de configuração), insira o caminho do arquivo de configuração em seu repositório.
-
Escolha Próximo.
-
-
Em Review (Revisão), revise as configurações do pipeline e, em seguida, selecione Create (Criar).
-
Depois que o pipeline for executado com êxito, no estágio de implantação, selecione Detalhes para abrir seu produto no Service Catalog.
-
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
-
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" -
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 seu produto no Service Catalog.
-
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.