

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-signal
<a name="cfn-signal"></a>

Lo script di `cfn-signal` supporto segnala se CloudFormation le istanze Amazon EC2 sono state create o aggiornate con successo. Se installi e configuri applicazioni software sulle istanze, puoi segnalare CloudFormation quando tali applicazioni software sono pronte.

Usa lo script `cfn-signal` in combinazione con [Attributo `CreationPolicy`](aws-attribute-creationpolicy.md) o [Attributo `UpdatePolicy`](aws-attribute-updatepolicy.md) con `WaitOnResourceSignals` per i gruppi di Amazon EC2 Auto Scaling. Quando CloudFormation crea o aggiorna risorse con tali policy, sospende il lavoro sullo stack finché la risorsa non riceve il numero di segnali richiesto o fino al superamento del periodo di timeout. Per ogni segnale valido che CloudFormation riceve, pubblica i segnali negli eventi dello stack in modo da consentire all'utente di tenere traccia di ogni segnale.

**Topics**
+ [Sintassi per la segnalazione della risorsa (consigliata)](#w2aac32c29b9)
+ [Sintassi per l’uso con handle di condizione di attesa](#cfn-signal-Syntaxwaitcondition)
+ [Opzioni](#cfn-signal-options)
+ [Esempi](#cfn-signal-examples)
+ [Risorse correlate](#cfn-signal-related-resources)

## Sintassi per la segnalazione della risorsa (consigliata)
<a name="w2aac32c29b9"></a>

Se vuoi segnalare CloudFormation le risorse, usa la seguente sintassi.

```
cfn-signal --success|-s {{signal.to.send}} \
        --access-key {{access.key}} \
        --credential-file|-f {{credential.file}} \
        --exit-code|-e {{exit.code}} \
        --http-proxy {{HTTP.proxy}} \
        --https-proxy {{HTTPS.proxy}} \
        --id|-i {{unique.id}} \
        --region {{AWS.region}} \
        --resource {{resource.logical.ID}} \
        --role {{IAM.role.name}} \
        --secret-key {{secret.key}} \
        --stack {{stack.name.or.stack.ID}} \
        --url {{CloudFormation.endpoint}}
```

**Nota**  
`cfn-signal` non richiede credenziali, pertanto non è necessario utilizzare le opzioni `--access-key`, `--secret-key`, `--role` o `--credential-file`. Tuttavia, se non viene specificata alcuna credenziale, CloudFormation verifica la sottoscrizione allo stack e limita l'ambito della chiamata allo stack a cui l'istanza appartiene. Per ulteriori informazioni, consulta [Autorizzazioni per gli script helper](cfn-helper-scripts-reference.md#cfn-helper-scripts-reference-permissions).

## Sintassi per l’uso con handle di condizione di attesa
<a name="cfn-signal-Syntaxwaitcondition"></a>

Se desideri segnalare un handle di condizione di attesa, utilizza la sintassi seguente.

```
cfn-signal --success|-s {{signal.to.send}} \
        --reason|-r {{resource.status.reason}} \
        --data|-d {{data}} \
        --id|-i {{unique.id}} \
        --exit-code|-e {{exit.code}} \
        {{waitconditionhandle.url}}
```

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

Le opzioni che puoi utilizzare dipendono dalla segnalazione di una policy di creazione o di una condizione di attesa. Alcune opzioni che si applicano a una policy di creazione potrebbero non essere applicabili a una condizione di attesa.


| Nome | Description | Richiesto | 
| --- | --- | --- | 
| `--access-key` (solo per la segnalazione della risorsa) | AWS chiave di accesso per un account con autorizzazione a chiamare l' CloudFormation`SignalResource `API. Il parametro del file delle credenziali sostituisce questo parametro.<br />▬*Tipo:* stringa | No | 
| `-d, --data` (solo per l’handle di condizione di attesa) | Dati per l’invio con `waitConditionHandle`. L’impostazione predefinita è vuoto.<br />▬*Tipo:* stringa<br />*Default*: vuoto | No | 
| `-e, --exit-code`  | Il codice di errore da parte di un processo che può essere utilizzato per determinare un esito positivo o negativo. Se specificato, l’opzione `--success` viene ignorata.<br />▬*Tipo:* stringa<br />*Esempi*: `-e $?` (per Linux), `-e %ERRORLEVEL%` (per Windows cmd.exe) e `-e $lastexitcode` (per Windows PowerShell). | No | 
| `-f, --credential-file` (solo per la segnalazione della risorsa) | Un file che contiene sia una chiave di accesso segreta sia una chiave di accesso. Il parametro del file delle credenziali sostituisce i parametri di ruolo, chiave di accesso e chiave segreta.<br />▬*Tipo:* stringa | No | 
| `--http-proxy` | Un proxy HTTP (non SSL). Utilizzare il seguente formato: `http://{{user:password}}@{{host}}:{{port}}`<br />▬*Tipo:* stringa | No | 
| `--https-proxy` | Un proxy HTTPS. Utilizzare il seguente formato: `https://{{user:password}}@{{host}}:{{port}}`<br />▬*Tipo:* stringa | No | 
| `-i, --id` | ID univoco per l’invio.<br />▬*Tipo:* stringa<br />*Default*: l’ID dell’istanza Amazon EC2. Se l’ID non può essere risolto, viene restituito il nome di dominio completo della macchina. | No | 
| `-r, --reason ` (solo per l’handle di condizione di attesa) | Un motivo dello stato per l’evento della risorsa (attualmente utilizzato solo in caso di errore) - viene impostato su "Configurazione non riuscita" se il successo è false.<br />▬*Tipo:* stringa | No | 
| --region (solo per la segnalazione della risorsa) | L'endpoint CloudFormation regionale da utilizzare.<br />▬*Tipo:* stringa<br />*Default*: `us-east-1` | No | 
| --resource (solo per la segnalazione della risorsa) | L’ID logico della risorsa che contiene la policy della creazione che vuoi segnalare.<br />▬*Tipo:* stringa | Sì | 
| `--role` (solo per la segnalazione della risorsa) | Il nome di un ruolo IAM associato all’istanza.<br />▬*Tipo:* stringa<br />Condizione: il parametro del file delle credenziali sostituisce questo parametro. | No | 
| `-s, --success`  | Se è true, il segnale è `SUCCESS`, altrimenti è `FAILURE`.<br />*Tipo*: Booleano<br />*Default*: `true` | No | 
| `--secret-key` (solo per la segnalazione della risorsa) | AWS chiave di accesso segreta che corrisponde alla chiave di AWS accesso specificata.<br />▬*Tipo:* stringa | No | 
| `--stack` (solo per la segnalazione della risorsa) | Il nome dello stack o l’ID dello stack che contiene la risorsa da segnalare.<br />▬*Tipo:* stringa | Sì | 
| -u, --url (solo per la segnalazione della risorsa) | L' CloudFormation endpoint da usare.<br />▬*Tipo:* stringa | No | 
| `waitconditionhandle.url` (solo per l’handle di condizione di attesa) | Un URL prefirmato che puoi utilizzare per segnalare l’esito positivo o negativo a una `WaitCondition` associata.<br />▬*Tipo:* stringa | Sì | 

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

### Esempio Amazon Linux
<a name="w2aac32c29c15b3"></a>

Un modello di utilizzo comune è utilizzare `cfn-init` e `cfn-signal` insieme. La chiamata `cfn-signal` utilizza lo stato restituito della chiamata a `cfn-init` (tramite il costrutto shell $?). Se l’applicazione non è in grado di installarsi, l’istanza non è in grado di creare e lo stack sarà sottoposto a rollback.

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

```
{
    "AWSTemplateFormatVersion": "2010-09-09",
    "Description": "Simple EC2 instance",
    "Resources": {
        "MyInstance": {
            "Type": "AWS::EC2::Instance",
            "Metadata": {
                "AWS::CloudFormation::Init": {
                    "config": {
                        "files": {
                            "/tmp/test.txt": {
                                "content": "Hello world!",
                                "mode": "000755",
                                "owner": "root",
                                "group": "root"
                            }
                        }
                    }
                }
            },
            "Properties": {
                "ImageId": "{{resolve:ssm:/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2}}",
                "InstanceType": "t2.micro",
                "UserData": {
                    "Fn::Base64": {
                        "Fn::Join": [
                            "",
                            [
                                "#!/bin/bash -x\n",
                                "# Install the files and packages from the metadata\n",
                                "yum install -y aws-cfn-bootstrap",
                                "\n",
                                "/opt/aws/bin/cfn-init -v ",
                                "         --stack ",
                                {
                                    "Ref": "AWS::StackName"
                                },
                                "         --resource MyInstance ",
                                "         --region ",
                                {
                                    "Ref": "AWS::Region"
                                },
                                "\n",
                                "# Signal the status from cfn-init\n",
                                "/opt/aws/bin/cfn-signal -e $? ",
                                "         --stack ",
                                {
                                    "Ref": "AWS::StackName"
                                },
                                "         --resource MyInstance ",
                                "         --region ",
                                {
                                    "Ref": "AWS::Region"
                                },
                                "\n"
                            ]
                        ]
                    }
                }
            },
            "CreationPolicy": {
                "ResourceSignal": {
                    "Timeout": "PT5M"
                }
            }
        }
    }
}
```

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

```
AWSTemplateFormatVersion: 2010-09-09
Description: Simple EC2 instance
Resources:
  MyInstance:
    Type: AWS::EC2::Instance
    Metadata:
      'AWS::CloudFormation::Init':
        config:
          files:
            /tmp/test.txt:
              content: Hello world!
              mode: '000755'
              owner: root
              group: root
    Properties:
      ImageId: '{{resolve:ssm:/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2}}'
      InstanceType: t2.micro
      UserData:
        Fn::Base64: !Sub |
          #!/bin/bash -x
          # Install the files and packages from the metadata
          yum install -y aws-cfn-bootstrap
          /opt/aws/bin/cfn-init -v --stack ${AWS::StackName} --resource MyInstance --region ${AWS::Region}
          # Signal the status from cfn-init
          /opt/aws/bin/cfn-signal -e $? --stack ${AWS::StackName} --resource MyInstance --region ${AWS::Region}
    CreationPolicy:
      ResourceSignal:
        Timeout: PT5M
```

## Risorse correlate
<a name="cfn-signal-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-signal`, 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) 