View a markdown version of this page

Usando o Enterprise Blueprint Factory - AWS Recomendações

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

Usando o Enterprise Blueprint Factory

Esta seção ajuda você a criar, atualizar ou excluir blueprints em seu ambiente. Ele fornece instruções detalhadas para gerenciar um blueprint durante todo o seu ciclo de vida.

Para criar ou atualizar esquemas personalizados, você deve ter uma compreensão de como criar modelos de IaC, como AWS CloudFormationmodelos ou AWS Cloud Development Kit (AWS CDK) construções. Este guia não inclui informações ou instruções sobre como definir os blueprints que você lança por meio do Enterprise Blueprint Factory.

Pré-requisitos

A seguir estão os pré-requisitos para usar o Enterprise Blueprint Factory em seu ambiente: AWS

  • AWS Command Line Interface (AWS CLI), instalado e configurado

  • Permissões para assumir a função ServiceCatalogEndUserRole AWS Identity and Access Management (IAM)

  • Um CloudFormation modelo ou AWS CDK construção

Criação de um plano

Os pipelines do Enterprise Blueprint Factory implantam os blueprints que você define no arquivo de configuração. O desenvolvedor inicia o pipeline de configuração mesclando o arquivo de configuração no repositório de configuração. Em seguida, o Enterprise Blueprint Factory usa o ServiceCatalogLaunchConstraintRole para implantar o blueprint como um produto no Service Catalog. Para obter mais informações sobre as ações que o pipeline de configuração e o pipeline de lançamento executam quando você cria um blueprint, consulte Criação de blueprint neste guia.

Para adicionar o blueprint ao repositório do produto
  1. Certifique-se de ter configurado seu Enterprise Blueprint Factory de acordo com as instruções em Configurando o Enterprise Blueprint Factory neste guia.

  2. Confirme se a política da ServiceCataloglogLaunchConstraintRole função permite que você provisione os recursos definidos no blueprint.

  3. No repositório do produto (ServiceCatalog-BlueprintProductRepo), crie uma pasta para o novo blueprint.

  4. Cole o modelo do IaC (CloudFormation modelo ou AWS CDK construção) na pasta que você criou.

  5. Crie um arquivo chamado product_config.json na pasta que você criou.

  6. Abra o arquivo product_config.json e cole o seguinte no arquivo:

    { "SchemaVersion": "1.0", "ProductVersionName": "1.0.1", "Deprecated_Versions" : [], "ProductVersionDescription": "<description>", "ProductType": "CLOUD_FORMATION_TEMPLATE", "Properties": { "TemplateFilePath": "./<folder name>/<file name>" } }

    Em que:

    • <description>é uma breve descrição da versão do blueprint

    • <folder name>é o nome da pasta que você criou no repositório do produto

    • <file name>é o nome do modelo IaC

    nota

    Você pode atualizar a versão do esquema ou os nomes das versões do produto de acordo com as políticas da sua organização.

  7. Salve e feche o arquivo product_config.json.

  8. Insira os seguintes comandos para mesclar as alterações no repositório do produto:

    cd ServiceCatalog-BlueprintProductRepo git add <folder name>/<file name> <folder name>\product_config.json git commit -m "The first version of <file name> blueprint" git push origin main
Para atualizar o arquivo de configuração
  1. No repositório de configuração (ServiceCatalog-ConfigRepo), abra o arquivo config.yml.

  2. Edite a portfolios seção e a products seção conforme necessário para o novo blueprint. Para obter mais informações, consulte Arquivo de configuração neste guia.

  3. Salve e feche o arquivo config.yml.

  4. Insira os seguintes comandos para mesclar as alterações no repositório de configuração:

    cd ServiceCatalog-ConfigRepo git add config.yml git commit -m "<description of change>" git push origin main

    A aprovação dessa pull request inicia o pipeline de configuração. O pipeline de configuração cria um pipeline de lançamento para o produto.

Para revisar os registros de implantação
  1. Faça login na conta administrativa do Enterprise Blueprint Factory.

  2. Abra o console de AWS CodePipeline.

  3. Em Nome, escolha o pipeline de lançamento do produto. Por padrão, o nome do pipeline éBluePrint_<Product-Name>-<CloudFormation-Stack-Name>.

  4. Selecione Visualizar histórico.

  5. Visualize o status da execução do pipeline e do estágio. Para obter mais informações sobre o status, consulte Exibir status de execução na CodePipeline documentação.

  6. Se a tubulação falhar, analise a causa da falha. Para obter instruções sobre como configurar o monitoramento para seus pipelines, consulte Monitoramento de pipelines na CodePipeline documentação. Se o pipeline de lançamento falhar devido a uma verificação de cfn-lint ou cfn_nag, corrija o erro no modelo. Envie outra pull request para o repositório do produto. Isso reinicia o pipeline de lançamento. Para obter mais informações sobre como corrigir erros de modelo, consulte a seção Solução de problemas neste guia.

  7. Espere até que o status do pipeline de lançamento sejaSucceeded.

Para validar a implantação
  1. Faça login em uma conta de consumidor na organização.

  2. Assuma a função ServiceCatalogEndUserRole do IAM.

  3. Abra o console do Service Catalog.

  4. No painel de navegação, escolha Produtos.

  5. Confirme se o novo produto está disponível na lista de produtos.

Atualizar um esquema

Para obter mais informações sobre as ações que o pipeline de configuração e o pipeline de lançamento executam quando você cria um blueprint, consulte Atualização do blueprint neste guia.

Para atualizar um blueprint
  1. No repositório do produto, navegue até a pasta do produto.

  2. Cole o modelo atualizado do IaC. Verifique se o nome do arquivo é o mesmo da versão anterior.

  3. Abra o arquivo product_config.json.

  4. ParaProductVersionName, atualize o número da versão.

  5. Se você quiser evitar que a versão anterior do produto seja implantada futuramente, paraDeprecated_Versions, insira os números da versão anterior em uma lista separada por vírgulas.

  6. Insira os seguintes comandos para mesclar as alterações no repositório do produto:

    cd ServiceCatalog-BlueprintProductRepo git add <folder name>/<file name> <folder name>\product_config.json git commit -m "Version <number> of <file name> blueprint" git push origin main

    A aprovação dessa pull request inicia o pipeline de lançamento do produto.

Para revisar os registros de implantação
  1. Faça login na conta administrativa do Enterprise Blueprint Factory.

  2. Abra o console de AWS CodePipeline.

  3. Em Nome, escolha o pipeline de lançamento. Por padrão, o nome do pipeline éBluePrint_<Product-Name>-<CloudFormation-Stack-Name>.

  4. Selecione Visualizar histórico.

  5. Visualize o status da execução do pipeline e do estágio. Para obter mais informações sobre o status, consulte Exibir status de execução na CodePipeline documentação.

  6. Se a tubulação falhar, analise a causa da falha. Para obter instruções sobre como configurar o monitoramento para seus pipelines, consulte Monitoramento de pipelines na CodePipeline documentação. Se o pipeline de lançamento falhar devido a uma verificação de cfn-lint ou cfn_nag, corrija o erro no modelo. Envie outra pull request para o repositório do produto. Isso reinicia o pipeline de lançamento. Para obter mais informações sobre como corrigir erros de modelo, consulte a seção Solução de problemas neste guia.

  7. Espere até que o status do pipeline de lançamento sejaSucceeded.

Para validar a atualização
  1. Faça login em uma conta de consumidor na organização.

  2. Assuma a função ServiceCatalogEndUserRole do IAM.

  3. Abra o console do Service Catalog.

  4. No painel de navegação, escolha Produtos.

  5. Confirme se a nova versão do produto está disponível na lista de produtos.

Excluindo um blueprint

Quando você exclui um produto, o Service Catalog remove todas as versões do produto de cada portfólio que contém o produto. Para obter mais informações, consulte Excluindo produtos na documentação do Service Catalog. Para obter mais informações sobre as ações que o pipeline de configuração e o pipeline de lançamento executam quando você cria um blueprint, consulte Exclusão de blueprint neste guia.

Para excluir um blueprint
  1. No repositório de configuração, abra o arquivo config.yml.

  2. Edite a seção de produtos, remova ou comente o produto que você deseja excluir.

  3. Salve e feche o arquivo config.yml.

  4. Insira os seguintes comandos para mesclar as alterações no repositório de configuração:

    cd ServiceCatalog-ConfigRepo git add config.yml git commit -m "<description of change>" git push origin main

    A aprovação dessa pull request inicia o pipeline de configuração. O pipeline de configuração exclui o produto e seu pipeline de lançamento.

  5. No repositório do produto, exclua a pasta do produto, incluindo seu conteúdo.

  6. Insira os seguintes comandos para mesclar as alterações no repositório do produto:

    cd ServiceCatalog-BlueprintProductRepo git add . git commit -m "Delete <file name> blueprint" git push origin main
Para validar a exclusão
  1. Faça login em uma conta de consumidor na organização.

  2. Assuma a função ServiceCatalogEndUserRole do IAM.

  3. Abra o console do Service Catalog.

  4. No painel de navegação, escolha Produtos.

  5. Confirme se o produto excluído não está mais disponível.

Solução de problemas

Quando você cria ou atualiza um blueprint, as ferramentas cfn-lint e cfn-nag validam o blueprint. Para obter mais informações sobre validação no pipeline de lançamento, consulte Release pipeline neste guia. Qualquer erro de sintaxe ou segurança relatado faz com que o pipeline falhe. Para implantar com êxito o blueprint por meio do pipeline de lançamento, você deve corrigir os erros no blueprint.

Veja a seguir um exemplo de saída que mostra dois erros relacionados à segurança, uma falha e um aviso.

BP-SNS.yml --------------------------------------------------- BP-SNS.yml --------------------------------------------------- | WARN W47 | | Resource: ["ExampleTopic"] | Line numbers: [5] | | SNS Topic should specify KmsMasterKeyId property --------------------------------------------------- | FAIL F18 | | Resource: ["ExampleTopicPolicy"] | Line numbers: [10] | | SNS topic policy should not allow * principal Failures count: 1 Warnings count: 1

Para corrigir esses erros, no arquivo do blueprint, você substituiria o * principal na política de tópicos do Amazon Simple Notification Service (Amazon SNS) e associaria uma chave AWS Key Management Service (AWS KMS) ao tópico. O exemplo de código a seguir demonstra essas atualizações.

ExampleTopic: Type: AWS::SNS::Topic Properties: TopicName: ExampleTopic ExampleTopicPolicy: Type: AWS::SNS::TopicPolicy Properties: KmsMasterKeyId: alias/aws/sns # Added KMS key PolicyDocument: Id: Id1 Version: '2012-10-17' Statement: - Sid: Sid2 Effect: Allow Principal: "Service" : "s3.amazonaws.com" # Replaced "AWS": '*' Action: 'sns:Publish' Resource: !Ref ExampleTopic Topics: - !Ref ExampleTopic