

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

# Bekerja dengan mode pengembangan lokal AWS AppConfig Agen
<a name="appconfig-agent-how-to-use-local-development"></a>

AWS AppConfig Agen mendukung *mode pengembangan lokal*. Jika Anda mengaktifkan mode pengembangan lokal, agen membaca data konfigurasi dari direktori tertentu pada disk. Itu tidak mengambil data konfigurasi dari AWS AppConfig. Anda dapat mensimulasikan penerapan konfigurasi dengan memperbarui file di direktori yang ditentukan. Kami merekomendasikan mode pengembangan lokal untuk kasus penggunaan berikut:
+ Uji versi konfigurasi yang berbeda sebelum menerapkannya menggunakan AWS AppConfig.
+ Uji opsi konfigurasi yang berbeda untuk fitur baru sebelum melakukan perubahan pada repositori kode Anda.
+ Uji skenario konfigurasi yang berbeda untuk memverifikasi bahwa mereka berfungsi seperti yang diharapkan.

**Awas**  
Jangan gunakan mode pengembangan lokal di lingkungan produksi. Mode ini tidak mendukung fitur AWS AppConfig keamanan penting seperti validasi penerapan dan rollback otomatis.

Gunakan prosedur berikut untuk mengkonfigurasi AWS AppConfig Agen untuk mode pengembangan lokal.

**Untuk mengkonfigurasi AWS AppConfig Agen untuk mode pengembangan lokal**

1. Instal agen menggunakan metode yang dijelaskan untuk lingkungan komputasi Anda. AWS AppConfig Agen bekerja dengan yang berikut Layanan AWS:
   + [AWS Lambda](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-integration-lambda-extensions.html)
   + [Amazon EC2](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-integration-ec2.html)
   + [Amazon ECS dan Amazon EKS](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-integration-containers-agent.html)

1. Jika agen berjalan, hentikan.

1. Tambahkan `LOCAL_DEVELOPMENT_DIRECTORY` ke daftar variabel lingkungan. Tentukan direktori pada sistem file yang menyediakan agen dengan izin baca. Misalnya, `/tmp/local_configs`.

1. Buat file di direktori. Nama file harus menggunakan format berikut:

   ```
   application_name:environment_name:configuration_profile_name
   ```

   Inilah contohnya:

   ```
   Mobile:Development:EnableMobilePaymentsFeatureFlagConfiguration
   ```
**catatan**  
Untuk melihat contoh bendera fitur yang dapat Anda tambahkan ke file di `LOCAL_DEVELOPMENT_DIRECTORY` direktori Anda, lihat[Contoh bendera fitur untuk mode pengembangan lokal AWS AppConfig Agen](appconfig-agent-how-to-use-local-development-samples.md).
(Opsional) Anda dapat mengontrol jenis konten yang dikembalikan agen untuk data konfigurasi Anda berdasarkan ekstensi yang Anda berikan pada file. Misalnya, jika Anda memberi nama file dengan ekstensi.json, agen mengembalikan jenis konten `application/json` saat aplikasi Anda memintanya. Jika Anda menghilangkan ekstensi, agen menggunakan `application/octet-stream` untuk jenis konten. Jika Anda memerlukan kontrol yang tepat, Anda dapat memberikan ekstensi dalam format`.type%subtype`. Agen akan mengembalikan jenis konten`.type/subtype`.

1. Jalankan perintah berikut untuk me-restart agen dan meminta data konfigurasi.

   ```
   curl http://localhost:2772/applications/application_name/environments/environment_name/configurations/configuration_name
   ```

Agen memeriksa perubahan pada file lokal pada interval polling yang ditentukan untuk agen. Jika interval polling tidak ditentukan, agen menggunakan interval default 45 detik. Pemeriksaan ini pada interval polling memastikan bahwa agen berperilaku sama di lingkungan pengembangan lokal seperti saat dikonfigurasi untuk berinteraksi dengan AWS AppConfig layanan. 

**catatan**  
Untuk menyebarkan versi baru dari file konfigurasi pengembangan lokal, perbarui file dengan data baru.

# Contoh bendera fitur untuk mode pengembangan lokal AWS AppConfig Agen
<a name="appconfig-agent-how-to-use-local-development-samples"></a>

Bagian ini mencakup contoh bendera fitur yang dapat Anda gunakan dengan AWS AppConfig Agen dalam mode pengembangan lokal. Mode pengembangan lokal mengharapkan data tanda fitur dalam format waktu pengambilan data. *Format waktu pengambilan adalah format* yang dikembalikan saat bendera diambil dari [GetLatestConfiguration](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_appconfigdata_GetLatestConfiguration.html)API, yang hanya berisi nilai bendera. Format waktu pengambilan tidak menyertakan definisi lengkap flag (seperti yang diteruskan ke API). [CreateHostedConfigurationVersion](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_CreateHostedConfigurationVersion.html) Definisi lengkap untuk bendera juga berisi informasi seperti nama dan nilai atribut, batasan, dan status diaktifkan bendera. 

**Topics**
+ [Sampel bendera fitur dasar](#appconfig-agent-how-to-use-local-development-samples-basic)
+ [Sampel bendera fitur multi-varian](#appconfig-agent-how-to-use-local-development-samples-multi-variant)

## Sampel bendera fitur dasar
<a name="appconfig-agent-how-to-use-local-development-samples-basic"></a>

Gunakan contoh bendera fitur dasar berikut dengan AWS AppConfig Agen dalam mode pengembangan lokal.

**catatan**  
Jika Anda ingin agen melaporkan jenis konten data bendera fitur lokal Anda sebagai `application/json` (seperti saat mengambil data bendera dari AWS AppConfig lingkungan yang bukan mode pengembangan lokal), file bendera fitur lokal Anda harus menggunakan ekstensi.json. Misalnya, `Local:MyFeatureFlags:SampleB1.json`.

**Contoh 1**: Bendera tunggal yang mewakili penyegaran UI.

```
{
    "ui_refresh": {
        "enabled": true,
        "new_styleguide_colors": true
    }
}
```

**Contoh 2**: Beberapa bendera yang mewakili bendera fitur operasional.

```
{
   "background_worker": {
        "enabled": true,
        "num_threads": 4,
        "queue_name": "MyWorkQueue"
   },
   "emergency_shutoff_switch": {
        "enabled": false
   },
   "logger_settings": {
        "enabled": true,
        "level": "INFO"
   }
}
```

## Sampel bendera fitur multi-varian
<a name="appconfig-agent-how-to-use-local-development-samples-multi-variant"></a>

Format waktu pengambilan konfigurasi flag fitur yang berisi setidaknya satu flag fitur multi-varian direpresentasikan sebagai data [Amazon Ion](https://amazon-ion.github.io/ion-docs/), bukan data JSON. Dalam format ini, flag multi-varian direpresentasikan sebagai daftar beranotasi, dan flag dasar direpresentasikan sebagai string beranotasi. Elemen daftar dari bendera multi-varian adalah tuple (daftar dengan panjang dua), yang mewakili varian tunggal, atau string, yang mewakili varian default. Dalam tupel varian, elemen pertama adalah ekspresi s yang mewakili aturan varian, dan elemen kedua adalah string yang mewakili konten varian.

Agar agen dapat menafsirkan file-file ini dengan benar, file bendera fitur lokal Anda harus menggunakan ekstensi berikut:. `application%ion%type=AWS.AppConfig.FeatureFlags`. Misalnya, `Local:MyFeatureFlags:SampleMV1.application%ion%type=AWS.AppConfig.FeatureFlags`.

**Contoh 1**: Bendera multi-varian yang mewakili rilis berjenjang dari fitur baru.

```
'tiered_release'::[
  [
    (or (and (eq $group "Tier1") (split by::$userId pct::1 seed::"2025.01.01")) (and (eq $group "Tier2") (split by::$userId pct::7 seed::"2025.01.01"))),
    '''{"_variant": "ShowFeature", "enabled": true}'''
  ],
  '''{"_variant": "HideFeature", "enabled": false}'''
]
```

**Contoh 2**: Beberapa flag yang mewakili tampilan UX yang berbeda berdasarkan ID pengguna. Dua bendera pertama adalah multi-varian dan bendera terakhir adalah dasar.

```
'colorway'::[
  [
    (contains $userId "beta"),
    '''{"_variant": "BetaTesters", "enabled": true, "background": "blue", "foreground": "red"}''',
  ],
  [
    (split by::$userId pct::10),
    '''{"_variant": "SplitRollOutRedAndBlue", "enabled": true, "background": "blue", "foreground": "red"}''',
  ],
  '''{"_variant": "default", "enabled": true, "background": "green", "foreground": "green"}''',
]

'simple_feature'::[
  [
    (contains $userId "beta"),
    '''{"_variant": "BetaTesters", "enabled": true}'''
  ],
  '''{"_variant": "default", "enabled": false}'''
]

'button_color'::'''{"enabled": true, "color": "orange"}'''
```