

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# AWS Werte mithilfe von Pseudo-Parametern abrufen
<a name="pseudo-parameter-reference"></a>

Pseudo-Parameter sind integrierte Variablen, die Zugriff auf wichtige AWS Umgebungsinformationen wie Konten IDs, Regionsnamen und Stack-Details bieten, die sich zwischen Bereitstellungen oder Umgebungen ändern können.

Sie können Pseudo-Parameter anstelle von fest codierten Werten verwenden, um Ihre Vorlagen portabler zu machen und sie in verschiedenen Regionen leichter wiederzuverwenden. AWS-Konten 

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

Sie können Pseudoparameter entweder mit der Funktion `Ref` intrinsisch oder mit der Funktion `Fn::Sub` intrinsisch referenzieren. 

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

Die Funktion `Ref` verwendet die folgende allgemeine Syntax. Weitere Informationen finden Sie unter [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>

Die `Fn::Sub`-Funktion verwendet ein anderes Format, das die `${}`-Syntax um den Pseudoparameter herum enthält. Weitere Informationen finden Sie unter [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}'
```

## Verfügbare Pseudoparameter
<a name="available-pseudo-parameters"></a>

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

Gibt die AWS-Konto ID des Kontos zurück, in dem der Stack erstellt wird, z. B. `123456789012`

Dieser Pseudo-Parameter wird häufig bei der Definition von IAM-Rollen, Richtlinien und anderen Ressourcenrichtlinien verwendet, die kontospezifische Richtlinien beinhalten. ARNs

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

Gibt die Liste der Amazon-Ressourcennamen (ARNs) für die Amazon SNS-Themen zurück, die Stack-Ereignisbenachrichtigungen erhalten. Sie können diese ARNs über die `--notification-arns` Option in der AWS CLI oder über die Konsole angeben, während Sie Ihren Stack erstellen oder aktualisieren.

Im Gegensatz zu anderen Pseudo-Parametern, die einen einzelnen Wert zurückgeben, `AWS::NotificationARNs` gibt dies eine Liste von ARNs zurück. Um auf eine bestimmte ARN in der Liste zuzugreifen, verwenden Sie die Funktion `Fn::Select` intrinsic. Weitere Informationen finden Sie unter [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>

Entfernt die entsprechende Ressourceneigenschaft, wenn als Rückgabewert in der intrinsischen Funktion `Fn::If` angegeben. Weitere Informationen finden Sie unter [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).

Dieser Pseudoparameter ist besonders nützlich, um bedingte Ressourceneigenschaften zu erstellen, die nur unter bestimmten Bedingungen einbezogen werden sollen.

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

Gibt die Partition zurück, in der sich die Ressource befindet. Standardmäßig ist AWS-Regionen die Partition`aws`. Für Ressourcen in anderen Partitionen lautet die Partition `aws-`*partitionname*. Zum Beispiel ist die Partition für Ressourcen in den Regionen China (Peking und Ningxia) `aws-cn` und die Partition für Ressourcen in der Region AWS GovCloud (USA West). `aws-us-gov`

Die Partition ist Teil des ARN für Ressourcen. Durch die Verwendung `AWS::Partition` wird sichergestellt, dass Ihre Vorlagen auf verschiedenen AWS Partitionen korrekt funktionieren.

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

Gibt eine Zeichenfolge zurück, die die Region repräsentiert, in der die umfassende Ressource erstellt wird, z. B. `us-west-2`.

Dies ist einer der am häufigsten verwendeten Pseudo-Parameter, da er es Vorlagen ermöglicht, sich AWS-Regionen ohne Änderung an andere anzupassen.

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

Gibt die ID (ARN) des Stacks zurück, beispielsweise `arn:aws:cloudformation:us-west-2:123456789012:stack/teststack/51af3dc0-da77-11e4-872e-1234567db123`.

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

Gibt den Namen des Stacks zurück, beispielsweise `teststack`.

Der Stapelname wird üblicherweise verwendet, um eindeutige Ressourcennamen zu erstellen, die leicht als zu einem bestimmten Stapel gehörig identifiziert werden können.

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

Gibt das Suffix für die AWS Domain zurück, AWS-Region in der der Stack bereitgestellt wird. Das Suffix ist normalerweise,`amazonaws.com` aber für die Region China (Beijing) lautet das Suffix `amazonaws.com.cn`.

Dieser Parameter ist besonders nützlich bei der Konstruktion URLs für AWS Dienstendpunkte.

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

**Topics**
+ [Grundlegende Verwendung](#pseudo-parameter-basic-example)
+ [Verwenden von AWS::NotificationARNs](#pseudo-parameter-notification-example)
+ [Bedingte Eigenschaften mit AWS::NoValue](#pseudo-parameter-novalue-example)

### Grundlegende Verwendung
<a name="pseudo-parameter-basic-example"></a>

In den folgenden Beispielen werden zwei Ressourcen erstellt: ein Amazon SNS SNS-Thema und ein CloudWatch Alarm, der Benachrichtigungen zu diesem Thema sendet. Sie verwenden`AWS::StackName`, und`AWS::Region`, `AWS::AccountId` um den Stacknamen, die aktuelle AWS-Region ID und die Konto-ID dynamisch in Ressourcennamen, Beschreibungen und ARNs einzufügen.

#### 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}
```

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

In den folgenden Beispielen wird eine Auto Scaling-Gruppe so konfiguriert, dass sie Benachrichtigungen für Instancestart-Ereignisse und Startfehler sendet. Die Konfiguration verwendet den `AWS::NotificationARNs` Pseudo-Parameter, der eine Liste der Amazon SNS-Themen bereitstellt ARNs , die bei der Stack-Erstellung angegeben wurden. Die Funktion `Fn::Select` wählt den ersten ARN aus dieser Liste aus.

#### 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
```

### Bedingte Eigenschaften mit AWS::NoValue
<a name="pseudo-parameter-novalue-example"></a>

Die folgenden Beispiele erstellen eine Amazon RDS DB-Instance, die nur dann einen Snapshot verwendet, wenn eine Snapshot-ID angegeben wird. Wenn die `UseDBSnapshot` Bedingung als wahr ausgewertet wird, wird der `DBSnapshotName` Parameterwert für die Eigenschaft CloudFormation verwendet. `DBSnapshotIdentifier` Wenn die Bedingung als falsch ausgewertet wird, CloudFormation wird die `DBSnapshotIdentifier` Eigenschaft entfernt. 

#### 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
```