

Este é o Guia do desenvolvedor do AWS CDK v2. O CDK v1 antigo entrou em manutenção em 1º de junho de 2022 e encerrou o suporte em 1º de junho de 2023.

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

# Uso de recursos do Registro Público do AWS CloudFormation
<a name="use-cfn-public-registry"></a>

O Registro Público do AWS CloudFormation permite gerenciar extensões, públicas e privadas, como recursos, módulos e hooks que estejam disponíveis para uso na sua conta da AWS. É possível usar extensões de recursos públicos em suas aplicações do kit de desenvolvimento em nuvem da AWS (CDK da ) da AWS com o constructo [https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.CfnResource.html](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.CfnResource.html).

Para saber mais sobre o Registro Público do AWS CloudFormation, consulte [Uso do registro do AWSCloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry.html) no *Guia do usuário do AWSCloudFormation*.

Todas as extensões públicas publicadas por AWS estão disponíveis para todas as contas em todas as regiões sem nenhuma ação de sua parte. No entanto, você deve ativar cada extensão de terceiros que deseja usar, em cada conta e região em que deseja usá-la.

**nota**  
Ao usar o AWS CloudFormation com tipos de recursos de terceiros, você incorrerá em cobranças. As cobranças são baseadas no número de operações do manipulador que você executa por mês e na duração da operação do manipulador. Consulte os [preços do CloudFormation](https://aws.amazon.com/cloudformation/pricing/) para obter detalhes completos.

Para saber mais sobre extensões públicas, consulte [Uso de extensões públicas no CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html) no *Guia do usuário doAWS CloudFormation*. 

## Ative um recurso de terceiros em sua conta e região
<a name="use-cfn-public-registry-activate"></a>

As extensões publicadas por AWS não exigem ativação. Estão sempre disponíveis em todas as contas e regiões. É possível ativar uma extensão de terceiros por meio do Console de Gerenciamento da AWS, via AWS Command Line Interface ou implantando um recurso especial do AWS CloudFormation.

 **Para ativar uma extensão de terceiros por meio do Console de Gerenciamento da AWS ou ver quais recursos estão disponíveis**   

![\[ativação da extensão cfn\]](http://docs.aws.amazon.com/pt_br/cdk/v2/guide/images/activate-cfn-extension.png)


1. Faça login na conta AWS na qual você deseja usar a extensão e, em seguida, alterne para a região em que deseja usá-la.

1. Navegue até o console do CloudFormation por meio do menu **Serviços**.

1. Escolha **Extensões públicas** na barra de navegação e ative o botão de rádio de **terceiros** no **Publicador**. Uma lista das extensões públicas de terceiros disponíveis é exibida. (Você também pode escolher ** AWS ** para ver uma lista das extensões públicas publicadas por AWS, embora não precise ativá-las.)

1. Navegue pela lista e encontre a extensão que deseja ativar. Como alternativa, procure-a e ative o botão de opção no canto superior direito do cartão da extensão.

1. Escolha o botão **Ativar** na parte superior da lista para ativar a extensão selecionada. A página **Ativar** da extensão será exibida.

1. Na página **Ativar**, será possível substituir o nome padrão da extensão e especificar um perfil de execução e uma configuração de logs. Você também pode escolher se deseja atualizar a extensão automaticamente quando uma nova versão for lançada. Depois de definir essas opções conforme desejar, escolha **Ativar extensão** na parte inferior da página.

 **Para ativar uma extensão de terceiros usando a AWS CLI**   
+ Use o comando `activate-type`. Substitua o ARN do tipo personalizado que você deseja usar onde indicado.

  Veja um exemplo a seguir:

  ```
  aws cloudformation activate-type --public-type-arn <public_extension_ARN> --auto-update-activated
  ```

 **Para ativar uma extensão de terceiros por meio do CloudFormation ou do CDK**   

1. Implante um recurso do tipo ` AWS::CloudFormation::TypeActivation` e especifique as seguintes propriedades:

   1.  `TypeName` - O nome do tipo, como `AWSQS::EKS::Cluster`.

   1.  `MajorVersion` - O número da versão principal da extensão que você deseja. Omita se quiser a versão mais recente.

   1.  `AutoUpdate` - Se essa extensão deve ser atualizada automaticamente quando uma nova versão secundária for lançada pelo publicador. (As principais atualizações da versão exigem a alteração explícita da propriedade `MajorVersion`.)

   1.  `ExecutionRoleArn` - O ARN de perfil do IAM sob o qual essa extensão será executada.

   1.  `LoggingConfig` - A configuração de log da extensão.

   O recurso `TypeActivation` pode ser implantado pelo CDK usando o constructo [https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.CfnResource.html](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.CfnResource.html). Isso é mostrado para as extensões reais na seção a seguir.

## Adicione um recurso do Registro Público do AWS CloudFormation à sua aplicação do CDK
<a name="use-cfn-public-registry-add"></a>

Use o constructo [https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.CfnResource.html](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.CfnResource.html) para incluir um recurso do Registro Público do AWS CloudFormation em sua aplicação. Esse constructo está no módulo `aws-cdk-lib` do CDK.

Por exemplo, suponha que haja um recurso público chamado `MY::S5::UltimateBucket` que você deseja usar em sua aplicação AWS do CDK. Esse recurso usa uma propriedade: o nome do bucket. A instanciação `CfnResource` correspondente tem essa aparência.

**Example**  

```
const ubucket = new CfnResource(this, 'MyUltimateBucket', {
    type: 'MY::S5::UltimateBucket::MODULE',
    properties: {
           BucketName: 'UltimateBucket'
    }
});
```

```
const ubucket = new CfnResource(this, 'MyUltimateBucket', {
    type: 'MY::S5::UltimateBucket::MODULE',
    properties: {
           BucketName: 'UltimateBucket'
    }
});
```

```
ubucket = CfnResource(self, "MyUltimateBucket",
            type="MY::S5::UltimateBucket::MODULE",
            properties=dict(
                BucketName="UltimateBucket"))
```

```
CfnResource.Builder.create(this, "MyUltimateBucket")
	.type("MY::S5::UltimateBucket::MODULE")
	.properties(java.util.Map.of(    // Map.of requires Java 9+
	    "BucketName", "UltimateBucket"))
	.build();
```

```
new CfnResource(this, "MyUltimateBucket", new CfnResourceProps
{
    Type = "MY::S5::UltimateBucket::MODULE",
    Properties = new Dictionary<string, object>
    {
        ["BucketName"] = "UltimateBucket"
    }
});
```