

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

# Menggunakan parameter input dengan AWS CloudFormation Guard aturan
<a name="using-input-parameters"></a>

AWS CloudFormation Guard memungkinkan Anda untuk menggunakan parameter input untuk pencarian data dinamis selama validasi. Fitur ini sangat berguna ketika Anda perlu mereferensikan data eksternal dalam aturan Anda. Namun, saat menentukan kunci parameter input, Guard mensyaratkan bahwa tidak ada jalur yang bertentangan. 

## Cara menggunakan
<a name="how-to-use-input-parameters"></a>

1. Gunakan `-i` tanda `--input-parameters` atau untuk menentukan file yang berisi parameter input. Beberapa file parameter input dapat ditentukan dan akan digabungkan untuk membentuk konteks umum. Kunci parameter input tidak dapat memiliki jalur yang bertentangan.

1. Gunakan `-d` tanda `--data` or untuk menentukan file template aktual yang akan divalidasi. 

## Contoh penggunaan
<a name="input-parameters-example-usage"></a>

1. Buat file parameter input (Misalnya,`network.yaml`): 

   ```
   NETWORK:
     allowed_security_groups: ["sg-282850", "sg-292040"]
     allowed_prefix_lists: ["pl-63a5400a", "pl-02cd2c6b"]
   ```

1. Referensikan parameter ini di file aturan penjaga Anda (Misalnya,`security_groups.guard`): 

   ```
   let groups = Resources.*[ Type == 'AWS::EC2::SecurityGroup' ]
   
   let permitted_sgs = NETWORK.allowed_security_groups
   let permitted_pls = NETWORK.allowed_prefix_lists
   rule check_permitted_security_groups_or_prefix_lists(groups) {
       %groups {
           this in %permitted_sgs or
           this in %permitted_pls
       }
   }
   
   rule CHECK_PERMITTED_GROUPS when %groups !empty {
       check_permitted_security_groups_or_prefix_lists(
          %groups.Properties.GroupName
       )
   }
   ```

1. Buat template data yang gagal (Misalnya,`security_groups_fail.yaml`): 

   ```
   # ---
   # AWSTemplateFormatVersion: 2010-09-09
   # Description: CloudFormation - EC2 Security Group
   
   Resources:
     mySecurityGroup:
       Type: AWS::EC2::SecurityGroup
       Properties:
         GroupName: wrong
   ```

1. Jalankan perintah validasi: 

   ```
   cfn-guard validate -r security_groups.guard -i network.yaml -d security_groups_fail.yaml
   ```

   Dalam perintah ini:
   + `-r`menentukan file aturan.
   + `-i`menentukan file parameter masukan.
   + `-d`menentukan file data (template) yang akan divalidasi.

## Beberapa parameter masukan
<a name="multiple-input-parameters"></a>

Anda dapat menentukan beberapa file parameter input: 

```
cfn-guard validate -r rules.guard -i params1.yaml -i params2.yaml -d template.yaml
```

Semua file yang ditentukan dengan `-i` akan digabungkan untuk membentuk satu konteks untuk pencarian parameter. 