

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

# Ottieni AWS valori usando pseudo parametri
<a name="pseudo-parameter-reference"></a>

Gli pseudo parametri sono variabili integrate che forniscono l'accesso a importanti informazioni AWS sull'ambiente, come account IDs, nomi delle regioni e dettagli dello stack, che possono cambiare tra le distribuzioni o gli ambienti.

È possibile utilizzare pseudoparametri anziché valori codificati per rendere i modelli più portabili e più facili da riutilizzare in diverse aree geografiche. Account AWS 

## Sintassi
<a name="pseudo-parameter-syntax"></a>

È possibile fare riferimento agli pseudo parametri utilizzando la funzione intrinseca `Ref` o la funzione intrinseca `Fn::Sub`. 

### Ref
<a name="pseudo-parameter-ref-syntax"></a>

La funzione intrinseca `Ref` utilizza la seguente sintassi generale. Per ulteriori informazioni, consulta [Ref](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html).

#### JSON
<a name="pseudo-parameter-ref-syntax.json"></a>

```
{ "Ref" : "AWS::PseudoParameter" }
```

#### YAML
<a name="pseudo-parameter-ref-syntax.yaml"></a>

```
!Ref AWS::PseudoParameter
```

### Fn::Sub
<a name="pseudo-parameter-sub-syntax"></a>

La funzione intrinseca `Fn::Sub` utilizza un formato diverso che include la sintassi `${}` attorno allo pseudo parametro. Per ulteriori informazioni, consulta [Fn::Sub](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-sub.html).

#### JSON
<a name="pseudo-parameter-sub-syntax.json"></a>

```
{ "Fn::Sub" : "${AWS::PseudoParameter}" }
```

#### YAML
<a name="pseudo-parameter-sub-syntax.yaml"></a>

```
!Sub '${AWS::PseudoParameter}'
```

## Pseudo parametri disponibili
<a name="available-pseudo-parameters"></a>

### `AWS::AccountId`
<a name="cfn-pseudo-param-accountid"></a>

Restituisce l' Account AWS ID dell'account in cui viene creato lo stack, ad esempio. `123456789012`

Questo pseudo parametro viene comunemente utilizzato per definire ruoli IAM, policy e altre policy relative alle risorse che coinvolgono account specifici. ARNs

### `AWS::NotificationARNs`
<a name="cfn-pseudo-param-notificationarns"></a>

Restituisce l'elenco di Amazon Resource Names (ARNs) per gli argomenti di Amazon SNS che ricevono notifiche sugli eventi dello stack. Puoi specificarli ARNs tramite l'`--notification-arns`opzione presente in AWS CLI o tramite la console durante la creazione o l'aggiornamento dello stack.

A differenza di altri pseudo parametri che restituiscono un singolo valore, `AWS::NotificationARNs` restituisce un elenco di. ARNs Per accedere a un ARN specifico nell’elenco, utilizza la funzione intrinseca `Fn::Select`. Per ulteriori informazioni, consulta [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-select.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-select.html).

### `AWS::NoValue`
<a name="cfn-pseudo-param-novalue"></a>

Rimuove la proprietà della risorsa corrispondente quando specificata come valore restituito nella funzione intrinseca `Fn::If`. Per ulteriori informazioni, consulta [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-conditions.html#intrinsic-function-reference-conditions-if](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-conditions.html#intrinsic-function-reference-conditions-if).

Questo pseudo parametro è particolarmente utile per creare proprietà condizionali delle risorse che devono essere incluse solo in determinate condizioni.

### `AWS::Partition`
<a name="cfn-pseudo-param-partition"></a>

Restituisce la partizione in cui si trova la risorsa. Per lo standard Regioni AWS, la partizione è. `aws` Per risorse in altre partizioni, la partizione è `aws-`*partitionname*. Ad esempio, la partizione per le risorse nelle regioni della Cina (Pechino e Ningxia) è `aws-cn` e la partizione per le risorse nella regione AWS GovCloud (Stati Uniti occidentali) è. `aws-us-gov`

La partizione fa parte dell’ARN per le risorse. L'utilizzo `AWS::Partition` garantisce il corretto funzionamento dei modelli su diverse partizioni. AWS 

### `AWS::Region`
<a name="cfn-pseudo-param-region"></a>

Restituisce una stringa che rappresenta la regione in cui la risorsa comprendente è in fase di creazione, ad esempio `us-west-2`.

Questo è uno degli pseudo parametri più comunemente usati, in quanto consente ai modelli di adattarsi a diversi Regioni AWS modelli senza modifiche.

### `AWS::StackId`
<a name="cfn-pseudo-param-stackid"></a>

Restituisce l’ID (ARN) dello stack, ad esempio `arn:aws:cloudformation:us-west-2:123456789012:stack/teststack/51af3dc0-da77-11e4-872e-1234567db123`.

### `AWS::StackName`
<a name="cfn-pseudo-param-stackname"></a>

Restituisce il nome dello stack, ad esempio `teststack`.

Il nome dello stack viene comunemente utilizzato per creare nomi di risorse univoci facilmente identificabili come appartenenti a uno stack specifico.

### `AWS::URLSuffix`
<a name="cfn-pseudo-param-urlsuffix"></a>

Restituisce il suffisso per il AWS dominio in Regione AWS cui è distribuito lo stack. Il suffisso è in genere `amazonaws.com`, ma per la regione Cina (Pechino) il suffisso è `amazonaws.com.cn`.

Questo parametro è particolarmente utile durante la creazione di endpoint di servizio. URLs AWS 

## Esempi
<a name="pseudo-parameter-examples"></a>

**Topics**
+ [Utilizzo di base](#pseudo-parameter-basic-example)
+ [Uso di AWS::NotificationARNs](#pseudo-parameter-notification-example)
+ [Proprietà condizionali con AWS::NoValue](#pseudo-parameter-novalue-example)

### Utilizzo di base
<a name="pseudo-parameter-basic-example"></a>

Gli esempi seguenti creano due risorse: un argomento Amazon SNS e un CloudWatch allarme che invia notifiche a quell'argomento. `AWS::StackName`Utilizzano e `AWS::AccountId` inseriscono dinamicamente il nome dello stack, l'ID corrente e l'ID dell'account nei nomi Regione AWS, nelle descrizioni delle risorse e. `AWS::Region` ARNs

#### JSON
<a name="pseudo-parameter-basic-example.json"></a>

```
{
    "Resources": {
        "MyNotificationTopic": {
            "Type": "AWS::SNS::Topic",
            "Properties": {
                "DisplayName": { "Fn::Sub": "Notifications for ${AWS::StackName}" }
            }
        },
        "CPUAlarm": {
            "Type": "AWS::CloudWatch::Alarm",
            "Properties": {
                "AlarmDescription": { "Fn::Sub": "Alarm for high CPU in ${AWS::Region}" },
                "AlarmName": { "Fn::Sub": "${AWS::StackName}-HighCPUAlarm" },
                "MetricName": "CPUUtilization",
                "Namespace": "AWS/EC2",
                "Statistic": "Average",
                "Period": 300,
                "EvaluationPeriods": 1,
                "Threshold": 80,
                "ComparisonOperator": "GreaterThanThreshold",
                "AlarmActions": [{ "Fn::Sub": "arn:aws:sns:${AWS::Region}:${AWS::AccountId}:${MyNotificationTopic}" }]
            }
        }
    }
}
```

#### YAML
<a name="pseudo-parameter-basic-example.yaml"></a>

```
Resources:
  MyNotificationTopic:
    Type: AWS::SNS::Topic
    Properties:
      DisplayName: !Sub Notifications for ${AWS::StackName}
  CPUAlarm:
    Type: AWS::CloudWatch::Alarm
    Properties:
      AlarmDescription: !Sub Alarm for high CPU in ${AWS::Region}
      AlarmName: !Sub ${AWS::StackName}-HighCPUAlarm
      MetricName: CPUUtilization
      Namespace: AWS/EC2
      Statistic: Average
      Period: 300
      EvaluationPeriods: 1
      Threshold: 80
      ComparisonOperator: GreaterThanThreshold
      AlarmActions:
        - !Sub arn:aws:sns:${AWS::Region}:${AWS::AccountId}:${MyNotificationTopic}
```

### Uso di AWS::NotificationARNs
<a name="pseudo-parameter-notification-example"></a>

Gli esempi seguenti configurano un gruppo Auto Scaling affinché invii notifiche per eventi di avvio delle istanze ed errori di avvio. La configurazione utilizza lo `AWS::NotificationARNs` pseudo parametro, che fornisce un elenco di ARNs argomenti di Amazon SNS specificati durante la creazione dello stack. La funzione `Fn::Select` sceglie il primo ARN da quell’elenco.

#### JSON
<a name="pseudo-parameter-notification-example.json"></a>

```
"myASG": {
   "Type": "AWS::AutoScaling::AutoScalingGroup",
   "Properties": {
      "LaunchTemplate": {
         "LaunchTemplateId": { "Ref": "myLaunchTemplate" },
         "Version": { "Fn::GetAtt": [ "myLaunchTemplate", "LatestVersionNumber" ] }
       },
       "MaxSize": "1",
       "MinSize": "1",
       "VPCZoneIdentifier": [
          "subnetIdAz1",
          "subnetIdAz2",
          "subnetIdAz3"
      ],
      "NotificationConfigurations" : [{
         "TopicARN" : { "Fn::Select" : [ "0", { "Ref" : "AWS::NotificationARNs" } ] },
         "NotificationTypes" : [ "autoscaling:EC2_INSTANCE_LAUNCH", "autoscaling:EC2_INSTANCE_LAUNCH_ERROR" ]
      }]
   }
}
```

#### YAML
<a name="pseudo-parameter-notification-example.yaml"></a>

```
myASG:
  Type: AWS::AutoScaling::AutoScalingGroup
  Properties:
    LaunchTemplate:
      LaunchTemplateId: !Ref myLaunchTemplate
      Version: !GetAtt myLaunchTemplate.LatestVersionNumber
    MinSize: '1'
    MaxSize: '1'
    VPCZoneIdentifier:
      - subnetIdAz1
      - subnetIdAz2
      - subnetIdAz3
    NotificationConfigurations:
      - TopicARN:
          Fn::Select:
          - '0'
          - Ref: AWS::NotificationARNs
        NotificationTypes:
        - autoscaling:EC2_INSTANCE_LAUNCH
        - autoscaling:EC2_INSTANCE_LAUNCH_ERROR
```

### Proprietà condizionali con AWS::NoValue
<a name="pseudo-parameter-novalue-example"></a>

I seguenti esempi creano un’istanza Amazon RDS DB cha utilizza uno snapshot solo se viene fornito un ID snapshot. Se la `UseDBSnapshot` condizione risulta vera, CloudFormation utilizza il valore del `DBSnapshotName` parametro per la proprietà. `DBSnapshotIdentifier` Se la condizione risulta falsa, CloudFormation rimuove la `DBSnapshotIdentifier` proprietà. 

#### JSON
<a name="pseudo-parameter-novalue-example.json"></a>

```
"MyDB" : {
  "Type" : "AWS::RDS::DBInstance",
  "Properties" : {
    "AllocatedStorage" : "5",
    "DBInstanceClass" : "db.t2.small",
    "Engine" : "MySQL",
    "EngineVersion" : "5.5",
    "MasterUsername" : { "Ref" : "DBUser" },
    "MasterUserPassword" : { "Ref" : "DBPassword" },
    "DBParameterGroupName" : { "Ref" : "MyRDSParamGroup" },
    "DBSnapshotIdentifier" : {
      "Fn::If" : [
        "UseDBSnapshot",
        {"Ref" : "DBSnapshotName"},
        {"Ref" : "AWS::NoValue"}
      ]
    }
  }
}
```

#### YAML
<a name="pseudo-parameter-novalue-example.yaml"></a>

```
MyDB:
  Type: AWS::RDS::DBInstance
  Properties:
    AllocatedStorage: '5'
    DBInstanceClass: db.t2.small
    Engine: MySQL
    EngineVersion: '5.5'
    MasterUsername:
      Ref: DBUser
    MasterUserPassword:
      Ref: DBPassword
    DBParameterGroupName:
      Ref: MyRDSParamGroup
    DBSnapshotIdentifier:
      Fn::If:
        - UseDBSnapshot
        - Ref: DBSnapshotName
        - Ref: AWS::NoValue
```