

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Aggiungere risorse di terze parti a AWS Config
<a name="customresources-adding"></a>

Segui questi passaggi per aggiungere una risorsa di terze parti a AWS Config.

**Topics**
+ [

## Fase 1: Configurare l'ambiente di sviluppo
](#customresources-setupdevenvironment)
+ [

## Fase 2: Modellare la risorsa
](#customresources-modelresource)
+ [

## Passaggio 3: Generare gli artefatti
](#generateartifactsforcfnsubmit)
+ [

## Passaggio 4: Registrare la risorsa
](#customresources-registerresource)
+ [

## Passaggio 5: Pubblicare la configurazione della risorsa
](#customresources-publishresourceconfiguration)

## Fase 1: Configurare l'ambiente di sviluppo
<a name="customresources-setupdevenvironment"></a>

Istalla e configura la CloudFormation AWS CLI. Ti AWS CLI consente di modellare e registrare le tue risorse personalizzate. Per ulteriori informazioni, consulta [Risorse personalizzate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-custom-resources.html) e [Cos'è l'interfaccia a riga di CloudFormation comando?](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html) .

## Fase 2: Modellare la risorsa
<a name="customresources-modelresource"></a>

Crea uno schema di provider di risorse conforme e convalida la configurazione del tipo di risorsa.

1. Utilizzare il comando `init` per creare il progetto del provider di risorse e generare i file necessari.

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

1. Il comando `init` avvia una procedura guidata che illustra l'impostazione del progetto, inclusa la specificazione del nome della risorsa. Per questa procedura dettagliata, specificare `MyCustomNamespace::Testing::WordPress`.

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

1. Immettere il nome di un pacchetto per la risorsa.

   ```
   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**  
Per assicurarti che tutte le dipendenze del progetto vengano risolte correttamente, puoi importare il progetto generato nel tuo IDE con supporto Maven.  
Se ad esempio utilizzi IntelliJ IDEA, è necessario eseguire le operazioni seguenti:  
Dal menu **File**, seleziona **Nuovo**, quindi **Progetto da origini esistenti**.
Passa alla directory del progetto.
Nella finestra di dialogo **Importa progetto**, scegli **Importa progetto da modello esterno**, quindi scegli **Maven**.
Seleziona **Avanti** e accetta le impostazioni predefinite per completare l'importazione del progetto.

1. Aprire il file `mycustomnamespace-testing-wordpress.json` che contiene lo schema per la risorsa. Copiare e incollare lo schema seguente in `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. Convalidare lo schema.

   ```
   $ cfn validate
   ```

1. Aggiornare i file generati automaticamente nel pacchetto del provider di risorse per visualizzare gli aggiornamenti dello schema del provider di risorse. All'avvio del progetto del fornitore di risorse, AWS CLI genera file e codice di supporto per il fornitore di risorse. Rigenerare il codice per visualizzare lo schema aggiornato.

   ```
   $ cfn generate
   ```
**Nota**  
Se utilizzi Maven, come parte del processo di compilazione, il comando `generate` viene eseguito automaticamente prima della compilazione del codice. Quindi le modifiche saranno sempre sincronizzate con il codice generato.  
Tieni presente che la CloudFormation CLI deve trovarsi in una posizione che il Maven/the sistema può trovare. Per ulteriori informazioni, consulta [Configurazione dell'ambiente per lo sviluppo di estensioni](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html#resource-type-setup).

Per ulteriori informazioni sulla procedura completa, consulta [Modellazione del provider di risorse per l'utilizzo in CloudFormation](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-model.html).

## Passaggio 3: Generare gli artefatti
<a name="generateartifactsforcfnsubmit"></a>

Esegui il comando seguente per generare artefatti per `cfn submit`.

```
$ mvn package
```

## Passaggio 4: Registrare la risorsa
<a name="customresources-registerresource"></a>

AWS Config non richiede che i gestori dei provider di risorse eseguano il monitoraggio della configurazione della risorsa. Esegui il comando seguente per registrare la risorsa.

```
$ cfn submit
```

Per ulteriori informazioni, vedere [Registrazione dei provider di risorse per l'uso](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-register.html) nei modelli. CloudFormation 

## Passaggio 5: Pubblicare la configurazione della risorsa
<a name="customresources-publishresourceconfiguration"></a>

Determina la configurazione per MyCustomNamespace: :Testing::. WordPress

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

Determina l'id della versione dello schema da CloudFormation `DescribeType`. 

In AWS Config, puoi vedere se questa configurazione delle risorse è accettata. Per valutare la conformità puoi scrivere AWS Config regole usando questa risorsa.

(Facoltativo) Per automatizzare la registrazione della configurazione, implementa raccoglitori di configurazione periodici o basati sulle modifiche.