

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

# Configurações de gravação com recursos AWS Config de terceiros usando o AWS CLI
<a name="customresources"></a>

Registre configurações para recursos de terceiros ou tipos de recursos personalizados, como servidores locais, ferramentas de monitoramento SAAS e sistemas de controle de versão (semelhantes). GitHub

Você pode publicar os dados de configuração de recursos de terceiros, visualizar AWS Config e monitorar o inventário de recursos e o histórico de configuração usando o AWS Config console APIs e. Você pode usar AWS Config para gerenciar todos os seus recursos e avaliar a configuração dos recursos quanto à conformidade com as melhores práticas usando AWS Config regras. Você também pode criar AWS Config regras ou pacotes de conformidade para avaliar esses recursos de terceiros em relação às melhores práticas, políticas internas e políticas regulatórias. 

**nota**  
Se você tiver configurado AWS Config para registrar todos os tipos de recursos, os recursos de terceiros gerenciados (criados, atualizados ou excluídos) serão automaticamente rastreados AWS Config como itens de configuração. CloudFormation 

**Pré-requisito:** os recursos de terceiros ou o tipo de recurso personalizado devem ser registrados usando. CloudFormation

**Topics**
+ [Adicionar recursos](customresources-adding.md)
+ [Gravação de itens de configuração](add-custom-resource-type-cli.md)
+ [Leitura de itens de configuração](view-custom-resource-type-cli.md)
+ [Excluir recursos](delete-custom-resource-type.md)

# Adicionando recursos de terceiros ao AWS Config
<a name="customresources-adding"></a>

Siga estas etapas para adicionar um recurso de terceiros ao AWS Config.

**Topics**
+ [Etapa 1: Configurar o ambiente de desenvolvimento](#customresources-setupdevenvironment)
+ [Etapa 2: Modelar seu recurso](#customresources-modelresource)
+ [Etapa 3: gerar artefatos](#generateartifactsforcfnsubmit)
+ [Etapa 4: registrar o recurso](#customresources-registerresource)
+ [Etapa 5: publicar a configuração do recurso](#customresources-publishresourceconfiguration)

## Etapa 1: Configurar o ambiente de desenvolvimento
<a name="customresources-setupdevenvironment"></a>

Instale e configure a CloudFormation AWS CLI. AWS CLI Isso permite que você modele e registre seus recursos personalizados. Para obter mais informações, consulte [Recursos personalizados](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-custom-resources.html) e [O que é a interface de linha de CloudFormation comando?](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html) .

## Etapa 2: Modelar seu recurso
<a name="customresources-modelresource"></a>

Crie um esquema de provedor de recursos que esteja em conformidade com a configuração do tipo de recurso e faça sua validação.

1. Use o comando `init` para criar seu projeto de provedor de recursos e gerar os arquivos necessários.

   ```
   $ cfn init
   Initializing new project
   ```

1. O comando `init` inicia um assistente que orienta você na configuração do projeto, incluindo a especificação do nome do recurso. Para esta demonstração, especifique `MyCustomNamespace::Testing::WordPress`.

   ```
   Enter resource type identifier (Organization::Service::Resource): MyCustomNamespace::Testing::WordPress
   ```

1. Insira um nome de pacote para o recurso.

   ```
   Enter a package name (empty for default 'com.custom.testing.wordpress'): com.custom.testing.wordpress 
   Initialized a new project in /workplace/user/custom-testing-wordpress
   ```
**nota**  
Para garantir que todas as dependências do projeto sejam resolvidas corretamente, você pode importar o projeto gerado para o seu IDE com o suporte do Maven.  
Por exemplo, se estiver usando o IntelliJ IDEA, você precisará fazer o seguinte:  
No menu **Arquivo**, escolha **Novo**, em seguida, escolha **Projeto das origens existentes**.
Navegue até o diretório de projeto
Na caixa de diálogo **Importar projeto**, escolha **Importar projeto do modelo externo** e, em seguida, escolha **Maven**.
Escolha **Avançar** e aceite todos os padrões para concluir a importação do projeto.

1. Abra o arquivo `mycustomnamespace-testing-wordpress.json` que contém o esquema para o recurso. Copie e cole o esquema a seguir em `mycustomnamespace-testing-wordpress.json`.

   ```
   {
     "typeName": "MyCustomNamespace::Testing::WordPress",
     "description": "An example resource that creates a website based on WordPress 5.2.2.",
     "properties": {
       "Name": {
         "description": "A name associated with the website.",
         "type": "string",
         "pattern": "^[a-zA-Z0-9]{1,219}\\Z",
         "minLength": 1, "maxLength": 219
       },
       "SubnetId": {
         "description": "A subnet in which to host the website.",
         "pattern": "^(subnet-[a-f0-9]{13})|(subnet-[a-f0-9]{8})\\Z",
         "type": "string"
       },
       "InstanceId": {
         "description": "The ID of the instance that backs the WordPress site.",
         "type": "string"
       },
       "PublicIp": {
         "description": "The public IP for the WordPress site.",
         "type": "string"
       }
     },
     "required": [ "Name", "SubnetId" ],
     "primaryIdentifier": [ "/properties/PublicIp", "/properties/InstanceId" ],
     "readOnlyProperties": [ "/properties/PublicIp", "/properties/InstanceId" ],
     "additionalProperties": false
   }
   ```

1. Valide o esquema.

   ```
   $ cfn validate
   ```

1. Atualize os arquivos gerados automaticamente no pacote do provedor de recursos para visualizar as atualizações do esquema do provedor de recursos. Após o início do projeto do provedor de recursos, AWS CLI ele gera arquivos e códigos de suporte para o provedor de recursos. Gere novamente o código para ver o esquema atualizado.

   ```
   $ cfn generate
   ```
**nota**  
Ao usar o Maven, como parte do processo de criação, o comando `generate` é executado automaticamente antes que o código seja compilado. Portanto, suas alterações nunca sairão de sincronia com o código gerado.  
Esteja ciente de que a CloudFormation CLI deve estar em um local que o Maven/the sistema possa encontrar. Para obter mais informações, consulte [Setting up your environment for developing extensions](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html#resource-type-setup).

Para obter mais informações, consulte [Modeling Resource Providers for Use in CloudFormation](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-model.html).

## Etapa 3: gerar artefatos
<a name="generateartifactsforcfnsubmit"></a>

Execute o comando a seguir para gerar artefatos para o `cfn submit`.

```
$ mvn package
```

## Etapa 4: registrar o recurso
<a name="customresources-registerresource"></a>

AWS Config não exige que os manipuladores do provedor de recursos realizem o rastreamento da configuração do seu recurso. Execute o comando a seguir para registrar o recurso.

```
$ cfn submit
```

Para obter mais informações, consulte [Registrando provedores de recursos para uso em CloudFormation modelos](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-register.html).

## Etapa 5: publicar a configuração do recurso
<a name="customresources-publishresourceconfiguration"></a>

Determine a configuração para MyCustomNamespace: :Testing::WordPress.

```
{
  "Name": "MyWordPressSite",
  "SubnetId": "subnet-abcd0123",
  "InstanceId": "i-01234567",
  "PublicIp": "my-wordpress-site.com"
}
```

Determine a ID da versão do esquema a partir de CloudFormation `DescribeType`. 

Em AWS Config, você pode ver se essa configuração de recurso é aceita. Para avaliar a conformidade, você pode AWS Config criar regras usando esse recurso.

(Opcional) para automatizar a gravação da configuração, implemente coletores de configuração periódicos ou baseados em alterações.

# Registre itens AWS Config de configuração com recursos de terceiros usando o AWS CLI
<a name="add-custom-resource-type-cli"></a>

Registre um item de configuração para um recurso de terceiros ou um tipo de recurso personalizado usando o seguinte procedimento:

Certifique-se de registrar o tipo de recurso `MyCustomNamespace::Testing::WordPress` com seu esquema correspondente.

1. Abra um prompt de comando ou uma janela do terminal.

1. Digite o comando:

   ```
   aws configservice put-resource-config --resource-type MyCustomNamespace::Testing::WordPress --resource-id resource-001 --schema-version-id 00000001 --configuration  '{
     "Id": "resource-001",
     "Name": "My example custom resource.",
     "PublicAccess": false
   }'
   ```

**nota**  
Conforme definido no esquema de tipos, `writeOnlyProperties` será removido da configuração antes de ser gravado pelo AWS Config. Isso significa que esses valores não estarão presentes quando a configuração for obtida da leitura APIs. Para obter mais informações, sobre `writeOnlyProperties`, consulte [Resource type schema](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html).

# Leia itens de configuração com recursos AWS Config de terceiros usando o AWS CLI
<a name="view-custom-resource-type-cli"></a>

Leia um item de configuração para um recurso de terceiros ou um tipo de recurso personalizado usando o seguinte procedimento:

1. Abra um prompt de comando ou uma janela do terminal.

1. Digite o comando:

   ```
   aws configservice list-discovered-resources --resource-type MyCustomNamespace::Testing::WordPress
   ```

1. Pressione Enter.

   Você deve ver uma saída semelhante a:

   ```
   {
       "resourceIdentifiers": [
           {
               "resourceType": "MyCustomNamespace::Testing::WordPress",
               "resourceId": "resource-001"
           }
       ]
   }
   ```

1. Digite o comando:

   ```
   aws configservice batch-get-resource-config --resource-keys '[ { "resourceType": "MyCustomNamespace::Testing::WordPress", "resourceId": "resource-001" } ]'
   ```

1. Pressione Enter.

   Você deve ver uma saída semelhante a:

   ```
   {
       "unprocessedResourceKeys": [],
       "baseConfigurationItems": [
           {
               "configurationItemCaptureTime": 1569605832.673,
               "resourceType": "MyCustomNamespace::Testing::WordPress",
               "resourceId": "resource-001",
               "configurationStateId": "1569605832673",
               "awsRegion": "us-west-2",
               "version": "1.3",
               "supplementaryConfiguration": {},
               "configuration": "{\"Id\":\"resource-001\",\"Name\":\"My example custom resource.\",\"PublicAccess\":false}",
               "configurationItemStatus": "ResourceDiscovered",
               "accountId": "AccountId"
           }
       ]
   }
   ```

# Exclua recursos de terceiros do AWS Config uso do AWS CLI
<a name="delete-custom-resource-type"></a>

Insira o comando a seguir para excluir um recurso de terceiros:

```
aws configservice delete-resource-config --resource-type MyCustomNamespace::Testing::WordPress --resource-id resource-002
```

Se for bem sucedido, o comando será executado sem saída adicional.