

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

# Membuat flag fitur dan data konfigurasi formulir gratis di AWS AppConfig
<a name="creating-feature-flags-and-configuration-data"></a>

Topik di bagian ini membantu Anda menyelesaikan tugas-tugas berikut AWS AppConfig. Tugas-tugas ini membuat artefak penting untuk menyebarkan data konfigurasi.

**1. [Buat namespace aplikasi](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-creating-namespace.html)**  
Untuk membuat namespace aplikasi, Anda membuat AWS AppConfig artefak yang disebut aplikasi. Aplikasi hanyalah konstruksi organisasi seperti folder.

**2. [Ciptakan lingkungan](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-creating-environment.html)**  
Untuk setiap AWS AppConfig aplikasi, Anda menentukan satu atau lebih lingkungan. Lingkungan adalah kelompok penyebaran AWS AppConfig target yang logis, seperti aplikasi di `Production` lingkungan `Beta` atau. Anda juga dapat menentukan lingkungan untuk subkomponen aplikasi, seperti`AWS Lambda functions`,,`Containers`, `Web``Mobile`, dan`Back-end`.  
Anda dapat mengonfigurasi CloudWatch alarm Amazon untuk setiap lingkungan untuk secara otomatis mengembalikan perubahan konfigurasi yang bermasalah. Sistem memantau alarm selama deployment konfigurasi. Jika alarm dipicu, sistem memutar kembali konfigurasi.

**3. [Buat profil konfigurasi](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-creating-configuration-profile.html)**  
*Data konfigurasi* adalah kumpulan pengaturan yang memengaruhi perilaku aplikasi Anda. *Profil konfigurasi* mencakup, antara lain, URI yang memungkinkan AWS AppConfig untuk menemukan data konfigurasi Anda di lokasi yang disimpan dan jenis konfigurasi. AWS AppConfig mendukung jenis profil konfigurasi berikut:  
+ **Bendera fitur**: Anda dapat menggunakan bendera fitur untuk mengaktifkan atau menonaktifkan fitur dalam aplikasi Anda atau untuk mengonfigurasi karakteristik yang berbeda dari fitur aplikasi Anda menggunakan atribut bendera. AWS AppConfig menyimpan konfigurasi bendera fitur di penyimpanan konfigurasi yang AWS AppConfig dihosting dalam format bendera fitur yang berisi data dan metadata tentang bendera Anda dan atribut bendera. URI untuk konfigurasi flag fitur sederhana`hosted`. 
+ **Konfigurasi bentuk bebas**: Konfigurasi bentuk bebas dapat menyimpan data di salah satu alat berikut dan Systems Layanan AWS Manager:
  + AWS AppConfig toko konfigurasi yang dihosting
  + Amazon Simple Storage Service
  + AWS CodePipeline
  + AWS Secrets Manager
  + AWS Systems Manager (SSM) Parameter Menyimpan
  + Toko Dokumen SSM
Jika memungkinkan, kami sarankan untuk menghosting data konfigurasi Anda di toko konfigurasi yang AWS AppConfig dihosting karena menawarkan sebagian besar fitur dan penyempurnaan.

**4. (Opsional, tetapi disarankan) [Buat bendera fitur multi-varian](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-creating-multi-variant-feature-flags.html)**  
AWS AppConfig menawarkan flag fitur dasar, yang (jika diaktifkan) mengembalikan kumpulan data konfigurasi tertentu per permintaan. Untuk mendukung segmentasi pengguna dan kasus penggunaan pemisahan lalu lintas dengan lebih baik, AWS AppConfig juga menawarkan tanda fitur multi-varian, yang memungkinkan Anda menentukan serangkaian nilai tanda yang mungkin untuk dikembalikan untuk permintaan. Anda juga dapat mengonfigurasi status yang berbeda (diaktifkan atau dinonaktifkan) untuk bendera multi-varian. Saat meminta flag yang dikonfigurasi dengan varian, aplikasi Anda menyediakan konteks yang AWS AppConfig mengevaluasi terhadap serangkaian aturan yang ditetapkan pengguna. Bergantung pada konteks yang ditentukan dalam permintaan dan aturan yang ditetapkan untuk varian, AWS AppConfig mengembalikan nilai flag yang berbeda ke aplikasi.

**Topics**
+ [

# Memahami peran IAM profil konfigurasi
](appconfig-creating-configuration-and-profile-iam-role.md)
+ [

# Membuat namespace untuk aplikasi Anda di AWS AppConfig
](appconfig-creating-namespace.md)
+ [

# Membuat lingkungan untuk aplikasi Anda di AWS AppConfig
](appconfig-creating-environment.md)
+ [

# Membuat profil konfigurasi di AWS AppConfig
](appconfig-creating-configuration-profile.md)

# Memahami peran IAM profil konfigurasi
<a name="appconfig-creating-configuration-and-profile-iam-role"></a>

Anda dapat membuat peran IAM yang menyediakan akses ke data konfigurasi dengan menggunakan AWS AppConfig. Atau Anda dapat membuat peran IAM sendiri. Jika Anda membuat peran menggunakan AWS AppConfig, sistem akan membuat peran dan menentukan salah satu kebijakan izin berikut, tergantung pada jenis sumber konfigurasi yang Anda pilih.

 **Sumber konfigurasi adalah rahasia Secrets Manager** 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetSecretValue"
             ],
            "Resource": [
                "arn:aws:secretsmanager:us-east-1:111122223333:secret:secret_name-a1b2c3"
            ]
        }
    ]
}
```

------

 **Sumber konfigurasi adalah parameter Parameter Store** 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:GetParameter"
            ],
            "Resource": [
                "arn:aws:ssm:us-east-1:111122223333:parameter/parameter_name"
            ]
        }
    ]
    }
```

------

 **Sumber konfigurasi adalah dokumen SSM** 

------
#### [ JSON ]

****  

```
{

    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:GetDocument"
            ],
            "Resource": [
                "arn:aws:ssm:us-east-1:111122223333:document/document_name"
            ]
        }
    ]
}
```

------

Jika Anda membuat peran dengan menggunakan AWS AppConfig, sistem juga menciptakan hubungan kepercayaan berikut untuk peran tersebut. 

------
#### [ JSON ]

****  

```
{

  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "appconfig.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

# Membuat namespace untuk aplikasi Anda di AWS AppConfig
<a name="appconfig-creating-namespace"></a>

Prosedur di bagian ini membantu Anda membuat AWS AppConfig artefak yang disebut aplikasi. Aplikasi hanyalah konstruksi organisasi seperti folder yang mengidentifikasi namespace aplikasi Anda. Konstruksi organisasi ini memiliki hubungan dengan beberapa unit kode yang dapat dieksekusi. Misalnya, Anda dapat membuat aplikasi yang dipanggil MyMobileApp untuk mengatur dan mengelola data konfigurasi untuk aplikasi seluler yang diinstal oleh pengguna Anda. Anda harus membuat artefak ini sebelum dapat digunakan AWS AppConfig untuk menyebarkan dan mengambil bendera fitur atau data konfigurasi formulir gratis. 

Prosedur berikut memberi Anda opsi untuk mengaitkan ekstensi dengan profil konfigurasi bendera fitur. *Ekstensi* menambah kemampuan Anda untuk menyuntikkan logika atau perilaku pada titik yang berbeda selama AWS AppConfig alur kerja membuat atau menerapkan konfigurasi. Untuk informasi selengkapnya, lihat [Memahami AWS AppConfig ekstensi](working-with-appconfig-extensions-about.md).

**catatan**  
Anda dapat menggunakan AWS CloudFormation untuk membuat AWS AppConfig artefak, termasuk aplikasi, lingkungan, profil konfigurasi, penerapan, strategi penerapan, dan versi konfigurasi yang dihosting. Untuk informasi selengkapnya, lihat [referensi jenis AWS AppConfig sumber daya](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_AppConfig.html) di *Panduan AWS CloudFormation Pengguna*.

**Topics**
+ [

## Membuat AWS AppConfig aplikasi (konsol)
](#appconfig-creating-application-console)
+ [

## Membuat AWS AppConfig aplikasi (baris perintah)
](#appconfig-creating-application-commandline)

## Membuat AWS AppConfig aplikasi (konsol)
<a name="appconfig-creating-application-console"></a>

Gunakan prosedur berikut untuk membuat AWS AppConfig aplikasi dengan menggunakan AWS Systems Manager konsol.

**Untuk membuat aplikasi**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/appconfig/](https://console.aws.amazon.com/systems-manager/appconfig/).

1. Di panel navigasi, pilih **Aplikasi**, lalu pilih **Buat aplikasi**.

1. Untuk **Nama**, masukkan nama untuk aplikasi.

1. Untuk **Deskripsi**, masukkan informasi tentang aplikasi.

1. (Opsional) Di bagian **Ekstensi**, pilih ekstensi dari daftar. Untuk informasi selengkapnya, lihat [Memahami AWS AppConfig ekstensi](working-with-appconfig-extensions-about.md).

1. (Opsional) Di **tag** bagian, masukkan kunci dan nilai opsional. Anda dapat menentukan maksimum 50 tag untuk sumber daya. 

1. Pilih **Create application** (Buat aplikasi).

AWS AppConfig membuat aplikasi dan kemudian menampilkan tab **Lingkungan**. Lanjut ke [Membuat lingkungan untuk aplikasi Anda di AWS AppConfig](appconfig-creating-environment.md).

## Membuat AWS AppConfig aplikasi (baris perintah)
<a name="appconfig-creating-application-commandline"></a>

Prosedur berikut menjelaskan cara menggunakan AWS CLI (di Linux atau Windows) atau Alat AWS untuk PowerShell untuk membuat AWS AppConfig aplikasi.

**Untuk membuat aplikasi langkah demi langkah**

1. Buka AWS CLI.

1. Jalankan perintah berikut untuk membuat aplikasi. 

------
#### [ Linux ]

   ```
   aws appconfig create-application \
     --name A_name_for_the_application \
     --description A_description_of_the_application \  
     --tags User_defined_key_value_pair_metadata_for_the_application
   ```

------
#### [ Windows ]

   ```
   aws appconfig create-application ^
     --name A_name_for_the_application ^
     --description A_description_of_the_application ^
     --tags User_defined_key_value_pair_metadata_for_the_application
   ```

------
#### [ PowerShell ]

   ```
   New-APPCApplication `
     -Name Name_for_the_application `
     -Description Description_of_the_application `
     -Tag Hashtable_type_user_defined_key_value_pair_metadata_for_the_application
   ```

------

   Sistem mengembalikan informasi seperti berikut ini.

------
#### [ Linux ]

   ```
   {
      "Id": "Application ID",
      "Name": "Application name",
      "Description": "Description of the application"
   }
   ```

------
#### [ Windows ]

   ```
   {
      "Id": "Application ID",
      "Name": "Application name",
      "Description": "Description of the application"
   }
   ```

------
#### [ PowerShell ]

   ```
   ContentLength    : Runtime of the command
   Description      : Description of the application
   HttpStatusCode   : HTTP Status of the runtime
   Id               : Application ID
   Name             : Application name
   ResponseMetadata : Runtime Metadata
   ```

------

# Membuat lingkungan untuk aplikasi Anda di AWS AppConfig
<a name="appconfig-creating-environment"></a>

Untuk setiap AWS AppConfig aplikasi, Anda menentukan satu atau lebih lingkungan. Lingkungan adalah kelompok penyebaran logis AppConfig target, seperti aplikasi dalam `Beta` atau `Production` lingkungan, AWS Lambda fungsi, atau wadah. Anda juga dapat menentukan lingkungan untuk subkomponen aplikasi, seperti`Web`,`Mobile`, dan`Back-end`. Anda dapat mengonfigurasi CloudWatch alarm Amazon untuk setiap lingkungan. Sistem memantau alarm selama deployment konfigurasi. Jika alarm dipicu, sistem memutar kembali konfigurasi. 

**Sebelum Anda Memulai**  
Jika Anda ingin mengaktifkan AWS AppConfig untuk memutar kembali konfigurasi sebagai respons terhadap CloudWatch alarm, maka Anda harus mengonfigurasi peran AWS Identity and Access Management (IAM) dengan izin AWS AppConfig untuk mengaktifkan respons alarm. CloudWatch Anda memilih peran ini dalam prosedur berikut. Untuk informasi selengkapnya, lihat [Konfigurasikan izin untuk rollback otomatis](setting-up-appconfig.md#getting-started-with-appconfig-cloudwatch-alarms-permissions).

**Topics**
+ [

## Menciptakan AWS AppConfig lingkungan (konsol)
](#appconfig-creating-environment-console)
+ [

## Menciptakan AWS AppConfig lingkungan (baris perintah)
](#appconfig-creating-environment-commandline)

## Menciptakan AWS AppConfig lingkungan (konsol)
<a name="appconfig-creating-environment-console"></a>

Gunakan prosedur berikut untuk membuat AWS AppConfig lingkungan dengan menggunakan AWS Systems Manager konsol.

**Untuk membuat lingkungan**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/appconfig/](https://console.aws.amazon.com/systems-manager/appconfig/).

1. Di panel navigasi, pilih **Aplikasi**, lalu pilih nama aplikasi untuk membuka halaman detail.

1. Pilih tab **Lingkungan**, lalu pilih **Buat lingkungan**.

1. Untuk **Nama**, masukkan nama untuk lingkungan.

1. Untuk **Deskripsi**, masukkan informasi tentang lingkungan.

1. (Opsional) Di bagian **Monitor**, pilih bidang **peran IAM**, lalu pilih peran IAM dengan izin untuk memanggil `cloudwatch:DescribeAlarms` metrik yang ingin Anda pantau untuk alarm.

1. Dalam daftar **CloudWatch alarm**, masukkan Nama Sumber Daya Amazon (ARNs) satu atau beberapa metrik untuk dipantau. AWS AppConfig memutar kembali penerapan konfigurasi Anda jika salah satu metrik ini masuk ke status. `ALARM` Untuk informasi tentang metrik yang direkomendasikan, lihat [Memantau penyebaran untuk rollback otomatis](monitoring-deployments.md)

1. (Opsional) Di bagian **Ekstensi asosiasi**, pilih ekstensi dari daftar. Untuk informasi selengkapnya, lihat [Memahami AWS AppConfig ekstensi](working-with-appconfig-extensions-about.md).

1. (Opsional) Di **tag** bagian, masukkan kunci dan nilai opsional. Anda dapat menentukan maksimum 50 tag untuk sumber daya. 

1. Pilih **Buat lingkungan**.

AWS AppConfig menciptakan lingkungan dan kemudian menampilkan halaman **detail Lingkungan**. Lanjut ke [Membuat profil konfigurasi di AWS AppConfig](appconfig-creating-configuration-profile.md).

## Menciptakan AWS AppConfig lingkungan (baris perintah)
<a name="appconfig-creating-environment-commandline"></a>

Prosedur berikut menjelaskan cara menggunakan AWS CLI (di Linux atau Windows) atau Alat AWS untuk PowerShell untuk membuat AWS AppConfig lingkungan.

**Untuk membuat lingkungan selangkah demi selangkah**

1. Buka AWS CLI.

1. Jalankan perintah berikut untuk membuat lingkungan. 

------
#### [ Linux ]

   ```
   aws appconfig create-environment \
     --application-id The_application_ID \
     --name A_name_for_the_environment \
     --description A_description_of_the_environment \
     --monitors "AlarmArn=ARN_of_the_Amazon_CloudWatch_alarm,AlarmArnRole=ARN_of_the_IAM role_for_AWS AppConfig_to_monitor_AlarmArn" \
     --tags User_defined_key_value_pair_metadata_of_the_environment
   ```

------
#### [ Windows ]

   ```
   aws appconfig create-environment ^
     --application-id The_application_ID ^
     --name A_name_for_the_environment ^
     --description A_description_of_the_environment ^
     --monitors "AlarmArn=ARN_of_the_Amazon_CloudWatch_alarm,AlarmArnRole=ARN_of_the_IAM role_for_AWS AppConfig_to_monitor_AlarmArn" ^
     --tags User_defined_key_value_pair_metadata_of_the_environment
   ```

------
#### [ PowerShell ]

   ```
   New-APPCEnvironment `
     -Name Name_for_the_environment `
     -ApplicationId The_application_ID
     -Description Description_of_the_environment `
     -Monitors @{"AlarmArn=ARN_of_the_Amazon_CloudWatch_alarm,AlarmArnRole=ARN_of_the_IAM role_for_AWS AppConfig_to_monitor_AlarmArn"} `
     -Tag Hashtable_type_user_defined_key_value_pair_metadata_of_the_environment
   ```

------

   Sistem mengembalikan informasi seperti berikut ini.

------
#### [ Linux ]

   ```
   {
      "ApplicationId": "The application ID",
      "Id": "The_environment ID",
      "Name": "Name of the environment",
      "State": "The state of the environment",
      "Description": "Description of the environment",
      
      "Monitors": [ 
         { 
            "AlarmArn": "ARN of the Amazon CloudWatch alarm",
            "AlarmRoleArn": "ARN of the IAM role for AppConfig to monitor AlarmArn"
         }
      ]  
   }
   ```

------
#### [ Windows ]

   ```
   {
      "ApplicationId": "The application ID",
      "Id": "The environment ID",
      "Name": "Name of the environment",
      "State": "The state of the environment"
      "Description": "Description of the environment",
      
      "Monitors": [ 
         { 
            "AlarmArn": "ARN of the Amazon CloudWatch alarm",
            "AlarmRoleArn": "ARN of the IAM role for AppConfig to monitor AlarmArn"
         }
      ] 
   }
   ```

------
#### [ PowerShell ]

   ```
   ApplicationId     : The application ID
   ContentLength     : Runtime of the command
   Description       : Description of the environment
   HttpStatusCode    : HTTP Status of the runtime
   Id                : The environment ID
   Monitors          : {ARN of the Amazon CloudWatch alarm, ARN of the IAM role for AppConfig to monitor AlarmArn}
   Name              : Name of the environment
   Response Metadata : Runtime Metadata
   State             : State of the environment
   ```

------

Lanjut ke [Membuat profil konfigurasi di AWS AppConfig](appconfig-creating-configuration-profile.md).

# Membuat profil konfigurasi di AWS AppConfig
<a name="appconfig-creating-configuration-profile"></a>

*Data konfigurasi* adalah kumpulan pengaturan yang memengaruhi perilaku aplikasi Anda. *Profil konfigurasi* mencakup, antara lain, URI yang memungkinkan AWS AppConfig untuk menemukan data konfigurasi Anda di lokasi yang disimpan dan jenis konfigurasi. AWS AppConfig mendukung jenis profil konfigurasi berikut:
+ **Bendera fitur**: Anda dapat menggunakan bendera fitur untuk mengaktifkan atau menonaktifkan fitur dalam aplikasi Anda atau untuk mengonfigurasi karakteristik yang berbeda dari fitur aplikasi Anda menggunakan atribut bendera. AWS AppConfig menyimpan konfigurasi bendera fitur di penyimpanan konfigurasi yang AWS AppConfig dihosting dalam format bendera fitur yang berisi data dan metadata tentang bendera Anda dan atribut bendera. URI untuk konfigurasi flag fitur sederhana`hosted`. 
+ **Konfigurasi bentuk bebas**: Konfigurasi bentuk bebas dapat menyimpan data di salah satu alat berikut dan Systems Layanan AWS Manager:
  + AWS AppConfig toko konfigurasi yang dihosting
  + Amazon Simple Storage Service
  + AWS CodePipeline
  + AWS Secrets Manager
  + AWS Systems Manager (SSM) Parameter Menyimpan
  + Toko Dokumen SSM

**catatan**  
Jika memungkinkan, kami sarankan untuk menghosting data konfigurasi Anda di toko konfigurasi yang AWS AppConfig dihosting karena menawarkan sebagian besar fitur dan penyempurnaan.

Berikut adalah beberapa contoh data konfigurasi untuk membantu Anda lebih memahami berbagai jenis data konfigurasi dan bagaimana mereka dapat digunakan baik dalam flag fitur atau bebas dari profil konfigurasi.

 **Data konfigurasi bendera fitur** 

Data konfigurasi tanda fitur berikut memungkinkan atau menonaktifkan pembayaran seluler dan pembayaran default berdasarkan per wilayah.

------
#### [ JSON ]

```
{
  "allow_mobile_payments": {
    "enabled": false
  },
  "default_payments_per_region": {
    "enabled": true
  }
}
```

------
#### [ YAML ]

```
---
allow_mobile_payments:
  enabled: false
default_payments_per_region:
  enabled: true
```

------

 **Data konfigurasi operasional** 

Data konfigurasi bentuk bebas berikut memberlakukan batasan tentang cara aplikasi memproses permintaan.

------
#### [ JSON ]

```
{
  "throttle-limits": {
    "enabled": "true",
    "throttles": [
      {
        "simultaneous_connections": 12
      },
      {
        "tps_maximum": 5000
      }
    ],
    "limit-background-tasks": [
      true
    ]
  }
}
```

------
#### [ YAML ]

```
---
throttle-limits:
  enabled: 'true'
  throttles:
  - simultaneous_connections: 12
  - tps_maximum: 5000
  limit-background-tasks:
  - true
```

------

 **Akses data konfigurasi daftar kontrol** 

Data konfigurasi bentuk bebas daftar kontrol akses berikut menentukan pengguna atau grup mana yang dapat mengakses aplikasi.

------
#### [ JSON ]

```
{
  "allow-list": {
    "enabled": "true",
    "cohorts": [
      {
        "internal_employees": true
      },
      {
        "beta_group": false
      },
      {
        "recent_new_customers": false
      },
      {
        "user_name": "Jane_Doe"
      },
      {
        "user_name": "John_Doe"
      }
    ]
  }
}
```

------
#### [ YAML ]

```
---
allow-list:
  enabled: 'true'
  cohorts:
  - internal_employees: true
  - beta_group: false
  - recent_new_customers: false
  - user_name: Jane_Doe
  - user_name: Ashok_Kumar
```

------

**Topics**
+ [

# Membuat profil konfigurasi bendera fitur di AWS AppConfig
](appconfig-creating-configuration-and-profile-feature-flags.md)
+ [

# Membuat profil konfigurasi formulir gratis di AWS AppConfig
](appconfig-free-form-configurations-creating.md)
+ [

# Membuat profil konfigurasi untuk sumber data non-native
](appconfig-creating-configuration-profile-other-data-sources.md)

# Membuat profil konfigurasi bendera fitur di AWS AppConfig
<a name="appconfig-creating-configuration-and-profile-feature-flags"></a>

Anda dapat menggunakan bendera fitur untuk mengaktifkan atau menonaktifkan fitur dalam aplikasi Anda atau untuk mengonfigurasi karakteristik yang berbeda dari fitur aplikasi Anda menggunakan atribut bendera. AWS AppConfig menyimpan konfigurasi bendera fitur di penyimpanan konfigurasi yang AWS AppConfig dihosting dalam format bendera fitur yang berisi data dan metadata tentang bendera Anda dan atribut bendera.

**catatan**  
Saat membuat profil konfigurasi flag fitur, Anda dapat membuat flag fitur dasar sebagai bagian dari alur kerja profil konfigurasi. AWS AppConfig juga mendukung bendera fitur multi-varian. *Bendera fitur multi-varian* memungkinkan Anda untuk menentukan satu set nilai bendera yang mungkin untuk dikembalikan untuk permintaan. Saat meminta flag yang dikonfigurasi dengan varian, aplikasi Anda menyediakan konteks yang AWS AppConfig mengevaluasi terhadap serangkaian aturan yang ditetapkan pengguna. Bergantung pada konteks yang ditentukan dalam permintaan dan aturan yang ditetapkan untuk varian, AWS AppConfig mengembalikan nilai flag yang berbeda ke aplikasi.  
Untuk membuat flag fitur multi-varian, buat profil konfigurasi terlebih dahulu, lalu edit flag apa pun di dalam profil konfigurasi untuk menambahkan varian. Untuk informasi selengkapnya, lihat [Membuat bendera fitur multi-varian](appconfig-creating-multi-variant-feature-flags.md).

**Topics**
+ [

## Memahami atribut bendera fitur
](#appconfig-creating-configuration-profile-feature-flag-attributes)
+ [

# Membuat profil konfigurasi bendera fitur (konsol)
](appconfig-creating-feature-flag-configuration-create-console.md)
+ [

# Membuat profil konfigurasi bendera fitur (baris perintah)
](appconfig-creating-feature-flag-configuration-commandline.md)
+ [

# Membuat bendera fitur multi-varian
](appconfig-creating-multi-variant-feature-flags.md)
+ [

# Memahami referensi tipe untuk AWS.AppConfig.FeatureFlags
](appconfig-type-reference-feature-flags.md)
+ [

# Menyimpan versi bendera fitur sebelumnya ke versi baru
](appconfig-creating-configuration-profile-feature-flags-editing-version.md)

## Memahami atribut bendera fitur
<a name="appconfig-creating-configuration-profile-feature-flag-attributes"></a>

Saat membuat profil konfigurasi flag fitur—atau membuat flag baru dalam profil konfigurasi yang ada—Anda dapat menentukan atribut dan batasan yang sesuai untuk flag tersebut. Atribut adalah bidang yang Anda kaitkan dengan flag fitur untuk mengekspresikan properti yang terkait dengan flag fitur Anda. Atribut dikirimkan ke aplikasi Anda dengan kunci bendera dan `enable` atau `disable` nilai bendera.

Batasan memastikan bahwa nilai atribut yang tidak terduga tidak diterapkan ke aplikasi Anda. Gambar berikut menunjukkan sebuah contoh.

![\[Contoh atribut bendera untuk bendera AWS AppConfig fitur\]](http://docs.aws.amazon.com/id_id/appconfig/latest/userguide/images/appconfig-flag-attributes.png)


**catatan**  
Perhatikan informasi berikut tentang atribut bendera.  
Untuk nama atribut, kata “diaktifkan” dicadangkan. Anda tidak dapat membuat atribut flag fitur yang disebut “enabled”. Tidak ada kata-kata lain yang dicadangkan.
Atribut flag fitur hanya disertakan dalam `GetLatestConfiguration` respons jika flag tersebut diaktifkan. 
Kunci atribut bendera untuk bendera tertentu harus unik. 

AWS AppConfig mendukung jenis atribut bendera berikut dan kendala yang sesuai.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/appconfig/latest/userguide/appconfig-creating-configuration-and-profile-feature-flags.html)

# Membuat profil konfigurasi bendera fitur (konsol)
<a name="appconfig-creating-feature-flag-configuration-create-console"></a>

Gunakan prosedur berikut untuk membuat profil konfigurasi tanda AWS AppConfig fitur dengan menggunakan AWS AppConfig konsol. Pada saat Anda membuat profil konfigurasi, Anda juga dapat membuat bendera fitur dasar. 

**Untuk membuat profil konfigurasi**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/appconfig/](https://console.aws.amazon.com/systems-manager/appconfig/).

1. Di panel navigasi, pilih **Aplikasi**, lalu pilih aplikasi yang Anda buat. [Membuat namespace untuk aplikasi Anda di AWS AppConfig](appconfig-creating-namespace.md)

1. Pada tab **Profil konfigurasi dan bendera fitur**, pilih **Buat konfigurasi**.

1. Di bagian **Opsi konfigurasi**, pilih **Bendera fitur**.

1. Di bagian **Profil konfigurasi**, untuk **nama profil Konfigurasi**, masukkan nama.

1. (Opsional) Perluas **Deskripsi** dan masukkan deskripsi.

1. (Opsional) Perluas **Opsi tambahan** dan selesaikan yang berikut ini, seperlunya.

   1. Dalam daftar **Enkripsi**, pilih tombol AWS Key Management Service (AWS KMS) dari daftar. Kunci yang dikelola pelanggan ini memungkinkan Anda mengenkripsi versi data konfigurasi baru di toko konfigurasi yang AWS AppConfig dihosting. Untuk informasi selengkapnya tentang kunci ini, lihat **AWS AppConfig mendukung kunci manajer pelanggan**[Keamanan di AWS AppConfig](appconfig-security.md).

   1. Di bagian **Tag**, pilih **Tambahkan tag baru**, lalu tentukan kunci dan nilai opsional. 

1. Pilih **Berikutnya**.

1. Di bagian **Definisi bendera fitur**, untuk **nama Bendera**, masukkan nama.

1. Untuk **tombol Bendera** masukkan pengenal bendera untuk membedakan bendera dalam profil konfigurasi yang sama. Bendera dalam profil konfigurasi yang sama tidak dapat memiliki kunci yang sama. Setelah bendera dibuat, Anda dapat mengedit nama bendera, tetapi bukan tombol bendera. 

1. (Opsional) Perluas **Deskripsi** dan masukkan informasi tentang bendera ini.

1. Pilih **Ini adalah bendera jangka pendek** dan secara opsional memilih tanggal kapan bendera harus dinonaktifkan atau dihapus. AWS AppConfig *tidak* menonaktifkan bendera pada tanggal penghentian. 

1. (Opsional) Di bagian **atribut bendera fitur**, pilih **Tentukan atribut**. Atribut memungkinkan Anda untuk memberikan nilai tambahan dalam flag Anda. Untuk informasi selengkapnya tentang atribut dan kendala, lihat. [Memahami atribut bendera fitur](appconfig-creating-configuration-and-profile-feature-flags.md#appconfig-creating-configuration-profile-feature-flag-attributes)

   1. Untuk **Key**, tentukan tombol bendera dan pilih jenisnya dari daftar **Type**. Untuk informasi tentang opsi yang didukung untuk bidang **Nilai** dan Batasan, lihat bagian **yang** direferensikan sebelumnya tentang atribut.

   1. Pilih **Nilai yang diperlukan** untuk menentukan apakah nilai atribut diperlukan.

   1. Pilih **Tentukan atribut** untuk menambahkan atribut tambahan.

1. Di bagian **Nilai tanda fitur**, pilih **Diaktifkan** untuk mengaktifkan bendera. Gunakan sakelar yang sama ini untuk menonaktifkan tanda saat mencapai tanggal penghentian yang ditentukan, jika berlaku.

1. Pilih **Berikutnya**.

1. Pada halaman **Tinjau dan simpan**, verifikasi detail bendera dan kemudian **Simpan dan lanjutkan untuk menerapkan**.

Lanjut ke [Menerapkan flag fitur dan data konfigurasi di AWS AppConfig](deploying-feature-flags.md).

# Membuat profil konfigurasi bendera fitur (baris perintah)
<a name="appconfig-creating-feature-flag-configuration-commandline"></a>

Prosedur berikut menjelaskan cara menggunakan AWS Command Line Interface (di Linux atau Windows) atau Alat untuk Windows PowerShell untuk membuat profil konfigurasi bendera AWS AppConfig fitur. Pada saat Anda membuat profil konfigurasi, Anda juga dapat membuat bendera fitur dasar.

**Untuk membuat konfigurasi flag fitur**

1. Buka AWS CLI.

1. Buat profil konfigurasi bendera fitur yang menentukan **Tipe** sebagai`AWS.AppConfig.FeatureFlags`. Profil konfigurasi harus digunakan `hosted` untuk URI lokasi.

------
#### [ Linux ]

   ```
   aws appconfig create-configuration-profile \
     --application-id APPLICATION_ID \
     --name CONFIGURATION_PROFILE_NAME \
     --location-uri hosted \
     --type AWS.AppConfig.FeatureFlags
   ```

------
#### [ Windows ]

   ```
   aws appconfig create-configuration-profile ^
     --application-id APPLICATION_ID ^
     --name CONFIGURATION_PROFILE_NAME ^
     --location-uri hosted ^
     --type AWS.AppConfig.FeatureFlags
   ```

------
#### [ PowerShell ]

   ```
   New-APPCConfigurationProfile `
     -Name CONFIGURATION_PROFILE_NAME `
     -ApplicationId APPLICATION_ID `
     -LocationUri hosted `
     -Type AWS.AppConfig.FeatureFlags
   ```

------

1. Buat data konfigurasi bendera fitur Anda. Data Anda harus dalam format JSON dan sesuai dengan skema `AWS.AppConfig.FeatureFlags` JSON. Untuk informasi lebih lanjut tentang skema, lihat[Memahami referensi tipe untuk AWS.AppConfig.FeatureFlags](appconfig-type-reference-feature-flags.md).

1. Gunakan `CreateHostedConfigurationVersion` API untuk menyimpan data konfigurasi flag fitur Anda AWS AppConfig.

------
#### [ Linux ]

   ```
   aws appconfig create-hosted-configuration-version \
     --application-id APPLICATION_ID \
     --configuration-profile-id CONFIGURATION_PROFILE_ID \
     --content-type "application/json" \
     --content file://path/to/feature_flag_configuration_data.json \
     --cli-binary-format raw-in-base64-out
   ```

------
#### [ Windows ]

   ```
   aws appconfig create-hosted-configuration-version ^
     --application-id APPLICATION_ID ^
     --configuration-profile-id CONFIGURATION_PROFILE_ID ^
     --content-type "application/json" ^
     --content file://path/to/feature_flag_configuration_data.json ^
     --cli-binary-format raw-in-base64-out
   ```

------
#### [ PowerShell ]

   ```
   New-APPCHostedConfigurationVersion `
     -ApplicationId APPLICATION_ID `
     -ConfigurationProfileId CONFIGURATION_PROFILE_ID `
     -ContentType "application/json" `
     -Content file://path/to/feature_flag_configuration_data.json
   ```

------

   Perintah memuat konten yang ditentukan untuk `Content` parameter dari disk. Konten harus mirip dengan contoh berikut.

   ```
   {
       "flags": {
           "ui_refresh": {
               "name": "UI Refresh"
           }
       },
       "values": {
           "ui_refresh": {
               "enabled": false,
               "attributeValues": {
                   "dark_mode_support": true
               }
           }
       },
       "version": "1"
   }
   ```

   Sistem mengembalikan informasi seperti berikut ini.

------
#### [ Linux ]

   ```
   {
      "ApplicationId"          : "ui_refresh",
      "ConfigurationProfileId" : "UI Refresh",
      "VersionNumber"          : "1",
      "ContentType"            : "application/json"
   }
   ```

------
#### [ Windows ]

   ```
   {
      "ApplicationId"          : "ui_refresh",
      "ConfigurationProfileId" : "UI Refresh",
      "VersionNumber"          : "1",
      "ContentType"            : "application/json"
   }
   ```

------
#### [ PowerShell ]

   ```
   ApplicationId          : ui_refresh
   ConfigurationProfileId : UI Refresh
   VersionNumber          : 1
   ContentType            : application/json
   ```

------

   `service_returned_content_file`Berisi data konfigurasi Anda yang mencakup beberapa AWS AppConfig metadata yang dihasilkan.
**catatan**  
Saat Anda membuat versi konfigurasi yang dihosting, AWS AppConfig verifikasi bahwa data Anda sesuai dengan skema `AWS.AppConfig.FeatureFlags` JSON. AWS AppConfig Selain itu memvalidasi bahwa setiap atribut flag fitur dalam data Anda memenuhi batasan yang Anda tetapkan untuk atribut tersebut.

# Membuat bendera fitur multi-varian
<a name="appconfig-creating-multi-variant-feature-flags"></a>

Varian bendera fitur memungkinkan Anda untuk menentukan satu set nilai bendera yang mungkin untuk kembali untuk permintaan. Anda juga dapat mengonfigurasi status yang berbeda (diaktifkan atau dinonaktifkan) untuk bendera multi-varian. Saat meminta flag yang dikonfigurasi dengan varian, aplikasi Anda menyediakan konteks yang AWS AppConfig mengevaluasi terhadap serangkaian aturan yang ditetapkan pengguna. Bergantung pada konteks yang ditentukan dalam permintaan dan aturan yang ditetapkan untuk varian, AWS AppConfig mengembalikan nilai flag yang berbeda ke aplikasi.

Tangkapan layar berikut menunjukkan contoh bendera fitur dengan tiga varian yang ditentukan pengguna dan varian default.

![\[Contoh tangkapan layar dari bendera fitur dengan varian.\]](http://docs.aws.amazon.com/id_id/appconfig/latest/userguide/images/flag-variant-example.png)


**Topics**
+ [

# Memahami konsep bendera fitur multi-varian dan kasus penggunaan umum
](appconfig-creating-multi-variant-feature-flags-concepts.md)
+ [

# Memahami aturan bendera fitur multi-varian
](appconfig-creating-multi-variant-feature-flags-rules.md)
+ [

# Membuat bendera fitur multi-varian
](appconfig-creating-multi-variant-feature-flags-procedures.md)

# Memahami konsep bendera fitur multi-varian dan kasus penggunaan umum
<a name="appconfig-creating-multi-variant-feature-flags-concepts"></a>

Untuk membantu Anda lebih memahami varian bendera fitur, bagian ini menjelaskan konsep varian bendera dan kasus penggunaan umum.

**Konsep**
+ **Bendera fitur**: Jenis AWS AppConfig konfigurasi yang digunakan untuk mengontrol perilaku fitur dalam aplikasi. Bendera memiliki status (diaktifkan atau dinonaktifkan) dan kumpulan atribut opsional yang berisi nilai string, numerik, boolean, atau array arbitrer.
+ **Varian bendera fitur**: Kombinasi spesifik dari nilai status dan atribut milik bendera fitur. Bendera fitur mungkin memiliki beberapa varian.
+ **Aturan varian**: Ekspresi yang ditentukan pengguna yang digunakan untuk memilih varian bendera fitur. Setiap varian memiliki aturannya sendiri yang AWS AppConfig mengevaluasi untuk menentukan apakah akan mengembalikannya atau tidak.
+ **Varian default**: Varian khusus yang dikembalikan ketika tidak ada varian lain yang dipilih. Semua flag fitur multi-varian memiliki varian default.

  Catatan, varian default harus terakhir dalam urutan varian Anda, dan tidak dapat memiliki aturan yang terkait dengannya. Jika tidak didefinisikan terakhir, AWS AppConfig mengembalikan `BadRequestException` ketika Anda mencoba untuk membuat bendera multi-varian.
+ **Konteks**: Kunci dan nilai yang ditentukan pengguna diteruskan AWS AppConfig pada waktu pengambilan konfigurasi. Nilai konteks digunakan selama evaluasi aturan untuk memilih varian bendera fitur yang akan dikembalikan.

**catatan**  
AWS AppConfig agen mengevaluasi aturan varian dan menentukan aturan mana yang berlaku untuk permintaan berdasarkan konteks yang disediakan. Untuk informasi selengkapnya tentang mengambil flag fitur multi-varient, lihat. [Mengambil flag fitur dasar dan multi-varian](appconfig-integration-retrieving-feature-flags.md)

**Kasus penggunaan umum**

Bagian ini menjelaskan dua kasus penggunaan umum untuk varian bendera fitur.

*Segmentasi pengguna*

Segmentasi pengguna adalah proses membagi pengguna berdasarkan atribut tertentu. Sebagai contoh, Anda dapat menggunakan varian bendera untuk mengekspos fitur ke beberapa pengguna tetapi tidak yang lain berdasarkan ID pengguna, lokasi geografis, jenis perangkat, atau frekuensi pembelian mereka.

Dengan menggunakan contoh frekuensi pembelian, misalkan aplikasi perdagangan Anda mendukung fitur untuk meningkatkan loyalitas pelanggan. Anda dapat menggunakan varian bendera untuk mengonfigurasi jenis insentif yang berbeda untuk ditampilkan kepada pengguna berdasarkan kapan mereka terakhir membeli sesuatu. Pengguna baru mungkin ditawari diskon kecil untuk mendorong mereka menjadi pelanggan, sedangkan pelanggan tetap mungkin diberi diskon yang lebih besar jika mereka membeli sesuatu dari kategori baru.

*Pemisahan lalu lintas*

Pemisahan lalu lintas adalah proses memilih varian bendera acak, tetapi konsisten, berdasarkan nilai konteks yang Anda tentukan. Misalnya, Anda mungkin ingin melakukan eksperimen di mana sebagian kecil pengguna Anda (diidentifikasi oleh ID pengguna mereka) melihat varian tertentu. Atau, Anda mungkin ingin menjalankan peluncuran fitur bertahap di mana fitur pertama kali diekspos ke 5% pengguna Anda, kemudian 15%, kemudian 40%, lalu 100%, sambil mempertahankan pengalaman pengguna yang konsisten selama peluncuran.

Menggunakan contoh eksperimen, Anda dapat menggunakan varian bendera untuk menguji gaya tombol baru untuk tindakan utama di beranda aplikasi Anda untuk melihat apakah itu mendorong lebih banyak klik. Untuk eksperimen, Anda dapat membuat varian bendera dengan aturan pemisahan lalu lintas yang memilih 5% pengguna untuk melihat gaya baru, sedangkan varian default menunjukkan pengguna yang harus terus melihat gaya yang ada. Jika percobaan berhasil, Anda dapat meningkatkan nilai persentase, atau bahkan mengubah varian itu menjadi default.

# Memahami aturan bendera fitur multi-varian
<a name="appconfig-creating-multi-variant-feature-flags-rules"></a>

Saat Anda membuat varian bendera fitur, Anda menentukan aturan untuk itu. Aturan adalah ekspresi yang mengambil nilai konteks sebagai input dan menghasilkan hasil boolean sebagai output. Misalnya, Anda dapat menentukan aturan untuk memilih varian bendera untuk pengguna beta, yang diidentifikasi oleh ID akun mereka, menguji penyegaran antarmuka pengguna. Untuk skenario ini, Anda melakukan hal berikut:

1. Buat profil konfigurasi flag fitur baru yang disebut *UI Refresh*.

1. Buat flag fitur baru yang disebut *ui\$1refresh*.

1. Edit bendera fitur setelah Anda membuatnya untuk menambahkan varian.

1. Buat dan aktifkan varian baru yang disebut *BetaUsers*.

1. Tentukan aturan untuk *BetaUsers*memilih varian jika ID akun dari konteks permintaan ada dalam daftar akun yang IDs disetujui untuk melihat pengalaman beta baru.

1. Konfirmasikan bahwa status varian default disetel ke **Dinonaktifkan**.

**catatan**  
Varian dievaluasi sebagai daftar berurutan berdasarkan urutan yang ditentukan di konsol. Varian di bagian atas daftar dievaluasi terlebih dahulu. Jika tidak ada aturan yang cocok dengan konteks yang disediakan, AWS AppConfig mengembalikan varian Default.

Saat AWS AppConfig memproses permintaan flag fitur, ia membandingkan konteks yang disediakan, yang menyertakan accountID (untuk contoh ini) dengan varian terlebih dahulu. BetaUsers Jika konteksnya cocok dengan aturan untuk BetaUsers, AWS AppConfig mengembalikan data konfigurasi untuk pengalaman beta. Jika konteks tidak menyertakan ID akun atau jika ID akun berakhir dengan apa pun selain 123, AWS AppConfig mengembalikan data konfigurasi untuk aturan Default, yang berarti pengguna melihat pengalaman saat ini dalam produksi.

**catatan**  
Untuk informasi tentang mengambil flag fitur multi-varian, lihat. [Mengambil flag fitur dasar dan multi-varian](appconfig-integration-retrieving-feature-flags.md)

# Mendefinisikan aturan untuk flag fitur multi-varian
<a name="appconfig-creating-multi-variant-feature-flags-rules-operators"></a>

Aturan varian adalah ekspresi yang terdiri dari satu atau lebih operan dan operator. Operan adalah nilai spesifik yang digunakan selama evaluasi aturan. Nilai operan dapat berupa statis, seperti angka literal atau string, atau variabel, seperti nilai yang ditemukan dalam konteks atau hasil ekspresi lain. Operator, seperti “lebih besar dari”, adalah tes atau tindakan yang diterapkan pada operannya yang menghasilkan nilai. Ekspresi aturan varian harus menghasilkan “true” atau “false” agar valid.

**Operan**


****  

| Tipe | Deskripsi | Contoh | 
| --- | --- | --- | 
|  String  |  Urutan karakter UTF-8, terlampir dalam tanda kutip ganda.  |  <pre>"apple", "Ḽơᶉëᶆ ȋṕšᶙṁ"</pre>  | 
|  Bilangan Bulat  |  Nilai integer 64-bit.  |  <pre>-7, 42 </pre>  | 
|  Desimal  |  Nilai floating-point 64-bit IEEE-754.  |  <pre>3.14, 1.234e-5</pre>  | 
|  Stempel waktu  |  Momen tertentu dalam waktu seperti yang dijelaskan oleh [catatan W3C pada format tanggal dan waktu](https://www.w3.org/TR/NOTE-datetime).  |  <pre>2012-03-04T05:06:07-08:00, 2024-01</pre>  | 
|  Boolean  |  Nilai benar atau salah.  |  <pre>true, false</pre>  | 
|  Nilai konteks  |  Nilai parameter dalam bentuk \$1 *key* yang diambil dari konteks selama evaluasi aturan.  |  <pre>$country, $userId</pre>  | 

**Operator perbandingan**


****  

| Operator | Deskripsi | Contoh | 
| --- | --- | --- | 
|  persamaan  |  Menentukan apakah nilai konteks sama dengan nilai yang diberikan.  |  <pre>(eq $state "Virginia")</pre>  | 
|  gt  |  Menentukan apakah nilai konteks lebih besar dari nilai yang diberikan.  |  <pre>(gt $age 65)</pre>  | 
|  gte  |  Menentukan apakah nilai konteks lebih besar dari atau sama dengan nilai yang diberikan.  |  <pre>(gte $age 65)</pre>  | 
|  lt  |  Menentukan apakah nilai konteks kurang dari nilai yang diberikan.  |  <pre>(lt $age 65)</pre>  | 
|  lte  |  Menentukan apakah nilai konteks kurang dari atau sama dengan nilai yang diberikan.  |  <pre>(lte $age 65)</pre>  | 

**Operator logis**


****  

| Operator | Deskripsi | Contoh | 
| --- | --- | --- | 
|  and  |  Menentukan apakah kedua operan benar.  |  <pre>(and <br />    (eq $state "Virginia") <br />    (gt $age 65)<br />)</pre>  | 
|  atau  |  Menentukan apakah setidaknya salah satu operan benar.  |  <pre>(or<br />    (eq $state "Virginia") <br />    (gt $age 65)<br />)</pre>  | 
|  tidak  |  Membalikkan nilai ekspresi.  |  <pre>(not (eq $state "Virginia"))</pre>  | 

**Operator kustom**


****  

| Operator | Deskripsi | Contoh | 
| --- | --- | --- | 
|  mulai\$1dengan  |  Menentukan apakah nilai konteks dimulai dengan awalan yang diberikan.  |  <pre>(begins_with $state "A")</pre>  | 
|  berakhir\$1dengan  |  Menentukan apakah nilai konteks berakhir dengan awalan yang diberikan.  |  <pre>(ends_with $email "amazon.com")</pre>  | 
|  mengandung  |  Menentukan apakah nilai konteks berisi substring yang diberikan.  |  <pre>(contains $promoCode "WIN")</pre>  | 
|  in  |  Menentukan apakah nilai konteks terkandung dalam daftar konstanta.  |  <pre>(in $userId ["123", "456"])</pre>  | 
|  korek api  |  Menentukan apakah nilai konteks cocok dengan pola regex yang diberikan.  |  <pre>(matches in::$greeting pattern::"h.*y")</pre>  | 
|  exists  |  Menentukan apakah ada nilai yang disediakan untuk kunci konteks.  |  <pre>(exists key::"country")</pre>  | 
|  terbelah  |  Mengevaluasi `true` untuk persentase lalu lintas tertentu berdasarkan hash yang konsisten dari nilai konteks yang disediakan. Untuk penjelasan rinci tentang cara `split` kerja, lihat bagian selanjutnya dalam topik ini,[Memahami operator split](appconfig-creating-multi-variant-feature-flags-rules.md#appconfig-creating-multi-variant-feature-flags-rules-operators-split). Perhatikan bahwa `seed` ini adalah properti opsional. Jika Anda tidak menentukan`seed`, hash konsisten *secara lokal*, yang berarti lalu lintas akan dibagi secara konsisten untuk flag itu, tetapi flag lain yang menerima nilai konteks yang sama dapat membagi lalu lintas secara berbeda. Jika `seed` disediakan, setiap nilai unik dijamin untuk membagi lalu lintas secara konsisten di seluruh bendera fitur, profil konfigurasi, dan Akun AWS.  |  <pre>(split pct::10 by::$userId seed::"abc")</pre>  | 

## Memahami operator split
<a name="appconfig-creating-multi-variant-feature-flags-rules-operators-split"></a>

Bagian berikut menjelaskan bagaimana `split` operator berperilaku ketika digunakan dalam skenario yang berbeda. Sebagai pengingat, `split` evaluasi `true` untuk persentase lalu lintas tertentu berdasarkan hash yang konsisten dari nilai konteks yang disediakan. Untuk memahami hal ini dengan lebih baik, pertimbangkan skenario dasar berikut yang menggunakan split dengan dua varian:

```
A: (split by::$uniqueId pct::20)
C: <no rule>
```

Seperti yang diharapkan, memberikan serangkaian `uniqueId` nilai acak menghasilkan distribusi yang kira-kira:

```
A: 20%
C: 80%
```

Jika Anda menambahkan varian ketiga, tetapi gunakan persentase split yang sama seperti:

```
A: (split by::$uniqueId pct::20)
B: (split by::$uniqueId pct::20)
C: <default>
```

Anda berakhir dengan distribusi berikut:

```
A: 20%
B: 0%
C: 80%
```

Distribusi yang berpotensi tidak terduga ini terjadi karena setiap aturan varian dievaluasi secara berurutan dan kecocokan pertama menentukan varian yang dikembalikan. Ketika aturan A dievaluasi, 20% `uniqueId` nilai cocok dengannya, jadi varian pertama dikembalikan. Selanjutnya, aturan B dievaluasi. Namun, semua `uniqueId` nilai yang akan cocok dengan pernyataan split kedua sudah dicocokkan dengan aturan varian A, jadi tidak ada nilai yang cocok B. Varian default dikembalikan sebagai gantinya.

Sekarang perhatikan contoh ketiga.

```
A: (split by::$uniqueId pct::20)
B: (split by::$uniqueId pct::25)
C: <default>
```

Seperti contoh sebelumnya, 20% `uniqueId` nilai pertama cocok dengan aturan A. Untuk aturan varian B, 25% dari semua `uniqueId` nilai akan cocok, tetapi sebagian besar dari aturan yang sebelumnya cocok A. Itu menyisakan 5% dari total untuk varian B, dengan sisanya menerima varian C. Distribusi akan terlihat seperti berikut:

```
A: 20%
B: 5%
C: 75%
```

**Menggunakan `seed` properti**  
Anda dapat menggunakan `seed` properti untuk memastikan lalu lintas dibagi secara konsisten untuk nilai konteks tertentu terlepas dari di mana operator split digunakan. Jika Anda tidak menentukan`seed`, hash konsisten *secara lokal*, yang berarti lalu lintas akan dibagi secara konsisten untuk flag itu, tetapi flag lain yang menerima nilai konteks yang sama dapat membagi lalu lintas secara berbeda. Jika `seed` disediakan, setiap nilai unik dijamin untuk membagi lalu lintas secara konsisten di seluruh bendera fitur, profil konfigurasi, dan Akun AWS.

Biasanya, pelanggan menggunakan `seed` nilai yang sama di seluruh varian dalam bendera saat memisahkan lalu lintas pada properti konteks yang sama. Namun, terkadang masuk akal untuk menggunakan nilai benih yang berbeda. Berikut adalah contoh yang menggunakan benih berbeda untuk aturan A dan B:

```
A: (split by::$uniqueId pct::20 seed::"seed_one")
B: (split by::$uniqueId pct::25 seed::"seed_two")
C: <default>
```

Seperti sebelumnya, 20% dari `uniqueId` nilai yang cocok dengan aturan A. Itu berarti 80% nilai jatuh dan diuji terhadap aturan varian B. Karena benih berbeda, tidak ada korelasi antara nilai yang cocok dengan A dan nilai yang cocok B. Namun, hanya 80% `uniqueId` nilai yang dibagi dengan 25% dari aturan pencocokan angka B dan 75% tidak. Itu berhasil untuk distribusi berikut:

```
A: 20%
B: 20% (25% of what falls through from A, or 25% of 80%) 
C: 60%
```

# Membuat bendera fitur multi-varian
<a name="appconfig-creating-multi-variant-feature-flags-procedures"></a>

Gunakan prosedur di bagian ini untuk membuat varian bendera fitur.

**Sebelum Anda mulai**  
Perhatikan informasi penting berikut.
+ Anda dapat membuat varian bendera fitur yang ada dengan mengeditnya. Anda tidak dapat membuat varian tanda fitur baru *saat membuat profil konfigurasi baru*. Anda harus menyelesaikan alur kerja membuat profil konfigurasi baru terlebih dahulu. Setelah Anda membuat profil konfigurasi, Anda dapat menambahkan varian ke bendera apa pun dalam profil konfigurasi. Untuk informasi tentang cara membuat profil konfigurasi baru, lihat[Membuat profil konfigurasi bendera fitur di AWS AppConfig](appconfig-creating-configuration-and-profile-feature-flags.md).
+ Untuk mengambil data varian tanda fitur untuk platform komputasi Amazon EC2, Amazon ECS, dan Amazon EKS, Anda harus AWS AppConfig menggunakan Agen versi 2.0.4416 atau yang lebih baru.
+ Untuk alasan kinerja, AWS CLI dan panggilan SDK untuk AWS AppConfig tidak mengambil data varian. Untuk informasi lebih lanjut tentang AWS AppConfig Agen, lihat[Cara menggunakan AWS AppConfig Agen untuk mengambil data konfigurasi](appconfig-agent-how-to-use.md).
+ Saat Anda membuat varian bendera fitur, Anda menentukan aturan untuk itu. Aturan adalah ekspresi yang mengambil konteks permintaan sebagai input dan menghasilkan hasil boolean sebagai output. Sebelum Anda membuat varian, tinjau operan dan operator yang didukung untuk menandai aturan varian. Anda dapat membuat aturan sebelum membuat varian. Untuk informasi selengkapnya, lihat [Memahami aturan bendera fitur multi-varian](appconfig-creating-multi-variant-feature-flags-rules.md).

**Topics**
+ [

## Membuat bendera fitur multi-varian (konsol)
](#appconfig-creating-multi-variant-feature-flags-procedures-console)
+ [

## Membuat bendera fitur multi-varian (baris perintah)
](#appconfig-creating-multi-variant-feature-flags-procedures-commandline)

## Membuat bendera fitur multi-varian (konsol)
<a name="appconfig-creating-multi-variant-feature-flags-procedures-console"></a>

Prosedur berikut menjelaskan cara membuat flag fitur multi-varian untuk profil konfigurasi yang ada dengan menggunakan AWS AppConfig konsol. Anda juga dapat mengedit bendera fitur yang ada untuk membuat varian.

**Untuk membuat bendera fitur multi-varian**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/appconfig/](https://console.aws.amazon.com/systems-manager/appconfig/).

1. Di panel navigasi, pilih **Aplikasi**, lalu pilih aplikasi.

1. Pada tab **Profil konfigurasi dan bendera fitur**, pilih profil konfigurasi bendera fitur yang ada.

1. Di bagian **Bendera**, pilih **Tambahkan bendera baru**.

1. Di bagian **Definisi bendera fitur**, untuk **nama Bendera**, masukkan nama.

1. Untuk **tombol Bendera** masukkan pengenal bendera untuk membedakan bendera dalam profil konfigurasi yang sama. Bendera dalam profil konfigurasi yang sama tidak dapat memiliki kunci yang sama. Setelah bendera dibuat, Anda dapat mengedit nama bendera, tetapi bukan tombol bendera. 

1. (Opsional) Di bidang **Deskripsi**, masukkan informasi tentang bendera ini.

1. Di bagian **Varian**, pilih **Bendera Multi-varian**.

1. (Opsional) Di bagian **atribut bendera fitur**, pilih **Tentukan atribut**. Atribut memungkinkan Anda untuk memberikan nilai tambahan dalam flag Anda. Untuk informasi selengkapnya tentang atribut dan kendala, lihat. [Memahami atribut bendera fitur](appconfig-creating-configuration-and-profile-feature-flags.md#appconfig-creating-configuration-profile-feature-flag-attributes)

   1. Untuk **Key**, tentukan tombol bendera dan pilih jenisnya dari daftar **Type**. Untuk informasi tentang opsi yang didukung untuk bidang **Nilai** dan Batasan, lihat bagian **yang** direferensikan sebelumnya tentang atribut.

   1. Pilih **Nilai yang diperlukan** untuk menentukan apakah nilai atribut diperlukan.

   1. Pilih **Tentukan atribut** untuk menambahkan atribut tambahan.

   1. Pilih **Terapkan** untuk menyimpan perubahan atribut.

1. Di bagian **varian bendera fitur**, pilih **Buat varian**.

   1. Untuk **nama Variant**, masukkan nama.

   1. Gunakan sakelar **nilai Diaktifkan** untuk mengaktifkan varian.

   1. Di kotak teks **Aturan**, masukkan aturan.

   1. Gunakan opsi **Buat varian>** **Buat varian di atas** atau **Buat varian di bawah** ini untuk membuat varian tambahan untuk bendera ini. 

   1. Di bagian **varian Default**, gunakan sakelar **Nilai diaktifkan** untuk mengaktifkan varian default. Secara opsional, berikan nilai untuk atribut yang ditentukan pada langkah 10.

   1. Pilih **Terapkan**.

1. Verifikasi detail bendera dan variannya dan pilih **Buat bendera**.

Untuk informasi tentang penerapan flag fitur baru Anda dengan varian, lihat[Menerapkan flag fitur dan data konfigurasi di AWS AppConfig](deploying-feature-flags.md).

## Membuat bendera fitur multi-varian (baris perintah)
<a name="appconfig-creating-multi-variant-feature-flags-procedures-commandline"></a>

Prosedur berikut menjelaskan cara menggunakan AWS Command Line Interface (di Linux atau Windows) atau Alat untuk Windows PowerShell untuk membuat bendera fitur multi-varian untuk profil konfigurasi yang ada. Anda juga dapat mengedit bendera fitur yang ada untuk membuat varian.

**Sebelum Anda mulai**  
Selesaikan tugas-tugas berikut sebelum Anda membuat flag fitur multi-varian dengan menggunakan. AWS CLI
+ Buat profil konfigurasi bendera fitur. Untuk informasi selengkapnya, lihat [Membuat profil konfigurasi bendera fitur di AWS AppConfig](appconfig-creating-configuration-and-profile-feature-flags.md).
+ Perbarui ke versi terbaru dari AWS CLI. Untuk informasi selengkapnya, lihat [Menginstal atau memperbarui ke versi terbaru](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) dari *Panduan AWS Command Line Interface Pengguna*. AWS CLI

**Untuk membuat bendera fitur multi-varian**

1. Buat file konfigurasi di mesin lokal Anda yang menentukan detail bendera multi-varian yang ingin Anda buat. Simpan file dengan ekstensi `.json` file. File harus mematuhi skema [https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-type-reference-feature-flags.html](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-type-reference-feature-flags.html)JSON. Isi skema file konfigurasi Anda akan mirip dengan yang berikut ini.

   ```
   {
     "flags": {
       "FLAG_NAME": {
         "attributes": {
             "ATTRIBUTE_NAME": {
             "constraints": {
               "type": "CONSTRAINT_TYPE"
             }
           }
         },
         "description": "FLAG_DESCRIPTION",
         "name": "VARIANT_NAME"
       }
     },
     "values": {
       "VARIANT_VALUE_NAME": {
         "_variants": [
           {
             "attributeValues": {
               "ATTRIBUTE_NAME": BOOLEAN
             },
             "enabled": BOOLEAN,
             "name": "VARIANT_NAME",
             "rule": "VARIANT_RULE"
           },
           {
             "attributeValues": {
               "ATTRIBUTE_NAME": BOOLEAN
             },
             "enabled": BOOLEAN,
             "name": "VARIANT_NAME",
             "rule": "VARIANT_RULE"
           },
           {
             "attributeValues": {
               "ATTRIBUTE_NAME": BOOLEAN
             },
             "enabled": BOOLEAN,
             "name": "VARIANT_NAME",
             "rule": "VARIANT_RULE"
           },
           {
             "attributeValues": {
               "ATTRIBUTE_NAME": BOOLEAN
             },
             "enabled": BOOLEAN,
             "name": "VARIANT_NAME",
             "rule": "VARIANT_RULE"
           }
         ]
       }
     },
     "version": "VERSION_NUMBER"
   }
   ```

   Berikut adalah contoh dengan tiga varian dan varian default.

   ```
   {
     "flags": {
       "ui_refresh": {
         "attributes": {
           "dark_mode_support": {
             "constraints": {
               "type": "boolean"
             }
           }
         },
         "description": "A release flag used to release a new UI",
         "name": "UI Refresh"
       }
     },
     "values": {
       "ui_refresh": {
         "_variants": [
           {
             "attributeValues": {
               "dark_mode_support": true
             },
             "enabled": true,
             "name": "QA",
             "rule": "(ends_with $email \"qa-testers.mycompany.com\")"
           },
           {
             "attributeValues": {
               "dark_mode_support": true
             },
             "enabled": true,
             "name": "Beta Testers",
             "rule": "(exists key::\"opted_in_to_beta\")"
           },
           {
             "attributeValues": {
               "dark_mode_support": false
             },
             "enabled": true,
             "name": "Sample Population",
             "rule": "(split pct::10 by::$email)"
           },
           {
             "attributeValues": {
               "dark_mode_support": false
             },
             "enabled": false,
             "name": "Default Variant"
           }
         ]
       }
     },
     "version": "1"
   }
   ```

1. Gunakan `CreateHostedConfigurationVersion` API untuk menyimpan data konfigurasi flag fitur Anda AWS AppConfig.

------
#### [ Linux ]

   ```
   aws appconfig create-hosted-configuration-version \
     --application-id APPLICATION_ID \
     --configuration-profile-id CONFIGURATION_PROFILE_ID \
     --content-type "application/json" \
     --content file://path/to/feature_flag_configuration_data.json \
     --cli-binary-format raw-in-base64-out \
     outfile
   ```

------
#### [ Windows ]

   ```
   aws appconfig create-hosted-configuration-version ^
     --application-id APPLICATION_ID ^
     --configuration-profile-id CONFIGURATION_PROFILE_ID ^
     --content-type "application/json" ^
     --content file://path/to/feature_flag_configuration_data.json ^
     --cli-binary-format raw-in-base64-out ^
     outfile
   ```

------
#### [ PowerShell ]

   ```
   New-APPCHostedConfigurationVersion `
     -ApplicationId APPLICATION_ID `
     -ConfigurationProfileId CONFIGURATION_PROFILE_ID `
     -ContentType "application/json" `
     -Content file://path/to/feature_flag_configuration_data.json `
     -Raw
   ```

------

   `service_returned_content_file`Berisi data konfigurasi Anda yang mencakup beberapa AWS AppConfig metadata yang dihasilkan.
**catatan**  
Saat Anda membuat versi konfigurasi yang dihosting, AWS AppConfig verifikasi bahwa data Anda sesuai dengan skema [https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-type-reference-feature-flags.html](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-type-reference-feature-flags.html)JSON. AWS AppConfig Selain itu memvalidasi bahwa setiap atribut flag fitur dalam data Anda memenuhi batasan yang Anda tetapkan untuk atribut tersebut.

# Memahami referensi tipe untuk AWS.AppConfig.FeatureFlags
<a name="appconfig-type-reference-feature-flags"></a>

Gunakan skema `AWS.AppConfig.FeatureFlags` JSON sebagai referensi untuk membuat data konfigurasi flag fitur Anda.

```
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "definitions": {
    "flagSetDefinition": {
      "type": "object",
      "properties": {
        "version": {
          "$ref": "#/definitions/flagSchemaVersions"
        },
        "flags": {
          "$ref": "#/definitions/flagDefinitions"
        },
        "values": {
          "$ref": "#/definitions/flagValues"
        }
      },
      "required": ["version"],
      "additionalProperties": false
    },
    "flagDefinitions": {
      "type": "object",
      "patternProperties": {
        "^[a-z][a-zA-Z\\d_-]{0,63}$": {
          "$ref": "#/definitions/flagDefinition"
        }
      },
      "additionalProperties": false
    },
    "flagDefinition": {
      "type": "object",
      "properties": {
        "name": {
          "$ref": "#/definitions/customerDefinedName"
        },
        "description": {
          "$ref": "#/definitions/customerDefinedDescription"
        },
        "_createdAt": {
          "type": "string"
        },
        "_updatedAt": {
          "type": "string"
        },
        "_deprecation": {
          "type": "object",
          "properties": {
            "status": {
              "type": "string",
              "enum": ["planned"]
            },
            "date": {
              "type": "string",
              "format": "date"
            }
          },
         "additionalProperties": false
        },
        "attributes": {
          "$ref": "#/definitions/attributeDefinitions"
        }
      },
      "additionalProperties": false
    },
    "attributeDefinitions": {
      "type": "object",
      "patternProperties": {
        "^[a-z][a-zA-Z\\d_-]{0,63}$": {
          "$ref": "#/definitions/attributeDefinition"
        }
      },
      "maxProperties": 25,
      "additionalProperties": false
    },
    "attributeDefinition": {
      "type": "object",
      "properties": {
        "description": {
          "$ref": "#/definitions/customerDefinedDescription"
        },
        "constraints": {
          "oneOf": [
            { "$ref": "#/definitions/numberConstraints" },
            { "$ref": "#/definitions/stringConstraints" },
            { "$ref": "#/definitions/arrayConstraints" },
            { "$ref": "#/definitions/boolConstraints" }
          ]
        }
      },
      "additionalProperties": false
    },
    "flagValues": {
      "type": "object",
      "patternProperties": {
        "^[a-z][a-zA-Z\\d_-]{0,63}$": {
          "$ref": "#/definitions/flagValue"
        }
      },
      "additionalProperties": false
    },
    "flagValue": {
      "type": "object",
      "properties": {
        "enabled": {
          "type": "boolean"
        },
        "_createdAt": {
          "type": "string"
        },
        "_updatedAt": {
          "type": "string"
        },
        "_variants": {
          "type": "array",
          "maxLength": 32,
          "items": {
            "$ref": "#/definitions/variant"
          }
        }
      },
      "patternProperties": {
        "^[a-z][a-zA-Z\\d_-]{0,63}$": {
          "$ref": "#/definitions/attributeValue",
          "maxProperties": 25
        }
      },
      "additionalProperties": false
    },
    "attributeValue": {
      "oneOf": [
        { "type": "string", "maxLength": 1024 },
        { "type": "number" },
        { "type": "boolean" },
        {
          "type": "array",
          "oneOf": [
            {
              "items": {
                "type": "string",
                "maxLength": 1024
              }
            },
            {
              "items": {
                "type": "number"
              }
            }
          ]
        }
      ],
      "additionalProperties": false
    },
    "stringConstraints": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["string"]
        },
        "required": {
          "type": "boolean"
        },
        "pattern": {
          "type": "string",
          "maxLength": 1024
        },
        "enum": {
          "type": "array",
          "maxLength": 100,
          "items": {
            "oneOf": [
              {
                "type": "string",
                "maxLength": 1024
              },
              {
                "type": "integer"
              }
            ]
          }
        }
      },
      "required": ["type"],
      "not": {
        "required": ["pattern", "enum"]
      },
      "additionalProperties": false
    },
    "numberConstraints": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["number"]
        },
        "required": {
          "type": "boolean"
        },
        "minimum": {
          "type": "integer"
        },
        "maximum": {
          "type": "integer"
        }
      },
      "required": ["type"],
      "additionalProperties": false
    },
    "arrayConstraints": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["array"]
        },
        "required": {
          "type": "boolean"
        },
        "elements": {
          "$ref": "#/definitions/elementConstraints"
        }
      },
      "required": ["type"],
      "additionalProperties": false
    },
    "boolConstraints": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["boolean"]
        },
        "required": {
          "type": "boolean"
        }
      },
      "required": ["type"],
      "additionalProperties": false
    },
    "elementConstraints": {
      "oneOf": [
        { "$ref": "#/definitions/numberConstraints" },
        { "$ref": "#/definitions/stringConstraints" }
      ]
    },
    "variant": {
      "type": "object",
      "properties": {
        "enabled": {
          "type": "boolean"
        },
        "name": {
          "$ref": "#/definitions/customerDefinedName"
        },
        "rule": {
          "type": "string",
          "maxLength": 16384
        },
        "attributeValues": {
          "type": "object", 
          "patternProperties": {
            "^[a-z][a-zA-Z\\d_-]{0,63}$": {
              "$ref": "#/definitions/attributeValue"
            }
          },
          "maxProperties": 25,
          "additionalProperties": false
        }
      },
      "required": ["name", "enabled"],
      "additionalProperties": false
    },
    "customerDefinedName": {
      "type": "string",
      "pattern": "^[^\\n]{1,64}$"
    },
    "customerDefinedDescription": {
      "type": "string",
      "maxLength": 1024
    },
    "flagSchemaVersions": {
      "type": "string",
      "enum": ["1"]
    }
  },
  "type": "object",
  "$ref": "#/definitions/flagSetDefinition",
  "additionalProperties": false
}
```

**penting**  
Untuk mengambil data konfigurasi flag fitur, aplikasi Anda harus memanggil `GetLatestConfiguration` API. Anda tidak dapat mengambil data konfigurasi flag fitur dengan memanggil`GetConfiguration`, yang sudah usang. Untuk informasi selengkapnya, lihat [GetLatestConfiguration](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_GetLatestConfiguration.html) di dalam *Referensi API AWS AppConfig *. 

Saat aplikasi Anda memanggil [GetLatestConfiguration](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_GetLatestConfiguration.html)dan menerima konfigurasi yang baru diterapkan, informasi yang menentukan flag dan atribut fitur Anda akan dihapus. JSON yang disederhanakan berisi peta kunci yang cocok dengan masing-masing tombol bendera yang Anda tentukan. JSON yang disederhanakan juga berisi nilai yang dipetakan dari `true` atau `false` untuk atribut. `enabled` Jika bendera disetel `enabled` ke`true`, atribut apa pun dari bendera akan hadir juga. Skema JSON berikut menjelaskan format output JSON.

```
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "patternProperties": {
    "^[a-z][a-zA-Z\\d_-]{0,63}$": {
      "$ref": "#/definitions/attributeValuesMap"
    }
  },
  "additionalProperties": false,
  "definitions": {
    "attributeValuesMap": {
      "type": "object",
      "properties": {
        "enabled": {
          "type": "boolean"
        }
      },
      "required": ["enabled"],
      "patternProperties": {
        "^[a-z][a-zA-Z\\d_-]{0,63}$": {
          "$ref": "#/definitions/attributeValue"
        }
      },
      "maxProperties": 25,
      "additionalProperties": false
    },
    "attributeValue": {
      "oneOf": [
        { "type": "string","maxLength": 1024 },
        { "type": "number" },
        { "type": "boolean" },
        {
          "type": "array",
          "oneOf": [
            {
              "items": {
                "oneOf": [
                  {
                    "type": "string",
                    "maxLength": 1024
                  }
                ]
              }
            },
            {
              "items": {
                "oneOf": [
                  {
                    "type": "number"
                  }
                ]
              }
            }
          ]
        }
      ],
      "additionalProperties": false
    }
  }
}
```

# Menyimpan versi bendera fitur sebelumnya ke versi baru
<a name="appconfig-creating-configuration-profile-feature-flags-editing-version"></a>

Saat Anda memperbarui bendera fitur, AWS AppConfig secara otomatis menyimpan perubahan Anda ke versi baru. Jika Anda ingin menggunakan versi bendera fitur sebelumnya, Anda harus menyalinnya ke versi draf dan kemudian menyimpannya. Anda tidak dapat mengedit dan menyimpan perubahan ke versi bendera sebelumnya tanpa menyimpannya ke versi baru. 

**Untuk mengedit versi bendera fitur sebelumnya dan menyimpannya ke versi baru**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/appconfig/](https://console.aws.amazon.com/systems-manager/appconfig/).

1. Di panel navigasi, pilih **Aplikasi**, lalu pilih aplikasi dengan bendera fitur yang ingin Anda edit dan simpan ke versi baru.

1. Pada tab **Profil konfigurasi dan bendera fitur**, pilih profil konfigurasi dengan tanda fitur yang ingin Anda edit dan simpan ke versi baru.

1. Pada tab **Feature flags**, gunakan daftar **Versi** untuk memilih versi yang ingin Anda edit dan simpan ke versi baru.

1. Pilih **Salin ke versi draf**.

1. Di bidang **label Versi**, masukkan label baru (opsional, tetapi disarankan).

1. Di bidang **Deskripsi versi**, masukkan deskripsi baru (opsional, tetapi disarankan).

1. Pilih **Simpan versi**.

1. Pilih **Mulai penerapan** untuk menerapkan versi baru.

# Membuat profil konfigurasi formulir gratis di AWS AppConfig
<a name="appconfig-free-form-configurations-creating"></a>

*Data konfigurasi* adalah kumpulan pengaturan yang memengaruhi perilaku aplikasi Anda. *Profil konfigurasi* mencakup, antara lain, URI yang memungkinkan AWS AppConfig untuk menemukan data konfigurasi Anda di lokasi yang disimpan dan jenis konfigurasi. Dengan profil konfigurasi bentuk bebas, Anda dapat menyimpan data Anda di toko konfigurasi yang AWS AppConfig dihosting atau salah satu alat berikut Layanan AWS dan Systems Manager:


****  

| Lokasi | Tipe file yang didukung | 
| --- | --- | 
|  AWS AppConfig toko konfigurasi yang dihosting  |  YAMM, JSON, dan teks jika ditambahkan menggunakan file. Konsol Manajemen AWS Tipe file apa pun jika ditambahkan menggunakan tindakan AWS AppConfig [CreateHostedConfigurationVersion](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_CreateHostedConfigurationVersion.html)API.  | 
|  [Amazon Simple Storage Service](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) (Amazon S3)  |  Setiap  | 
|  [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)  |  Pipeline (seperti yang didefinisikan oleh layanan)  | 
|  [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)  |  Rahasia (seperti yang didefinisikan oleh layanan)  | 
|  [AWS Systems Manager Toko Parameter](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html)  |  Parameter string standar dan aman (seperti yang didefinisikan oleh Parameter Store)  | 
|  [AWS Systems Manager toko dokumen (dokumen SSM)](https://docs.aws.amazon.com/systems-manager/latest/userguide/documents.html)  |  YAMG, JSON, teks  | 

Profil konfigurasi juga dapat menyertakan validator opsional untuk memastikan data konfigurasi Anda benar secara sintaksis dan semantik. AWS AppConfig melakukan pemeriksaan menggunakan validator saat Anda memulai penerapan. Jika ada kesalahan yang terdeteksi, penerapan berhenti sebelum membuat perubahan apa pun pada target konfigurasi.

**catatan**  
Jika memungkinkan, sebaiknya hosting data konfigurasi Anda di toko konfigurasi yang AWS AppConfig dihosting karena menawarkan sebagian besar fitur dan penyempurnaan.

Untuk konfigurasi bentuk bebas yang disimpan di penyimpanan konfigurasi yang AWS AppConfig dihosting atau dokumen SSM, Anda dapat membuat konfigurasi bentuk bebas dengan menggunakan konsol Systems Manager pada saat Anda membuat profil konfigurasi. Prosesnya dijelaskan nanti dalam topik ini. 

Untuk konfigurasi bentuk bebas yang disimpan di Parameter Store, Secrets Manager, atau Amazon S3, Anda harus membuat parameter, rahasia, atau objek terlebih dahulu dan menyimpannya di penyimpanan konfigurasi yang relevan. Setelah Anda menyimpan data konfigurasi, gunakan prosedur dalam topik ini untuk membuat profil konfigurasi.

**Topics**
+ [

# Memahami validator
](appconfig-creating-configuration-and-profile-validators.md)
+ [

# Memahami kuota dan batasan penyimpanan konfigurasi
](appconfig-creating-configuration-and-profile-quotas.md)
+ [

# Memahami penyimpanan konfigurasi yang AWS AppConfig dihosting
](appconfig-creating-configuration-and-profile-about-hosted-store.md)
+ [

# Memahami konfigurasi yang disimpan di Amazon S3
](appconfig-creating-configuration-and-profile-S3-source.md)
+ [

# Membuat profil konfigurasi AWS AppConfig bentuk bebas (konsol)
](appconfig-creating-free-form-configuration-and-profile-create-console.md)
+ [

# Membuat profil konfigurasi AWS AppConfig bentuk bebas (baris perintah)
](appconfig-creating-free-form-configuration-and-profile-create-commandline.md)

# Memahami validator
<a name="appconfig-creating-configuration-and-profile-validators"></a>

Saat Anda membuat profil konfigurasi, Anda memiliki opsi untuk menentukan hingga dua validator. Validator memastikan bahwa data konfigurasi Anda benar secara sintaksis dan semantik. Jika Anda berencana untuk menggunakan validator, Anda harus membuatnya sebelum Anda membuat profil konfigurasi. AWS AppConfig mendukung jenis validator berikut:
+ **AWS Lambda fungsi**: Didukung untuk bendera fitur dan konfigurasi formulir gratis.
+ **Skema JSON**: Didukung untuk konfigurasi formulir gratis. (AWS AppConfig secara otomatis memvalidasi flag fitur terhadap Skema JSON.)

**Topics**
+ [

## AWS Lambda validator fungsi
](#appconfig-creating-configuration-and-profile-validators-lambda)
+ [

## Validator Skema JSON
](#appconfig-creating-configuration-and-profile-validators-json-schema)

## AWS Lambda validator fungsi
<a name="appconfig-creating-configuration-and-profile-validators-lambda"></a>

Validator fungsi Lambda harus dikonfigurasi dengan skema acara berikut. AWS AppConfig menggunakan skema ini untuk memanggil fungsi Lambda. Konten adalah string yang dikodekan base64, dan URI adalah string. 

```
{
    "applicationId": "The application ID of the configuration profile being validated", 
    "configurationProfileId": "The ID of the configuration profile being validated",
    "configurationVersion": "The version of the configuration profile being validated",
    "content": "Base64EncodedByteString", 
    "uri": "The configuration uri"    
}
```

AWS AppConfig memverifikasi bahwa header `X-Amz-Function-Error` Lambda diatur dalam respons. Lambda menetapkan header ini jika fungsi melempar pengecualian. Untuk informasi selengkapnya`X-Amz-Function-Error`, lihat [Penanganan Kesalahan dan Percobaan Ulang Otomatis AWS Lambda di](https://docs.aws.amazon.com/lambda/latest/dg/retries-on-errors.html) *Panduan AWS Lambda Pengembang*.

Berikut adalah contoh sederhana dari kode respons Lambda untuk validasi yang berhasil.

```
import json

def handler(event, context):
     #Add your validation logic here
     print("We passed!")
```

Berikut adalah contoh sederhana dari kode respons Lambda untuk validasi yang gagal.

```
def handler(event, context):
     #Add your validation logic here
     raise Exception("Failure!")
```

Berikut adalah contoh lain yang memvalidasi hanya jika parameter konfigurasi adalah bilangan prima.

```
function isPrime(value) {
    if (value < 2) {
        return false;
    }

    for (i = 2; i < value; i++) {
        if (value % i === 0) {
            return false;
        }
    }

    return true;
}

exports.handler = async function(event, context) {
    console.log('EVENT: ' + JSON.stringify(event, null, 2));
    const input = parseInt(Buffer.from(event.content, 'base64').toString('ascii'));
    const prime = isPrime(input);
    console.log('RESULT: ' + input + (prime ? ' is' : ' is not') + ' prime');
    if (!prime) {
        throw input + "is not prime";
    }
}
```

AWS AppConfig memanggil Lambda validasi Anda saat memanggil operasi `ValidateConfigurationActivity` dan `StartDeployment` API. Anda harus memberikan `appconfig.amazonaws.com` izin untuk memanggil Lambda Anda. Untuk informasi selengkapnya, lihat [Memberikan Akses Fungsi ke AWS Layanan](https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html#permissions-resource-serviceinvoke). AWS AppConfig membatasi validasi waktu berjalan Lambda hingga 15 detik, termasuk latensi start-up.

## Validator Skema JSON
<a name="appconfig-creating-configuration-and-profile-validators-json-schema"></a>

Jika Anda membuat konfigurasi dalam dokumen SSM, maka Anda harus menentukan atau membuat Skema JSON untuk konfigurasi itu. Skema JSON mendefinisikan properti yang diizinkan untuk setiap pengaturan konfigurasi aplikasi. Skema JSON berfungsi seperti seperangkat aturan untuk memastikan bahwa pengaturan konfigurasi baru atau yang diperbarui sesuai dengan praktik terbaik yang diperlukan oleh aplikasi Anda. Inilah contohnya. 

```
    {
      "$schema": "http://json-schema.org/draft-04/schema#",
      "title": "$id$",
      "description": "BasicFeatureToggle-1",
      "type": "object",
      "additionalProperties": false,
      "patternProperties": {
          "[^\\s]+$": {
              "type": "boolean"
          }
      },
      "minProperties": 1
    }
```

Saat Anda membuat konfigurasi dari dokumen SSM, sistem secara otomatis memverifikasi bahwa konfigurasi sesuai dengan persyaratan skema. Jika tidak, AWS AppConfig mengembalikan kesalahan validasi.

**penting**  
Perhatikan informasi penting berikut tentang validator Skema JSON:  
Data konfigurasi yang disimpan dalam dokumen SSM harus memvalidasi terhadap Skema JSON terkait sebelum Anda dapat menambahkan konfigurasi ke sistem. Parameter SSM tidak memerlukan metode validasi, tetapi kami menyarankan Anda membuat pemeriksaan validasi untuk konfigurasi parameter SSM baru atau yang diperbarui dengan menggunakan. AWS Lambda
Konfigurasi dalam dokumen SSM menggunakan jenis `ApplicationConfiguration` dokumen. Skema JSON yang sesuai, menggunakan jenis `ApplicationConfigurationSchema` dokumen.
AWS AppConfig mendukung JSON Schema versi 4.X untuk skema inline. Jika konfigurasi aplikasi Anda memerlukan versi JSON Schema yang berbeda, maka Anda harus membuat validator Lambda.

# Memahami kuota dan batasan penyimpanan konfigurasi
<a name="appconfig-creating-configuration-and-profile-quotas"></a>

Toko konfigurasi yang didukung oleh AWS AppConfig memiliki kuota dan batasan berikut.


****  

|  | AWS AppConfig toko konfigurasi yang dihosting | Amazon S3 | Penyimpanan Parameter Systems Manager | AWS Secrets Manager | Toko dokumen Systems Manager | AWS CodePipeline | 
| --- | --- | --- | --- | --- | --- | --- | 
|  **Batas ukuran konfigurasi**  | 2 MB default, maksimum 4 MB |  2 MB Ditegakkan oleh AWS AppConfig, bukan S3  |  4 KB (tingkat gratis)/8 KB (parameter lanjutan)  | 64 KB |  64 KB  | 2 MBDipaksakan oleh AWS AppConfig, tidak CodePipeline | 
|  **Batas penyimpanan sumber daya**  | 1 GB |  Tidak terbatas.  |  10.000 parameter (tingkat gratis) /100.000 parameter (parameter lanjutan)  | 500.000 |  500 dokumen  | Dibatasi oleh jumlah profil konfigurasi per aplikasi (100 profil per aplikasi) | 
|  **Enkripsi sisi server**  | Ya |  [https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html)  |  Ya  | Ya |  Tidak  | Ya | 
|  **CloudFormation dukungan**  | Ya |  Bukan untuk membuat atau memperbarui data  |  Ya  | Ya |  Tidak  | Ya | 
|  **Harga**  | Kosong |  Lihat [harga Amazon S3](https://aws.amazon.com//s3/pricing/)  |  Lihat [AWS Systems Manager harga](https://aws.amazon.com//systems-manager/pricing/)  | Lihat [AWS Secrets Manager harga](https://aws.amazon.com//secrets-manager/pricing/) |  Kosong  |  Lihat [AWS CodePipeline harga](https://aws.amazon.com//codepipeline/pricing/)  | 

# Memahami penyimpanan konfigurasi yang AWS AppConfig dihosting
<a name="appconfig-creating-configuration-and-profile-about-hosted-store"></a>

AWS AppConfig termasuk penyimpanan konfigurasi internal atau yang dihosting. Konfigurasi harus 2 MB atau lebih kecil. Toko konfigurasi yang AWS AppConfig dihosting memberikan manfaat berikut dibandingkan opsi penyimpanan konfigurasi lainnya. 
+ Anda tidak perlu menyiapkan dan mengonfigurasi layanan lain seperti Amazon Simple Storage Service (Amazon S3) atau Parameter Store.
+ Anda tidak perlu mengonfigurasi izin AWS Identity and Access Management (IAM) untuk menggunakan penyimpanan konfigurasi.
+ Anda dapat menyimpan konfigurasi di YAMAL, JSON, atau sebagai dokumen teks.
+ Tidak ada biaya untuk menggunakan penyimpanan.
+ Anda dapat membuat konfigurasi dan menambahkannya ke penyimpanan saat membuat profil konfigurasi.

# Memahami konfigurasi yang disimpan di Amazon S3
<a name="appconfig-creating-configuration-and-profile-S3-source"></a>

Anda dapat menyimpan konfigurasi di bucket Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3). Saat membuat profil konfigurasi, Anda menentukan URI ke objek S3 tunggal dalam sebuah bucket. Anda juga menentukan Amazon Resource Name (ARN) dari peran AWS Identity and Access Management (IAM) yang memberikan AWS AppConfig izin untuk mendapatkan objek. Sebelum Anda membuat profil konfigurasi untuk objek Amazon S3, perhatikan batasan berikut.


****  

| Pembatasan | Detail | 
| --- | --- | 
|  Size  |  Konfigurasi yang disimpan sebagai objek S3 dapat berukuran maksimal 1 MB.  | 
|  Enkripsi objek  |  Profil konfigurasi dapat menargetkan objek terenkripsi SSE-S3 dan SSE-KMS.  | 
|  Kelas penyimpanan  |  AWS AppConfig mendukung kelas penyimpanan S3 berikut:`STANDARD`,,`INTELLIGENT_TIERING`, `REDUCED_REDUNDANCY``STANDARD_IA`, dan`ONEZONE_IA`. Kelas-kelas berikut tidak didukung: Semua kelas S3 Glacier (`GLACIER`dan). `DEEP_ARCHIVE`  | 
|  Penentuan versi  |  AWS AppConfig mengharuskan objek S3 menggunakan versi.  | 

## Mengonfigurasi izin untuk konfigurasi yang disimpan sebagai objek Amazon S3
<a name="appconfig-creating-configuration-and-profile-S3-source-permissions"></a>

Saat Anda membuat profil konfigurasi untuk konfigurasi yang disimpan sebagai objek S3, Anda harus menentukan ARN untuk peran IAM yang AWS AppConfig memberikan izin untuk mendapatkan objek. Peran harus menyertakan izin berikut.

Izin untuk mengakses objek S3
+ s3: GetObject
+ s3: GetObjectVersion

Izin untuk mencantumkan bucket S3

s3: ListAllMyBuckets

Izin untuk mengakses bucket S3 tempat objek disimpan
+ s3: GetBucketLocation
+ s3: GetBucketVersioning
+ s3: ListBucket
+ s3: ListBucketVersions

Selesaikan prosedur berikut untuk membuat peran yang memungkinkan AWS AppConfig untuk mendapatkan konfigurasi yang disimpan dalam objek S3.

**Membuat Kebijakan IAM untuk Mengakses Objek S3**  
Gunakan prosedur berikut untuk membuat kebijakan IAM yang memungkinkan AWS AppConfig untuk mendapatkan konfigurasi yang disimpan dalam objek S3.

**Untuk membuat kebijakan IAM untuk mengakses objek S3**

1. Buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Di panel navigasi, pilih **Kebijakan** dan kemudian pilih **Buat kebijakan**.

1. Di halaman **Buat kebijakan**, pilih tab **JSON**.

1. Perbarui kebijakan sampel berikut dengan informasi tentang bucket S3 dan objek konfigurasi Anda. Kemudian tempelkan kebijakan ke bidang teks pada tab **JSON**. Ganti *placeholder values* dengan informasi Anda sendiri.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "s3:GetObject",
           "s3:GetObjectVersion"
         ],
         "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/my-configurations/my-configuration.json"
       },
       {
         "Effect": "Allow",
         "Action": [
           "s3:GetBucketLocation",
           "s3:GetBucketVersioning",
           "s3:ListBucketVersions",
           "s3:ListBucket"
         ],
         "Resource": [
           "arn:aws:s3:::amzn-s3-demo-bucket"
         ]
       },
       {
         "Effect": "Allow",
         "Action": "s3:ListAllMyBuckets",
         "Resource": "*"
       } 
     ]
   }
   ```

------

1. Pilih **Tinjau kebijakan**.

1. Pada halaman **Kebijakan tinjauan**, ketikkan nama di kotak **Nama**, lalu ketik deskripsi.

1. Pilih **Buat kebijakan**. Sistem mengembalikan Anda ke halaman **Peran**.

**Membuat Peran IAM untuk Mengakses Objek S3**  
Gunakan prosedur berikut untuk membuat peran IAM yang memungkinkan AWS AppConfig untuk mendapatkan konfigurasi yang disimpan dalam objek S3.

**Untuk membuat peran IAM untuk mengakses objek Amazon S3**

1. Buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Di panel navigasi, pilih **Peran**, lalu pilih **Buat peran**.

1. Pada bagian **Pilih jenis entitas tepercaya**, pilih **AWS layanan**.

1. Di bagian **Pilih kasus penggunaan**, di bawah **Kasus penggunaan umum**, pilih **EC2**, lalu pilih **Berikutnya: Izin**.

1. Pada halaman **Lampirkan kebijakan izin**, di kotak pencarian, masukkan nama kebijakan yang Anda buat di prosedur sebelumnya. 

1. Pilih kebijakan dan kemudian pilih **Berikutnya: Tag**.

1. Pada halaman **Tambahkan tag (opsional)**, masukkan kunci dan nilai opsional, lalu pilih **Berikutnya: Tinjau**.

1. Pada halaman **Tinjauan**, ketikkan nama di bidang **Nama peran**, lalu ketik deskripsi.

1. Pilih **Buat peran**. Sistem mengembalikan Anda ke halaman **Peran**.

1. Pada halaman **Peran**, pilih peran yang baru Anda buat untuk membuka halaman **Ringkasan**. Catat **Nama peran** dan **Peran ARN**. Anda akan menentukan peran ARN saat Anda membuat profil konfigurasi nanti dalam topik ini.

**Menciptakan Hubungan Kepercayaan**  
Gunakan prosedur berikut untuk mengonfigurasi peran yang baru saja Anda buat agar dipercaya AWS AppConfig.

**Untuk menambah hubungan kepercayaan**

1. Di halaman **Ringkasan** untuk peran yang baru saja Anda buat, pilih tab **Trust Relationships**, lalu pilih **Edit Trust Relationship**.

1. Hapus `"ec2.amazonaws.com"` dan tambahkan`"appconfig.amazonaws.com"`, seperti yang ditunjukkan pada contoh berikut.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "appconfig.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

------

1. Pilih **Perbarui Kebijakan Kepercayaan**.

# Membuat profil konfigurasi AWS AppConfig bentuk bebas (konsol)
<a name="appconfig-creating-free-form-configuration-and-profile-create-console"></a>

Gunakan prosedur berikut untuk membuat profil konfigurasi AWS AppConfig bentuk bebas dan (opsional) konfigurasi bentuk bebas dengan menggunakan konsol. AWS Systems Manager 

**Untuk membuat profil konfigurasi bentuk bebas**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/appconfig/](https://console.aws.amazon.com/systems-manager/appconfig/).

1. Di panel navigasi, pilih **Aplikasi**, lalu pilih aplikasi yang Anda buat. [Membuat namespace untuk aplikasi Anda di AWS AppConfig](appconfig-creating-namespace.md)

1. Pilih tab **Configuration profiles and feature flags**, lalu pilih **Create configuration**.

1. Di bagian **Opsi konfigurasi**, pilih **konfigurasi Freeform**.

1. Untuk **nama profil Konfigurasi**, masukkan nama untuk profil konfigurasi.

1. (Opsional) Perluas **Deskripsi** dan masukkan deskripsi.

1. (Opsional) Perluas **Opsi tambahan** dan selesaikan yang berikut ini, seperlunya.

   1. Di bagian **Ekstensi asosiasi**, pilih ekstensi dari daftar.

   1. Di bagian **Tag**, pilih **Tambahkan tag baru**, lalu tentukan kunci dan nilai opsional. 

1. Pilih **Berikutnya**.

1. Pada halaman **Tentukan data konfigurasi**, di bagian **Definisi konfigurasi**, pilih opsi.

1. Lengkapi bidang untuk opsi yang Anda pilih, seperti yang dijelaskan dalam tabel berikut.  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/appconfig/latest/userguide/appconfig-creating-free-form-configuration-and-profile-create-console.html)

1. Di bagian **Peran layanan**, pilih **Peran layanan baru** untuk AWS AppConfig membuat peran IAM yang menyediakan akses ke data konfigurasi. AWS AppConfig secara otomatis mengisi bidang **Nama peran** berdasarkan nama yang Anda masukkan sebelumnya. Atau, pilih **Peran layanan yang ada**. Pilih peran dengan menggunakan daftar **ARN Peran**.

1. Secara opsional, pada halaman **Tambahkan validator**, pilih Skema **JSON** atau. **AWS Lambda** Jika Anda memilih **Skema JSON**, masukkan Skema JSON di bidang. Jika Anda memilih **AWS Lambda**, pilih fungsi Amazon Resource Name (ARN) dan versi dari daftar. 
**penting**  
Data konfigurasi yang disimpan dalam dokumen SSM harus memvalidasi terhadap Skema JSON terkait sebelum Anda dapat menambahkan konfigurasi ke sistem. Parameter SSM tidak memerlukan metode validasi, tetapi kami menyarankan Anda membuat pemeriksaan validasi untuk konfigurasi parameter SSM baru atau yang diperbarui dengan menggunakan. AWS Lambda

1. Pilih **Berikutnya**.

1. Pada halaman **Tinjau dan simpan**, pilih **Simpan dan lanjutkan untuk menerapkan**.

**penting**  
Jika Anda membuat profil konfigurasi untuk AWS CodePipeline, maka Anda harus membuat pipeline CodePipeline yang menentukan AWS AppConfig sebagai penyedia *penerapan*. Anda tidak perlu tampil[Menerapkan flag fitur dan data konfigurasi di AWS AppConfig](deploying-feature-flags.md). Namun, Anda harus mengonfigurasi klien untuk menerima pembaruan konfigurasi aplikasi seperti yang dijelaskan dalam[Mengambil data konfigurasi tanpa Agen AWS AppConfig](about-data-plane.md). *Untuk informasi tentang membuat pipeline yang ditetapkan AWS AppConfig sebagai penyedia penerapan, lihat [Tutorial: Membuat Pipeline yang Digunakan AWS AppConfig sebagai Penyedia Deployment di Panduan](https://docs.aws.amazon.com/codepipeline/latest/userguide/tutorials-AppConfig.html) Pengguna.AWS CodePipeline * 

Lanjut ke [Menerapkan flag fitur dan data konfigurasi di AWS AppConfig](deploying-feature-flags.md).

# Membuat profil konfigurasi AWS AppConfig bentuk bebas (baris perintah)
<a name="appconfig-creating-free-form-configuration-and-profile-create-commandline"></a>

Prosedur berikut menjelaskan cara menggunakan AWS CLI (di Linux atau Windows) atau Alat AWS untuk PowerShell untuk membuat profil konfigurasi AWS AppConfig bentuk bebas. Jika mau, Anda dapat menggunakan AWS CloudShell untuk menjalankan perintah yang tercantum di bawah ini. Untuk informasi selengkapnya, lihat [Apa itu AWS CloudShell?](https://docs.aws.amazon.com//cloudshell/latest/userguide/welcome.html) dalam *Panduan Pengguna AWS CloudShell *.

**catatan**  
Untuk konfigurasi bentuk bebas yang dihosting di penyimpanan konfigurasi yang AWS AppConfig dihosting, Anda menentukan `hosted` URI lokasi.

**Untuk membuat profil konfigurasi dengan menggunakan AWS CLI**

1. Buka AWS CLI.

1. Jalankan perintah berikut untuk membuat profil konfigurasi bentuk bebas. 

------
#### [ Linux ]

   ```
   aws appconfig create-configuration-profile \
     --application-id APPLICATION_ID \
     --name NAME \
     --description CONFIGURATION_PROFILE_DESCRIPTION \
     --location-uri CONFIGURATION_URI or hosted \
     --retrieval-role-arn IAM_ROLE_ARN \
     --tags TAGS \
     --validators "Content=SCHEMA_CONTENT or LAMBDA_FUNCTION_ARN,Type=JSON_SCHEMA or LAMBDA"
   ```

------
#### [ Windows ]

   ```
   aws appconfig create-configuration-profile ^
     --application-id APPLICATION_ID ^
     --name NAME ^
     --description CONFIGURATION_PROFILE_DESCRIPTION ^
     --location-uri CONFIGURATION_URI or hosted  ^
     --retrieval-role-arn IAM_ROLE_ARN ^
     --tags TAGS ^
     --validators "Content=SCHEMA_CONTENT or LAMBDA_FUNCTION_ARN,Type=JSON_SCHEMA or LAMBDA"
   ```

------
#### [ PowerShell ]

   ```
   New-APPCConfigurationProfile `
     -Name NAME `
     -ApplicationId APPLICATION_ID `
     -Description CONFIGURATION_PROFILE_DESCRIPTION `
     -LocationUri CONFIGURATION_URI or hosted `
     -RetrievalRoleArn IAM_ROLE_ARN `
     -Tag TAGS `
     -Validators "Content=SCHEMA_CONTENT or LAMBDA_FUNCTION_ARN,Type=JSON_SCHEMA or LAMBDA"
   ```

------

**penting**  
Perhatikan informasi penting berikut.  
Jika Anda membuat profil konfigurasi untuk AWS CodePipeline, maka Anda harus membuat pipeline CodePipeline yang menentukan AWS AppConfig sebagai penyedia *penerapan*. Anda tidak perlu tampil[Menerapkan flag fitur dan data konfigurasi di AWS AppConfig](deploying-feature-flags.md). Namun, Anda harus mengonfigurasi klien untuk menerima pembaruan konfigurasi aplikasi seperti yang dijelaskan dalam[Mengambil data konfigurasi tanpa Agen AWS AppConfig](about-data-plane.md). *Untuk informasi tentang membuat pipeline yang ditetapkan AWS AppConfig sebagai penyedia penerapan, lihat [Tutorial: Membuat Pipeline yang Digunakan AWS AppConfig sebagai Penyedia Deployment di Panduan](https://docs.aws.amazon.com/codepipeline/latest/userguide/tutorials-AppConfig.html) Pengguna.AWS CodePipeline * 
Jika Anda membuat konfigurasi di penyimpanan konfigurasi yang AWS AppConfig dihosting, Anda dapat membuat versi konfigurasi baru menggunakan operasi [CreateHostedConfigurationVersion](https://docs.aws.amazon.com//appconfig/2019-10-09/APIReference/API_CreateHostedConfigurationVersion.html)API. Untuk melihat AWS CLI detail dan contoh perintah untuk operasi API ini, lihat [create-hosted-configuration-version](https://docs.aws.amazon.com/cli/latest/reference/appconfig/create-hosted-configuration-version.html)di *AWS CLI Command Reference*.

Lanjut ke [Menerapkan flag fitur dan data konfigurasi di AWS AppConfig](deploying-feature-flags.md).

# Membuat profil konfigurasi untuk sumber data non-native
<a name="appconfig-creating-configuration-profile-other-data-sources"></a>

AWS AppConfig mendukung penyebaran data konfigurasi dari sebagian besar penyimpanan data apa pun. Secara native, AWS AppConfig mendukung penerapan data konfigurasi yang disimpan dalam layanan berikut:
+ Toko konfigurasi yang AWS AppConfig dihosting
+ Amazon S3
+ AWS Secrets Manager
+ AWS Systems Manager Toko Parameter
+ Toko Dokumen Systems Manager
+ AWS CodePipeline

Jika data konfigurasi disimpan di lokasi yang tidak didukung secara native AWS AppConfig, Anda dapat membuat [AWS AppConfig ekstensi](https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions.html) untuk mengambil data dari sumbernya. Misalnya, dengan menggunakan AWS AppConfig ekstensi, Anda dapat mengambil data konfigurasi yang disimpan di Amazon Relational Database Service (Amazon RDS), Amazon DynamoDB (DynamoDB GitHub) GitLab,,, atau repo lokal, untuk beberapa nama. Dengan menerapkan ekstensi, Anda dapat memanfaatkan AWS AppConfig keamanan dan DevOps peningkatan untuk aplikasi dan lingkungan komputasi Anda. Anda juga dapat menggunakan metode ini saat memigrasikan data konfigurasi dari sistem lama ke dalam. AWS AppConfig

Membuat profil konfigurasi untuk sumber data yang tidak didukung secara native AWS AppConfig melibatkan proses atau tindakan berikut:

1. Buat [AWS Lambda fungsi](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) yang mengambil data dari sumber data Anda. Selama fungsi Lambda dapat mengakses sumber data, AWS AppConfig ekstensi Anda akan dapat mengambil data. 

1. Buat AWS AppConfig ekstensi khusus yang memanggil fungsi Lambda Anda. Untuk informasi selengkapnya, lihat [Walkthrough: Membuat ekstensi khusus AWS AppConfig](working-with-appconfig-extensions-creating-custom.md).

1. Buat profil konfigurasi AWS AppConfig bentuk bebas. Secara khusus, buat profil konfigurasi yang menggunakan definisi **konfigurasi yang AWS AppConfig dihosting**. Profil konfigurasi berfungsi sebagai penyimpanan data sementara setelah fungsi Lambda Anda mengambil konfigurasi Anda dari sumber Anda. Aplikasi Anda akan mengambil data konfigurasi dari toko konfigurasi yang AWS AppConfig dihosting. Untuk informasi selengkapnya, lihat [Membuat profil konfigurasi formulir gratis di AWS AppConfig](appconfig-free-form-configurations-creating.md).

1. Buat asosiasi ekstensi yang memicu menggunakan titik `PRE_CREATE_HOSTED_CONFIGURATION_VERSION` tindakan. Untuk informasi selengkapnya, lihat [Langkah 4: Buat asosiasi ekstensi untuk AWS AppConfig ekstensi khusus](working-with-appconfig-extensions-creating-custom-association.md).

Setelah dikonfigurasi, ketika aplikasi Anda meminta versi baru dari data konfigurasi, Lambda mengambil data konfigurasi Anda dan menariknya ke profil konfigurasi. AWS AppConfig kemudian menyimpan profil konfigurasi dan data pihak ketiga Anda.

Ketika Anda siap, Anda dapat menyebarkan profil konfigurasi ke aplikasi Anda, sama seperti jenis data konfigurasi lainnya.

**catatan**  
Anda dapat memilih untuk menyisipkan data pihak ketiga sesuai dengan data konfigurasi yang ada, atau seluruh konten data konfigurasi hanya berisi data pihak ketiga. Jika Anda ingin memiliki data sesuai dengan data lain yang ada, logika itu harus menjadi bagian dari fungsi Lambda yang mengimpor data dari sumber pihak ketiga.

## Bermigrasi ke AWS AppConfig dari layanan konfigurasi lama dan buatan sendiri
<a name="appconfig-creating-configuration-profile-other-data-sources-migrating"></a>

Jika Anda sudah mulai menggunakan AWS AppConfig dan masih memiliki data konfigurasi lama atau tanda fitur di sistem lain, Anda dapat menggunakan proses yang dijelaskan sebelumnya dalam topik ini untuk bermigrasi dari sistem lama Anda dan ke sistem lama. AWS AppConfig Anda dapat membuat ekstensi yang menarik data dari sistem lama Anda dan menerapkannya. AWS AppConfig Menggunakan dengan AWS AppConfig cara ini memberi Anda semua kontrol dan manfaat pagar pembatas keamanan sambil tetap menggunakan penyimpanan data lama Anda.