Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Membuat profil konfigurasi bendera fitur di AWS AppConfig
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. Untuk informasi selengkapnya tentang penyimpanan konfigurasi yang AWS AppConfig dihosting, lihat Tentang toko konfigurasi yang AWS AppConfig dihosting bagian.
Topik
Sebelum Anda mulai
Dalam prosedur berikut, di bagian Enkripsi opsional, Anda dapat memilih kunci AWS Key Management Service (AWS KMS). 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 pelangganKeamanan di AWS AppConfig.
Prosedur berikut juga 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 Tentang AWS AppConfig ekstensi.
Terakhir, di bagian atribut bendera Fitur, saat Anda memasukkan detail atribut dari bendera fitur baru, Anda dapat menentukan batasan. Batasan memastikan bahwa nilai atribut yang tidak terduga tidak diterapkan ke aplikasi Anda. AWS AppConfig mendukung jenis atribut bendera berikut dan kendala yang sesuai.
Tipe | Kendala | Deskripsi |
---|---|---|
Tali | Ekspresi reguler |
Pola Regex untuk string |
Enum |
Daftar nilai yang dapat diterima untuk string |
|
Nomor | Minimum |
Nilai numerik minimum untuk atribut |
Maksimum |
Nilai numerik maksimum untuk atribut |
|
Boolean | Tidak ada | Tidak ada |
Array string | Ekspresi reguler | Pola Regex untuk elemen array |
Enum | Daftar nilai yang dapat diterima untuk elemen array | |
Array nomor | Minimum | Nilai numerik minimum untuk elemen array |
Maksimum | Nilai numerik maksimum untuk elemen array |
Membuat profil konfigurasi bendera fitur (konsol)
Gunakan prosedur berikut untuk membuat profil konfigurasi tanda AWS AppConfig fitur dengan menggunakan AWS AppConfig konsol.
Untuk membuat profil konfigurasi
Buka AWS Systems Manager konsol di https://console.aws.amazon.com/systems-manager/appconfig/
. -
Di panel navigasi, pilih Aplikasi, lalu pilih aplikasi yang Anda buat. Membuat namespace untuk aplikasi Anda di AWS AppConfig
-
Pilih tab Configuration profiles and feature flags, lalu pilih Create configuration.
-
Di bagian Opsi konfigurasi, pilih Bendera fitur.
-
Gulir ke bawah. Di bagian Profil konfigurasi, untuk nama profil Konfigurasi, masukkan nama.
-
(Opsional) Perluas Deskripsi dan masukkan deskripsi.
-
(Opsional) Perluas Opsi tambahan dan selesaikan yang berikut ini, seperlunya.
-
Dalam daftar Enkripsi, pilih tombol AWS Key Management Service (AWS KMS) dari daftar.
-
Di bagian Ekstensi asosiasi, pilih ekstensi dari daftar.
-
Di bagian Tag, pilih Tambahkan tag baru, lalu tentukan kunci dan nilai opsional.
-
-
Pilih Selanjutnya.
-
Di bagian Definisi bendera fitur, untuk nama Bendera, masukkan nama.
-
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.
-
(Opsional) Perluas Deskripsi dan masukkan informasi tentang bendera ini.
-
Pilih Ini adalah bendera jangka pendek dan secara opsional memilih tanggal kapan bendera harus dinonaktifkan atau dihapus. Perhatikan bahwa AWS AppConfig tidak menonaktifkan bendera.
-
Di bagian atribut Bendera, pilih Tentukan atribut. Atribut memungkinkan Anda untuk memberikan nilai tambahan dalam flag Anda.
-
Untuk Key, tentukan tombol bendera dan pilih jenisnya dari daftar Type. Anda dapat secara opsional memvalidasi nilai atribut terhadap kendala tertentu. Gambar berikut menunjukkan sebuah contoh.
Pilih Tentukan atribut untuk menambahkan atribut tambahan.
catatan
Perhatikan informasi berikut.
-
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.
-
Pilih Nilai yang diperlukan untuk menentukan apakah nilai atribut diperlukan.
-
-
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.
-
Pilih Selanjutnya.
-
Pada halaman Tinjau dan simpan, verifikasi detail bendera dan kemudian Simpan dan lanjutkan untuk menerapkan.
Lanjut ke Menyebarkan flag fitur dan data konfigurasi di AWS AppConfig.
Membuat bendera fitur dan profil konfigurasi bendera fitur (baris perintah)
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. Jika mau, Anda dapat menggunakan AWS CloudShell untuk menjalankan perintah yang tercantum di bawah ini. Untuk informasi selengkapnya, lihat Apa itu AWS CloudShell? dalam AWS CloudShell Panduan Pengguna.
Untuk membuat konfigurasi flag fitur langkah demi langkah
-
Buka AWS CLI.
-
Buat profil konfigurasi bendera fitur yang menentukan Tipe sebagai
AWS.AppConfig.FeatureFlags
. Profil konfigurasi harus digunakanhosted
untuk URI lokasi. -
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, lihatJenis referensi untuk AWS.AppConfig.FeatureFlags. -
Gunakan
CreateHostedConfigurationVersion
API untuk menyimpan data konfigurasi flag fitur Anda AWS AppConfig.Berikut adalah contoh perintah Linux.
aws appconfig create-hosted-configuration-version \ --application-id 1a2b3cTestApp \ --configuration-profile-id 4d5e6fTestConfigProfile \ --content-type "application/json" \ --content Base64Content
content
Parameter menggunakan data yangbase64
dikodekan berikut.{ "flags": { "flagkey": { "name": "WinterSpecialBanner" } }, "values": { "flagkey": { "enabled": true } }, "version": "1" }
Sistem mengembalikan informasi seperti berikut ini.
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.
Jenis referensi untuk AWS.AppConfig.FeatureFlags
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", "flags"], "additionalProperties": false }, "flagDefinitions": { "type": "object", "patternProperties": { "^[a-z][a-zA-Z\\d-]{0,63}$": { "$ref": "#/definitions/flagDefinition" } }, "maxProperties": 100, "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"] } }, "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" } }, "maxProperties": 100, "additionalProperties": false }, "flagValue": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "_createdAt": { "type": "string" }, "_updatedAt": { "type": "string" } }, "patternProperties": { "^[a-z][a-zA-Z\\d-_]{0,63}$": { "$ref": "#/definitions/attributeValue", "maxProperties": 25 } }, "required": ["enabled"], "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" } ] }, "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 memanggilGetConfiguration
, yang sudah usang. Untuk informasi selengkapnya, lihat GetLatestConfigurationdi Referensi AWS AppConfig API.
Saat aplikasi Anda memanggil GetLatestConfigurationdan 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
ketrue
, atribut apa pun dari bendera akan hadir juga. Berikut skema JSON 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" } }, "maxProperties": 100, "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 } } }