

Questa è la nuova *Guida di riferimento ai modelli CloudFormation *. Aggiorna i segnalibri e i link. Per informazioni su come iniziare CloudFormation, consulta la [Guida AWS CloudFormation per l'utente](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

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

# cfn-hup
<a name="cfn-hup"></a>

L’helper `cfn-hup` è un daemon che rileva modifiche nei metadati della risorsa ed esegue azioni specificate dall’utente quando viene rilevata una modifica. In questo modo puoi effettuare gli aggiornamenti della configurazione sulle istanze Amazon EC2 in esecuzione tramite l’operazione API `UpdateStack`.

Per ulteriori informazioni, consulta il tutorial [Aggiornamento di uno CloudFormation stack](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/updating.stacks.walkthrough.html) nella *Guida per l'AWS CloudFormation utente*.

**Topics**
+ [Sintassi](#cfn-hup-Syntax)
+ [Opzioni](#cfn-hup-options)
+ [File di configurazione cfn-hup.conf](#cfn-hup-config-file)
+ [File di configurazione `hooks.conf`](#cfn-hup-hook-file)
+ [`hooks.d`directory](#cfn-hup-hooks-dir)
+ [Esempi](#cfn-hup-examples)
+ [Risorse correlate](#cfn-hup-related-resources)

## Sintassi
<a name="cfn-hup-Syntax"></a>

```
cfn-hup --config|-c config.dir \
        --no-daemon \
        --verbose|-v
```

## Opzioni
<a name="cfn-hup-options"></a>


| Nome | Description | Richiesto | 
| --- | --- | --- | 
|   `--config\|-c config.dir`   |  Specifica il percorso in cui lo script `cfn-hup` cerca le directory `cfn-hup.conf` e `hooks.d`. In Windows, il percorso predefinito è `system_drive\cfn`. In Linux, il percorso predefinito è `/etc/cfn`.  |  No  | 
|   `--no-daemon`   |  Specifica questa opzione per eseguire lo script `cfn-hup` una volta e uscire.  |  No  | 
|   `-v, --verbose `   |  Specifica questa opzione per utilizzare la modalità dettagliata (verbose).  |  No  | 

## File di configurazione cfn-hup.conf
<a name="cfn-hup-config-file"></a>

Il file `cfn-hup.conf` memorizza il nome dello stack e le credenziali AWS che il daemon `cfn-hup` usa come destinazione.

Il file `cfn-hup.conf` utilizza il formato seguente:

```
[main]
stack=<stack-name-or-id>
```


| Nome | Description | Richiesto | 
| --- | --- | --- | 
|   `stack`   |  Un nome o ID dello stack. ▬*Tipo:* stringa  |  Sì  | 
|   `credential-file`   |  Un file delle credenziali solo del proprietario, nello stesso formato utilizzato per gli strumenti a riga di comando. ▬*Tipo:* stringa *Condizione*: il parametro `role` sostituisce questo parametro.  |  No  | 
|   `role`   |  Il nome di un ruolo IAM associato all’istanza. ▬*Tipo:* stringa  |  No  | 
|   `region`   |  Il nome dello stack Regione AWS che contiene lo stack. *Esempio*: us-east-2  |  No  | 
|   `umask`   |  L’`umask` usato dal daemon `cfn-hup`. Questo valore può essere specificato con o senza 0 iniziale. In entrambi i casi, viene interpretato come un numero ottale (simile al comando `umask` di Linux). Questo parametro non ha effetto su Windows. *Tipo*: intero ottale compreso tra `0` e `0777` *Default*: `022`, versione 1.4–22 e superiore. Il valore predefinito di `022` maschera le autorizzazioni group e world write, perciò i file creati dal daemon `cfn-hup` non sono scrivibili a livello di gruppo o mondo per impostazione predefinita. Il valore predefinito per le versioni 1.4-21 e precedenti è `0`, che non maschera nulla.  |  No  | 
|   `interval`   |  L’intervallo utilizzato per verificare la presenza di modifiche apportate ai metadati della risorsa in pochi minuti. *Tipo*: integer *Default*: `15`  |  No  | 
|   `verbose`   |  Specifica l’utilizzo della registrazione verbose. *Tipo*: Booleano *Default*: `false`  |  No  | 

## File di configurazione `hooks.conf`
<a name="cfn-hup-hook-file"></a>

Le operazioni dell’utente che il daemon `cfn-hup` chiama periodicamente sono definite nel file di configurazione `hooks.conf`. Il file `hooks.conf` utilizza il *formato* seguente:

```
[hookname]
triggers=post.add or post.update or post.remove
path=Resources.<logicalResourceId> (.Metadata or .PhysicalResourceId)(.<optionalMetadatapath>)
action=<arbitrary shell command>
runas=<runas user>
```

Al momento dell’esecuzione, l’operazione viene eseguita su una copia dell’ambiente attuale (su cui si trova `cfn-hup`), con `CFN_OLD_METADATA` impostato sul valore di metadati precedente specificato dal percorso e `CFN_NEW_METADATA` impostato sul valore attuale.

Il file di configurazione hook viene caricato solo all’avvio del daemon `cfn-hup`, perciò un nuovo hook richiede il riavvio del daemon. Una cache dei valori dei metadati precedenti viene memorizzata su `/var/lib/cfn-hup/data/metadata_db`: puoi eliminarla per forzare `cfn-hup` a eseguire di nuovo tutte le azioni `post.add`.


| Nome | Description | Richiesto | 
| --- | --- | --- | 
|   `hookname`   |  Un nome univoco per questo hook. ▬*Tipo:* stringa  |  Sì  | 
|   `triggers`   |  Un elenco di condizioni delimitate da virgola da rilevare. *Valori validi*: `post.add`, `post.update` o `post.remove` *Esempio*: `post.add, post.update`  |  Sì  | 
|   `path`   |  Il percorso verso l’oggetto metadati. Supporta un percorso profondo arbitrariamente all’interno del blocco di metadati.  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/AWSCloudFormation/latest/TemplateReference/cfn-hup.html)  |  Sì  | 
|   `action`   |  Un comando shell arbitrario che viene eseguito in modo invariato.  |  Sì  | 
|   `runas`   |  Un utente per eseguire il comando come `cfn-hup` usa il comando su per passare all’utente.  |  Sì  | 

## `hooks.d`directory
<a name="cfn-hup-hooks-dir"></a>

Per supportare la composizione di diverse applicazioni che distribuiscono hook di notifica della modifica, `cfn-hup` supporta una directory denominata `hooks.d` che si trova nella directory di configurazione degli hook. Puoi posizionare uno o più file di configurazione hook nella directory `hooks.d`. Il file hook aggiuntivi devono utilizzare lo stesso layout del file `hooks.conf`.

Il daemon `cfn-hup` analizza e carica ciascun file nella directory. Se qualsiasi hook nella directory `hooks.d` ha lo stesso nome di un hook in `hooks.conf`, gli hook verranno uniti (il che significa che `hooks.d` sovrascriverà `hooks.conf` per qualsiasi valore che entrambi i file specificano).

## Esempi
<a name="cfn-hup-examples"></a>

Negli esempi seguenti, CloudFormation attiva il file `cfn-auto-reloader.conf` hooks quando si modifica la `AWS::CloudFormation::Init` risorsa associata alla `LaunchConfig` risorsa.

### JSON
<a name="cfn-hup-example.json"></a>

```
...
    "LaunchConfig": {
      "Type" : "AWS::AutoScaling::LaunchConfiguration",
      "Metadata" : {
        "AWS::CloudFormation::Init" : {
...
              "/etc/cfn/hooks.d/cfn-auto-reloader.conf": {
                "content": { "Fn::Join": [ "", [
                  "[cfn-auto-reloader-hook]\n",
                  "triggers=post.update\n",
                  "path=Resources.LaunchConfig.Metadata.AWS::CloudFormation::Init\n",
                  "action=/opt/aws/bin/cfn-init -v ",
                          "         --stack ", { "Ref" : "AWS::StackName" },
                          "         --resource LaunchConfig ",
                          "         --configsets wordpress_install ",
                          "         --region ", { "Ref" : "AWS::Region" }, "\n",
                  "runas=root\n"
                ]]},          
                "mode"  : "000400",
                "owner" : "root",
                "group" : "root"
              }
...
```

### YAML
<a name="cfn-hup-example.yaml"></a>

```
...
  LaunchConfig:
    Type: AWS::AutoScaling::LaunchConfiguration
    Metadata:
      AWS::CloudFormation::Init:
...
            /etc/cfn/hooks.d/cfn-auto-reloader.conf:
              content: !Sub |
                [cfn-auto-reloader-hook]
                triggers=post.update
                path=Resources.LaunchConfig.Metadata.AWS::CloudFormation::Init
                action=/opt/aws/bin/cfn-init -v --stack ${AWS::StackName} --resource LaunchConfig --configsets wordpress_install --region ${AWS::Region}
                runas=root
              mode: "000400"
              owner: "root"
              group: "root"
...
```

## Risorse correlate
<a name="cfn-hup-related-resources"></a>

Puoi anche visitare il nostro GitHub repository per scaricare i [modelli di esempio](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html#sample-templates) che utilizziamo`cfn-hup`, inclusi i seguenti modelli.
+  [InstanceWithCfnInit.yaml](https://github.com/aws-cloudformation/aws-cloudformation-templates/blob/main/EC2/InstanceWithCfnInit.yaml) 
+  [AutoScalingRollingUpdates.yaml](https://github.com/aws-cloudformation/aws-cloudformation-templates/blob/main/AutoScaling/AutoScalingRollingUpdates.yaml) 