

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.

# Tansformasi `AWS::LanguageExtensions`
<a name="transform-aws-languageextensions"></a>

Topik ini menjelaskan cara menggunakan `AWS::LanguageExtensions` transformasi untuk mengaktifkan fungsi dan kemampuan tambahan yang tidak tersedia secara default. 

`AWS::LanguageExtensions`Ini adalah CloudFormation makro yang, ketika direferensikan dalam template tumpukan Anda, memperbarui fungsi intrinsik apa pun yang ditentukan oleh transformasi ke nilai yang diselesaikan dalam template saat Anda membuat atau memperbarui tumpukan menggunakan set perubahan. 

Dengan menyertakan transformasi ini dalam CloudFormation template Anda, Anda dapat mengakses fitur tambahan, seperti`Fn::ForEach`, yang memungkinkan operasi yang lebih maju seperti iterasi. Anda juga dapat menggunakan fungsi intrinsik di tempat-tempat di mana mereka biasanya tidak diizinkan, seperti dalam `Ref` dan `Fn::GetAtt` fungsi.

## Penggunaan
<a name="aws-languageextensions-usage"></a>

Untuk menggunakan `AWS::LanguageExtensions` transformasi, Anda harus mendeklarasikannya di tingkat atas template Anda CloudFormation . Anda tidak dapat menggunakan `AWS::LanguageExtensions` sebagai perubahan yang tertanam di bagian templat lainnya.

Deklarasi harus menggunakan string literal `AWS::LanguageExtensions` sebagai nilainya. Anda tidak dapat menggunakan parameter atau fungsi untuk menentukan nilai perubahan.

### Sintaksis
<a name="aws-languageextensions-syntax"></a>

Untuk mendeklarasikan transformasi ini di CloudFormation template Anda, gunakan sintaks berikut:

### JSON
<a name="aws-languageextensions-syntax.json"></a>

```
{
  "Transform":"AWS::LanguageExtensions",
  "Resources":{
    {{...}}
  }
}
```

### YAML
<a name="aws-languageextensions-syntax.yaml"></a>

```
Transform: AWS::LanguageExtensions
Resources:
  {{...}}
```

`AWS::LanguageExtensions`Transformasi adalah deklarasi mandiri tanpa parameter tambahan.

## Support untuk fungsi tambahan
<a name="aws-languageextensions-supported-functions"></a>

`AWS::LanguageExtensions`Transformasi mendukung fungsi tambahan berikut:
+ [`Fn::ForEach`](intrinsic-function-reference-foreach.md)
+ [`Fn::Length`](intrinsic-function-reference-length.md)
+ [`Fn::ToJsonString`](intrinsic-function-reference-ToJsonString.md)

## Pertimbangan-pertimbangan
<a name="aws-languageextensions-considerations"></a>

Saat menggunakan `AWS::LanguageExtensions` transformasi, ingatlah pertimbangan berikut:
+ Saat Anda memperbarui tumpukan yang menggunakan `AWS::LanguageExtensions` transformasi, sebaiknya Anda tidak menggunakan opsi Gunakan **templat yang ada** di CloudFormation konsol, atau opsi baris perintah yang setara`--use-previous-template`. `AWS::LanguageExtensions`Transformasi menyelesaikan parameter ke nilai literal selama pemrosesan. Saat Anda CloudFormation menggunakan`--use-previous-template`, gunakan templat yang diproses ini dengan nilai literal lama, mencegah nilai parameter baru dan pembaruan parameter Systems Manager diterapkan. Sebagai gantinya, berikan template asli untuk memastikan parameter diselesaikan kembali dengan nilai saat ini.
+ Sintaks YAMAL bentuk pendek tidak didukung dalam template untuk fungsi intrinsik yang hanya tersedia dalam transformasi. `AWS::LanguageExtensions` Gunakan referensi eksplisit untuk fungsi-fungsi ini. Misalnya, gunakan `Fn::Length` sebagai ganti dari `!Length`.
+  AWS SAM CLI saat ini tidak mendukung fungsi `Fn::ForEach` intrinsik transformasi. `AWS::LanguageExtensions`
+ Jika Anda menggunakan beberapa transformasi, gunakan format daftar. Jika Anda menggunakan makro kustom, place AWS-provided transforms setelah makro kustom Anda. Jika Anda menggunakan kedua `AWS::LanguageExtensions` dan `AWS::Serverless` transformasi, `AWS::LanguageExtensions` transformasi harus datang sebelum `AWS::Serverless` transformasi dalam daftar.
+ Fungsi dan atribut yang disediakan oleh `AWS::LanguageExtensions` transformasi hanya didukung di`Resources`,`Conditions`, dan `Outputs` bagian template Anda.

## Contoh
<a name="aws-languageextensions-examples"></a>

Contoh berikut menunjukkan bagaimana menggunakan `AWS::LanguageExtensions` transformasi untuk menggunakan fungsi `Fn::Length` intrinsik, yang ditentukan oleh transformasi.

### JSON
<a name="aws-languageextensions-example.json"></a>

```
{
    "AWSTemplateFormatVersion": "2010-09-09",
    "Transform": "AWS::LanguageExtensions",
    "Parameters": {
        "QueueList": {
            "Type": "CommaDelimitedList"
        },
        "QueueNameParam": {
            "Description": "Name for your SQS queue",
            "Type": "String"
        }
    },
    "Resources": {
        "Queue": {
            "Type": "AWS::SQS::Queue",
            "Properties": {
                "QueueName": {
                    "Ref": "QueueNameParam"
                },
                "DelaySeconds": {
                    "Fn::Length": {
                        "Ref": "QueueList"
                    }
                }
            }
        }
    }
}
```

### YAML
<a name="aws-languageextensions-example.yaml"></a>

```
AWSTemplateFormatVersion: 2010-09-09
Transform: AWS::LanguageExtensions
Parameters:
  QueueList:
    Type: CommaDelimitedList
  QueueNameParam:
    Description: Name for your SQS queue
    Type: String
Resources:
  Queue:
    Type: AWS::SQS::Queue
    Properties:
      QueueName: !Ref QueueNameParam
      DelaySeconds:
        'Fn::Length': !Ref QueueList
```

## Sumber daya terkait
<a name="aws-languageextensions-related-resources"></a>

Untuk contoh lainnya, lihat topik berikut.
+ [`Fn::ForEach`](intrinsic-function-reference-foreach.md)
+ [`Fn::Length`](intrinsic-function-reference-length.md)
+ [`Fn::ToJsonString`](intrinsic-function-reference-ToJsonString.md)
+ [`Ref`](intrinsic-function-reference-ref.md)
+ [`Fn::GetAtt`](intrinsic-function-reference-getatt.md)
+ [`Fn::FindInMap enhancements`](intrinsic-function-reference-findinmap-enhancements.md)

Untuk informasi umum tentang penggunaan makro, lihat [Melakukan pemrosesan kustom pada CloudFormation templat dengan makro templat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html) di *AWS CloudFormation Panduan Pengguna*.