

Ini adalah *Panduan Referensi CloudFormation Template* baru. Harap perbarui bookmark dan tautan Anda. Untuk bantuan memulai CloudFormation, lihat [Panduan AWS CloudFormation Pengguna](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

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

# `Fn::FindInMap enhancements`
<a name="intrinsic-function-reference-findinmap-enhancements"></a>

`AWS::LanguageExtensions`Transformasi meningkatkan fungsionalitas fungsi `Fn::FindInMap` intrinsik dalam template. CloudFormation 

`Fn::FindInMap`Fungsi ini digunakan untuk mengambil nilai dari pemetaan yang didefinisikan di `Mappings` bagian template. CloudFormation Namun, `Fn::FindInMap` fungsi standar memiliki keterbatasan, seperti ketidakmampuan untuk menangani pemetaan yang hilang atau menggunakan `Fn::FindInMap` fungsi dengan beberapa fungsi intrinsik yang tertanam di dalamnya.

`AWS::LanguageExtensions`Transformasi mengatasi keterbatasan ini dengan memperkenalkan penyempurnaan berikut:
+ **Dukungan nilai default** - Anda dapat menentukan nilai default yang akan dikembalikan jika pemetaan tidak ditemukan.
+ **Dukungan fungsi intrinsik** — Anda juga dapat menggunakan berbagai fungsi intrinsik yang lebih luas untuk menentukan bidang `Fn::FindInMap` daripada dengan fungsi standar. `Fn::FindInMap`

## Pernyataan
<a name="intrinsic-function-reference-findinmap-enhancements-declaration"></a>

### JSON
<a name="intrinsic-function-reference-findinmap-enhancements-syntax.json"></a>

```
{ "Fn::FindInMap" : [
    "{{MapName}}",
    "{{TopLevelKey}}",
    "{{SecondLevelKey}}",
    {"DefaultValue": "{{DefaultValue}}"}
  ]
}
```

### YAML
<a name="intrinsic-function-reference-findinmap-enhancements-syntax.yaml"></a>

Sintaks untuk nama fungsi penuh:

```
Fn::FindInMap:
  {{- MapName}}
  {{- TopLevelKey}}
  {{- SecondLevelKey}}
  - DefaultValue: {{DefaultValue}}
```

Sintaks untuk bentuk pendek:

```
!FindInMap
  {{- MapName}}
  {{- TopLevelKey}}
  {{- SecondLevelKey}}
  - DefaultValue: {{DefaultValue}}
```

## Parameter
<a name="intrinsic-function-reference-findinmap-enhancements-parameters"></a>

DefaultValue  <a name="DefaultValue"></a>
Nilai yang `Fn::FindInMap` akan menyelesaikan jika tidak `TopLevelKey` and/or `SecondLevelKey` dapat ditemukan dari `MapName` peta. Bidang ini bersifat opsional.

Semua parameter `MapName``TopLevelKey`,`SecondLevelKey`,, dan `DefaultValue` dapat menjadi fungsi intrinsik selama dapat menyelesaikan ke nilai yang valid selama transformasi.

## Contoh
<a name="w2aac28c16c20c15"></a>

Contoh berikut menunjukkan cara menentukan bidang `Fn::FindInMap` saat Anda menambahkan `AWS::LanguageExtensions` transformasi.

### Menggunakan nilai default
<a name="intrinsic-function-reference-findinmap-enhancements-example"></a>

Berikut ini adalah contoh menggunakan nilai default dalam `Fn::FindInMap` fungsi.

#### JSON
<a name="intrinsic-function-reference-findinmap-default-value-example.json"></a>

```
{
  //...
    "Transform": "AWS::LanguageExtensions",
    //...
    "Fn::FindInMap": [
      "RegionMap",
      { "Ref": "AWS::Region" },
      "InstanceType",
      { "DefaultValue": "t3.micro" }
    ]
  //...
}
```

#### YAML
<a name="intrinsic-function-reference-findinmap-default-value-example.yaml"></a>

```
Transform: 'AWS::LanguageExtensions'
#...
    !FindInMap 
        - 'RegionMap'
        - !Ref 'AWS::Region'
        - 'InstanceType'
        - DefaultValue: t3.micro
#...
```

#### Menggunakan fungsi intrinsik untuk menentukan kunci tingkat atas
<a name="intrinsic-function-reference-findinmap-enhancements-example"></a>

Berikut ini adalah contoh menggunakan fungsi dengan `Fn::Select` dan `Fn::FindInMap` fungsi `Fn::Split` intrinsik tertanam di dalamnya untuk menentukan kunci tingkat atas.

##### JSON
<a name="intrinsic-function-reference-findinmap-enhancement-example.json"></a>

```
{
  //...
  "Transform": "AWS::LanguageExtensions",
  //...
      "Fn::FindInMap": [
        "MyMap",
        {
          "Fn::Select": [
            0,
            {
              "Fn::Split": [
                "|",
                { "Ref": "InputKeys" }
              ]
            }
          ]
        },
        "SecondKey"
      ]
//...
}
```

##### YAML
<a name="intrinsic-function-reference-findinmap-enhance-example.yaml"></a>

```
Transform: 'AWS::LanguageExtensions'
#...
    !FindInMap: [MyMap, !Select [0, !Split [|, !Ref InputKeys]], SecondKey]
#...
```

## Fungsi yang didukung
<a name="intrinsic-function-reference-findinmap-enhancements-supported-functions"></a>

Anda dapat menggunakan fungsi-fungsi berikut dalam parameter `Fn::FindInMap:` penyempurnaan:
+ ``Fn::FindInMap``
+ ``Fn::Join``
+ ``Fn: :Sub``
+ ``Fn::If``
+ ``Fn: :Pilih``
+ ``Fn::Length``
+ ``Fn::ToJsonString``
+ ``Fn: :Berpisah``- Kecuali jika digunakan untuk nilai default, `Fn::Split` harus digunakan bersama dengan fungsi intrinsik yang menghasilkan string, seperti atau. ``Fn::Join`` ``Fn: :Pilih``
+ ``Ref``

## Sumber daya terkait
<a name="w2aac28c16c20c19"></a>

Untuk informasi lebih lanjut dan contoh yang menunjukkan cara menggunakan fungsi `Fn::FindInMap` intrinsik, lihat. [`Fn::FindInMap`](intrinsic-function-reference-findinmap.md)

Untuk informasi lebih lanjut tentang `AWS::LanguageExtensions` transformasi, lihat[Tansformasi `AWS::LanguageExtensions`](transform-aws-languageextensions.md).