

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Dapatkan AWS nilai menggunakan parameter semu
<a name="pseudo-parameter-reference"></a>

Parameter semu adalah variabel bawaan yang menyediakan akses ke informasi AWS lingkungan penting seperti akun IDs, nama Wilayah, dan detail tumpukan yang dapat berubah antara penerapan atau lingkungan.

Anda dapat menggunakan parameter semu alih-alih nilai hard-code untuk membuat templat Anda lebih portabel dan lebih mudah digunakan kembali di berbagai wilayah dan wilayah. Akun AWS 

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

Anda dapat mereferensikan parameter semu menggunakan fungsi `Ref` intrinsik atau fungsi intrinsik. `Fn::Sub` 

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

Fungsi `Ref` intrinsik menggunakan sintaks umum berikut. Untuk informasi lebih lanjut, lihat [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>

Fungsi `Fn::Sub` intrinsik menggunakan format berbeda yang mencakup `${}` sintaks di sekitar parameter semu. Untuk informasi selengkapnya, lihat [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}'
```

## Parameter pseudo yang tersedia
<a name="available-pseudo-parameters"></a>

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

Mengembalikan Akun AWS ID akun di mana tumpukan sedang dibuat, seperti`123456789012`.

Parameter semu ini biasanya digunakan saat mendefinisikan peran IAM, kebijakan, dan kebijakan sumber daya lainnya yang melibatkan spesifik akun. ARNs

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

Mengembalikan daftar Nama Sumber Daya Amazon (ARNs) untuk topik Amazon SNS yang menerima pemberitahuan peristiwa tumpukan. Anda dapat menentukan ini ARNs melalui `--notification-arns` opsi di AWS CLI atau melalui konsol saat Anda membuat atau memperbarui tumpukan Anda.

Tidak seperti parameter semu lainnya yang mengembalikan nilai tunggal, `AWS::NotificationARNs` mengembalikan daftar. ARNs Untuk mengakses ARN tertentu dalam daftar, gunakan fungsi `Fn::Select` intrinsik. Untuk informasi selengkapnya, lihat [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>

Menghapus atribut sumber daya yang sesuai jika ditentukan sebagai nilai kembali dalam fungsi intrinsik `Fn::If`. Untuk informasi selengkapnya, lihat [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).

Parameter semu ini sangat berguna untuk membuat properti sumber daya bersyarat yang seharusnya hanya disertakan dalam kondisi tertentu.

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

Mengembalikan partisi tempat sumber daya berada. Untuk standar Wilayah AWS, partisi adalah`aws`. Jika Anda memiliki sumber daya di partisi lain, maka partisi-nya adalah `aws-`*partitionname*. Misalnya, partisi untuk sumber daya di Wilayah Tiongkok (Beijing dan Ningxia) `aws-cn` adalah dan partisi untuk sumber daya di AWS GovCloud Wilayah (AS-Barat) adalah. `aws-us-gov`

Partisi merupakan bagian dari ARN untuk sumber daya. Menggunakan `AWS::Partition` memastikan template Anda bekerja dengan benar di berbagai AWS partisi.

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

Mengembalikan string yang mewakili Wilayah tempat sumber daya yang dicakup sedang dibuat, seperti `us-west-2`.

Ini adalah salah satu parameter semu yang paling umum digunakan, karena memungkinkan template untuk beradaptasi dengan yang berbeda Wilayah AWS tanpa modifikasi.

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

Mengembalikan ID (ARN) dari tumpukan, seperti. `arn:aws:cloudformation:us-west-2:123456789012:stack/teststack/51af3dc0-da77-11e4-872e-1234567db123`

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

Mengembalikan nama tumpukan, seperti`teststack`.

Nama tumpukan biasanya digunakan untuk membuat nama sumber daya unik yang mudah diidentifikasi sebagai milik tumpukan tertentu.

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

Mengembalikan akhiran untuk AWS domain di Wilayah AWS tempat tumpukan digunakan. Akhiran biasanya`amazonaws.com`, tetapi untuk Wilayah Tiongkok (Beijing), sufiksnya adalah. `amazonaws.com.cn`

Parameter ini sangat berguna ketika membangun URLs untuk titik akhir AWS layanan.

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

**Topics**
+ [Penggunaan dasar](#pseudo-parameter-basic-example)
+ [Menggunakan AWS::NotificationARNs](#pseudo-parameter-notification-example)
+ [Properti bersyarat dengan AWS::NoValue](#pseudo-parameter-novalue-example)

### Penggunaan dasar
<a name="pseudo-parameter-basic-example"></a>

Contoh berikut membuat dua sumber daya: topik Amazon SNS dan CloudWatch alarm yang mengirimkan pemberitahuan ke topik itu. Mereka menggunakan`AWS::StackName`,`AWS::Region`, dan `AWS::AccountId` untuk secara dinamis memasukkan nama tumpukan, saat ini Wilayah AWS, dan ID akun ke dalam nama sumber daya, deskripsi, dan. 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}
```

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

Contoh berikut mengonfigurasi grup Auto Scaling untuk mengirim notifikasi misalnya peristiwa peluncuran dan kesalahan peluncuran. Konfigurasi menggunakan parameter `AWS::NotificationARNs` semu, yang menyediakan daftar ARNs topik Amazon SNS yang ditentukan selama pembuatan tumpukan. `Fn::Select`Fungsi memilih ARN pertama dari daftar itu.

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

### Properti bersyarat dengan AWS::NoValue
<a name="pseudo-parameter-novalue-example"></a>

Contoh berikut membuat instans Amazon RDS DB yang menggunakan snapshot hanya jika ID snapshot disediakan. Jika `UseDBSnapshot` kondisi mengevaluasi ke true, CloudFormation menggunakan nilai `DBSnapshotName` parameter untuk `DBSnapshotIdentifier` properti. Jika kondisi dievaluasi menjadi false, CloudFormation hapus `DBSnapshotIdentifier` properti. 

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