Personalize os nomes das funções padrão usando AWS CDK aspectos e escotilhas de escape - Recomendações da AWS

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

Personalize os nomes das funções padrão usando AWS CDK aspectos e escotilhas de escape

Sandeep Singh e James Jacob, Amazon Web Services

Resumo

Esse padrão demonstra como personalizar os nomes padrão das funções criadas por AWS Cloud Development Kit (AWS CDK) construções. A personalização dos nomes de perfis é frequentemente necessária quando sua organização tem restrições específicas baseadas em convenções de nomenclatura. Por exemplo, sua organização pode definir limites de permissões AWS Identity and Access Management (IAM) ou políticas de controle de serviço (SCPs) que exijam um prefixo específico nos nomes das funções. Nesses casos, os nomes de função padrão gerados pelas AWS CDK construções podem não atender a essas convenções e talvez precisem ser alterados. Este padrão atende a esses requisitos ao usar mecanismos de escape e aspectos no AWS CDK. Você emprega os mecanismos de escape para definir nomes de perfis personalizados e os aspectos para aplicar um nome personalizado a todos os perfis, garantindo conformidade com as políticas e restrições da sua organização.

Pré-requisitos e limitações

Pré-requisitos

Limitações

  • Os aspectos filtram recursos com base em tipos de recurso, garantindo que todos os perfis compartilhem o mesmo prefixo. Caso sejam necessários prefixos distintos para diferentes perfis, é preciso aplicar filtros adicionais com base em outras propriedades. Por exemplo, para atribuir prefixos diferentes a funções associadas a AWS Lambda funções, você pode filtrar por atributos ou tags de função específicos e aplicar um prefixo para funções relacionadas ao Lambda e um prefixo diferente para outras funções.

  • Os nomes de perfis do IAM podem ter, no máximo, 64 caracteres, de modo que nomes de perfis alterados precisam ser reduzidos para respeitar esse limite.

  • Alguns Serviços da AWS não estão disponíveis em todos Regiões da AWS. Para conferir a disponibilidade de uma região, consulte Serviços da AWS by Region. Para endpoints específicos, consulte a página Cotas e endpoints de serviços e clique no link correspondente ao serviço desejado.

Arquitetura

Pilha de tecnologias de destino

  • AWS CDK

  • AWS CloudFormation

Arquitetura de destino

Arquitetura para usar mecanismos de escape e aspectos para personalizar os nomes de perfis atribuídos pelo AWS CDK.
  • Um AWS CDK aplicativo consiste em uma ou mais CloudFormation pilhas, que são sintetizadas e implantadas para gerenciar recursos. AWS

  • Para modificar uma propriedade de um recurso AWS CDK gerenciado que não é exposta por uma construção de camada 2 (L2), use uma saída de emergência para substituir as CloudFormation propriedades subjacentes (nesse caso, o nome da função) e um aspecto para aplicar a função a todos os recursos no AWS CDK aplicativo durante o processo de síntese da pilha. AWS CDK

Ferramentas

Serviços da AWS

  • AWS Cloud Development Kit (AWS CDK)é uma estrutura de desenvolvimento de software que ajuda você a definir e provisionar Nuvem AWS infraestrutura em código.

  • AWS CDK A interface de linha de comando (AWS CDK CLI) (também conhecida como kit de AWS CDK ferramentas) é um kit de desenvolvimento em nuvem de linha de comando que ajuda você a interagir com seu aplicativo. AWS CDK O cdk comando CLI é a principal ferramenta para interagir com seu aplicativo. AWS CDK Ele executa seu aplicativo, interroga o modelo de aplicativo que você definiu e produz e implanta os CloudFormation modelos gerados pelo. AWS CDK

  • CloudFormationajuda você a configurar AWS recursos, provisioná-los de forma rápida e consistente e gerenciá-los em todo o ciclo de vida em todas Contas da AWS as regiões.

Repositório de código

O código-fonte e os modelos desse padrão estão disponíveis no repositório GitHub CDK Aspects Override.

Práticas recomendadas

Consulte as melhores práticas para usar o AWS CDK in TypeScript para criar projetos de IaC no site de Orientação AWS Prescritiva.

Épicos

TarefaDescriptionHabilidades necessárias

Instale a AWS CDK CLI.

Para instalar a AWS CDK CLI globalmente, execute o comando:

npm install -g aws-cdk
AWS DevOps

Verificar a versão.

Execute o comando :

cdk --version

Confirme se você está usando a versão 2 da AWS CDK CLI.

AWS DevOps

Inicialize o AWS CDK ambiente.

Antes de implantar os CloudFormation modelos, prepare a conta Região da AWS que você deseja usar. Execute o comando :

cdk bootstrap <account>/<Region>

Para obter mais informações, consulte AWS CDK bootstrapping na documentação. AWS

AWS DevOps
TarefaDescriptionHabilidades necessárias

Configure o projeto.

  1. Clone o GitHub repositório desse padrão em seu computador local:

    git clone https://github.com/aws-samples/cdk-aspects-override
  2. Acesse o diretório do projeto no seu computador local.

  3. Instale as dependências do projeto:

    npm ci
AWS DevOps

Implante pilhas com nomes de perfil padrão atribuídos pelo AWS CDK.

Implante duas CloudFormation pilhas (ExampleStack1eExampleStack2) que contenham as funções do Lambda e suas funções associadas:

npm run deploy:ExampleAppWithoutAspects

O código não transfere propriedades de perfil explicitamente, portanto, os nomes dos perfis serão definidos pelo AWS CDK.

Para obter uma saída de exemplo, consulte a seção Informações adicionais.

AWS DevOps

Implante pilhas com aspectos.

Nesta etapa, você aplica um aspecto que impõe uma convenção de nome de função adicionando um prefixo a todas as funções do IAM implantadas no projeto. AWS CDK O aspecto está definido no arquivo lib/aspects.ts. O aspecto usa um mecanismo de escape para substituir o nome do perfil adicionando um prefixo. O aspecto é aplicado às pilhas no arquivo bin/app-with-aspects.ts. O prefixo de nome de perfil usado neste exemplo é dev-unicorn.

  1. Edite o arquivo bin/app-with-aspects.ts.

  2. No arquivo, atualize a variável ROLE_NAME_PREFIX com o prefixo dev-unicorn:

    const app = new cdk.App(); // Define a prefix for the role names const ROLE_NAME_PREFIX = 'dev-unicorn'; // Instantiate the RoleNamingConventionAspect with the desired prefix const roleNamingConventionAspect = new RoleNamingConventionAspect(ROLE_NAME_PREFIX);
  3. Implante o AWS CDK aplicativo com aspectos:

    npm run deploy:ExampleAppWithAspects

Para obter uma saída de exemplo, consulte a seção Informações adicionais.

AWS DevOps
TarefaDescriptionHabilidades necessárias

Exclua suas AWS CloudFormation pilhas.

Após terminar de usar este padrão, execute o seguinte comando para limpar os recursos e evitar incorrer em custos adicionais:

cdk destroy --all -f && cdk --app npx ts-node bin/app-with-aspects.ts' destroy --all -f
AWS DevOps

Solução de problemas

ProblemaSolução

Você encontra problemas ao usar AWS CDK o.

Consulte Solução de AWS CDK problemas comuns na AWS CDK documentação.

Recursos relacionados

Mais informações

Nomes de funções criados por CloudFormation without aspects

Outputs: ExampleStack1WithoutAspects.Function1RoleName = example-stack1-without-as-Function1LambdaFunctionSe-y7FYTY6FXJXA ExampleStack1WithoutAspects.Function2RoleName = example-stack1-without-as-Function2LambdaFunctionSe-dDZV4rkWqWnI ... Outputs: ExampleStack2WithoutAspects.Function3RoleName = example-stack2-without-as-Function3LambdaFunctionSe-ygMv49iTyMq0

Nomes de funções criados por CloudFormation with aspects

Outputs: ExampleStack1WithAspects.Function1RoleName = dev-unicorn-Function1LambdaFunctionServiceRole783660DC ExampleStack1WithAspects.Function2RoleName = dev-unicorn-Function2LambdaFunctionServiceRole2C391181 ... Outputs: ExampleStack2WithAspects.Function3RoleName = dev-unicorn-Function3LambdaFunctionServiceRole4CAA721C