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
ServiceCatalogEndUserRoleAWS 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
-
Certifique-se de ter configurado seu Enterprise Blueprint Factory de acordo com as instruções em Configurando o Enterprise Blueprint Factory neste guia.
-
Confirme se a política da
ServiceCataloglogLaunchConstraintRolefunção permite que você provisione os recursos definidos no blueprint. -
No repositório do produto (
ServiceCatalog-BlueprintProductRepo), crie uma pasta para o novo blueprint. -
Cole o modelo do IaC (CloudFormation modelo ou AWS CDK construção) na pasta que você criou.
-
Crie um arquivo chamado product_config.json na pasta que você criou.
-
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.
-
-
Salve e feche o arquivo product_config.json.
-
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
-
No repositório de configuração (
ServiceCatalog-ConfigRepo), abra o arquivo config.yml. -
Edite a
portfoliosseção e aproductsseção conforme necessário para o novo blueprint. Para obter mais informações, consulte Arquivo de configuração neste guia. -
Salve e feche o arquivo config.yml.
-
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 mainA 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
-
Faça login na conta administrativa do Enterprise Blueprint Factory.
-
Abra o console de AWS CodePipeline
. -
Em Nome, escolha o pipeline de lançamento do produto. Por padrão, o nome do pipeline é
BluePrint_<Product-Name>-<CloudFormation-Stack-Name>. -
Selecione Visualizar histórico.
-
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.
-
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.
-
Espere até que o status do pipeline de lançamento seja
Succeeded.
Para validar a implantação
-
Faça login em uma conta de consumidor na organização.
-
Assuma a função
ServiceCatalogEndUserRoledo IAM. -
Abra o console do Service Catalog
. -
No painel de navegação, escolha Produtos.
-
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
-
No repositório do produto, navegue até a pasta do produto.
-
Cole o modelo atualizado do IaC. Verifique se o nome do arquivo é o mesmo da versão anterior.
-
Abra o arquivo product_config.json.
-
Para
ProductVersionName, atualize o número da versão. -
Se você quiser evitar que a versão anterior do produto seja implantada futuramente, para
Deprecated_Versions, insira os números da versão anterior em uma lista separada por vírgulas. -
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 mainA aprovação dessa pull request inicia o pipeline de lançamento do produto.
Para revisar os registros de implantação
-
Faça login na conta administrativa do Enterprise Blueprint Factory.
-
Abra o console de AWS CodePipeline
. -
Em Nome, escolha o pipeline de lançamento. Por padrão, o nome do pipeline é
BluePrint_<Product-Name>-<CloudFormation-Stack-Name>. -
Selecione Visualizar histórico.
-
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.
-
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.
-
Espere até que o status do pipeline de lançamento seja
Succeeded.
Para validar a atualização
-
Faça login em uma conta de consumidor na organização.
-
Assuma a função
ServiceCatalogEndUserRoledo IAM. -
Abra o console do Service Catalog
. -
No painel de navegação, escolha Produtos.
-
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
-
No repositório de configuração, abra o arquivo config.yml.
-
Edite a seção de produtos, remova ou comente o produto que você deseja excluir.
-
Salve e feche o arquivo config.yml.
-
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 mainA 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.
-
No repositório do produto, exclua a pasta do produto, incluindo seu conteúdo.
-
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
-
Faça login em uma conta de consumidor na organização.
-
Assuma a função
ServiceCatalogEndUserRoledo IAM. -
Abra o console do Service Catalog
. -
No painel de navegação, escolha Produtos.
-
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