

# Registrar uma extensão privada de terceiros em sua conta
<a name="registry-register-private-extension"></a>

Este tópico cobre as etapas para registrar uma extensão privada de terceiros que é compartilhada com você para que ela fique disponível para ser usada em sua conta.

**nota**  
Antes de continuar, confirme se você tem as [permissões do IAM](registry-private.md#registry-register-permissions) necessárias para registrar uma extensão privada.

**Para registrar uma extensão privada que é compartilhada com você (AWS CLI)**

1. Localize o bucket do Amazon S3 que contém o pacote de projeto da extensão privada que você deseja registrar na conta.

1. Use o comando [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/register-type.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/register-type.html) para registrar uma extensão privada em sua conta.

   Por exemplo, o comando a seguir registra o tipo de recurso `My::Resource::Example` na Conta da AWS especificada.

   ```
   aws cloudformation register-type --type RESOURCE \
     --type-name My::Resource::Example \
     --schema-handler-package [s3 object path] --region us-west-2
   ```

   `RegisterType` é uma operação assíncrona e retorna um token de registro que você pode usar para rastrear o progresso da solicitação de registro.

   ```
   {
       "RegistrationToken": "f5525280-104e-4d35-bef5-8f1fexample"
   }
   ```

   Se a extensão chamar as APIs da AWS como parte de sua funcionalidade, será necessário criar um perfil de execução do IAM que inclua as permissões necessárias para chamar essas APIs da AWS e provisionar esse perfil de execução na sua conta. Em seguida, você poderá especificar esse perfil de execução usando a opção `--execution-role-arn`. Depois, o CloudFormation assumirá essa função de execução para fornecer as credenciais apropriadas para o tipo de recurso.

   ```
   --execution-role-arn arn:aws:iam::123456789012:role/MyIAMRole
   ```

1. (Opcional) Use o token de registro com o comando [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/describe-type-registration.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/describe-type-registration.html) para monitorar o andamento da solicitação de registro.

   Quando o CloudFormation concluir a solicitação de registro, ele definirá o status do andamento da solicitação como `COMPLETE`.

   O exemplo a seguir usa o token de registro retornado pelo comando `describe-type-registration` acima para retornar as informações do status do registro.

   ```
   aws cloudformation describe-type-registration \
     --registration-token f5525280-104e-4d35-bef5-8f1fexample \
     --region us-west-2
   ```

   O comando retorna a seguinte saída.

   ```
   {
       "ProgressStatus": "COMPLETE",
       "TypeArn": "arn:aws:cloudformation:us-west-2:123456789012:type/resource/My-Resource-Example",
       "Description": "Deployment is currently in DEPLOY_STAGE of status COMPLETED; ",
       "TypeVersionArn": "arn:aws:cloudformation:us-west-2:123456789012:type/resource/My-Resource-Example/00000001"
   }
   ```

**Importante**  
Se a extensão sendo registrada for um hook, essa etapa será obrigatória. Você deve especificar `ENABLED` para a propriedade `HookInvocationStatus`. Essa operação ativa as propriedades do hook que são definidas na seção `properties` do esquema do hook. Para obter mais informações, consulte [Hook configuration schema syntax reference](https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/hook-configuration-schema.html) no *CloudFormation Hooks User Guide*.

**Para especificar os dados de configuração de um hook (AWS CLI)**

1. Obtenha o ARN para do hook e salve-o. Você pode obter o ARN de um Hook usando o Console de gerenciamento da AWS ou a AWS CLI. Para obter mais informações, consulte [Visualizar as extensões disponíveis e ativadas no registro do CloudFormation](registry-view.md). 

   ```
   export HOOK_TYPE_ARN="arn:aws:cloudformation:us-west-2:123456789012:type/hook/Organization-Service-Hook/"
   ```

1. Use o comando [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/set-type-configuration.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/set-type-configuration.html) para especificar os dados de configuração. O JSON transmitido por você para `--configuration` deverá ser válido em relação ao esquema de configuração do hook. Para ativar o hook,, defina a propriedade `HookInvocationStatus` como `ENABLED` na seção `HookConfiguration`.

   ```
   aws cloudformation set-type-configuration \
     --configuration "{"CloudFormationConfiguration":{"HookConfiguration":{"HookInvocationStatus": "ENABLED", "FailureMode": "FAIL", "Properties":{}}}}" \
     --type-arn $HOOK_TYPE_ARN --region us-west-2
   ```

   Para obter mais informações, consulte [Hook configuration schema syntax reference](https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/hook-configuration-schema.html) no *CloudFormation Hooks User Guide*.