

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
<a name="customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches"></a>

*Sandeep Singh e James Jacob, Amazon Web Services*

## Resumo
<a name="customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-summary"></a>

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](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) (IAM) ou [políticas de controle de serviço (SCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) 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](https://docs.aws.amazon.com/cdk/v2/guide/cfn-layer.html) e [aspectos](https://docs.aws.amazon.com/cdk/v2/guide/aspects.html) 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
<a name="customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-prereqs"></a>

**Pré-requisitos **
+ Um ativo Conta da AWS
+ Pré-requisitos especificados na [documentação do AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_prerequisites)

**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](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Para endpoints específicos, consulte a página [Cotas e endpoints de serviços](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) e clique no link correspondente ao serviço desejado.

## Arquitetura
<a name="customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-architecture"></a>

**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.](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/c149d8d2-1da6-4680-ab0b-e5051b69688c/images/15e56ca5-f150-4522-b374-8ee2dcc655a9.png)

+ 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
<a name="customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-tools"></a>

**Serviços da AWS**
+ [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/latest/guide/home.html)é 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)](https://docs.aws.amazon.com/cdk/latest/guide/cli.html) (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
+ [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)ajuda 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](https://github.com/aws-samples/cdk-aspects-override).

## Práticas recomendadas
<a name="customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-best-practices"></a>

Consulte [as melhores práticas para usar o AWS CDK in TypeScript para criar projetos de IaC no site](https://docs.aws.amazon.com/prescriptive-guidance/latest/best-practices-cdk-typescript-iac/introduction.html) de Orientação **AWS **Prescritiva.

## Épicos
<a name="customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-epics"></a>

### Instale a AWS CDK CLI
<a name="install-the-cdk-cli"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Instale a AWS CDK CLI. | Para instalar a AWS CDK CLI globalmente, execute o comando:<pre>npm install -g aws-cdk</pre> | AWS DevOps | 
| Verificar a versão. | Execute o comando :<pre>cdk --version</pre><br />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 :<pre>cdk bootstrap <account>/<Region></pre><br />Para obter mais informações, consulte [AWS CDK bootstrapping na documentação](https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping.html). AWS  | AWS DevOps | 

### Implante o AWS CDK aplicativo para demonstrar o uso de aspectos
<a name="deploy-the-cdk-app-to-demonstrate-the-use-of-aspects"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure o projeto. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches.html) | AWS DevOps | 
| Implante pilhas com nomes de perfil padrão atribuídos pelo AWS CDK. | Implante duas CloudFormation pilhas (`ExampleStack1`e`ExampleStack2`) que contenham as funções do Lambda e suas funções associadas:<pre>npm run deploy:ExampleAppWithoutAspects</pre><br />O código não transfere propriedades de perfil explicitamente, portanto, os nomes dos perfis serão definidos pelo AWS CDK.<br />Para obter uma saída de exemplo, consulte a seção [ Informações adicionais](#customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-additional). | 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`.[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches.html)<br />Para obter uma saída de exemplo, consulte a seção [ Informações adicionais](#customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-additional). | AWS DevOps | 

### Limpar os recursos
<a name="clean-up-resources"></a>


| Tarefa | Description | Habilidades 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:<pre>cdk destroy --all -f && cdk --app npx ts-node bin/app-with-aspects.ts' destroy --all -f </pre> | AWS DevOps | 

## Solução de problemas
<a name="customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| Você encontra problemas ao usar AWS CDK o. | Consulte [Solução de AWS CDK problemas comuns](https://docs.aws.amazon.com/cdk/v2/guide/troubleshooting.html) na AWS CDK documentação. | 

## Recursos relacionados
<a name="customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-resources"></a>
+ [AWS Cloud Development Kit (AWS CDK)](https://aws.amazon.com/cdk/)
+ [AWS CDK documentação](https://docs.aws.amazon.com/cdk/)
+ [AWS CDK em GitHub](https://github.com/aws/aws-cdk)
+ [Escape hatches](https://docs.aws.amazon.com/cdk/v2/guide/cfn-layer.html)
+ [Aspectos e o AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/aspects.html)

## Mais informações
<a name="customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-additional"></a>

**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
```