Membuat profil konfigurasi bendera fitur di AWS AppConfig - AWS AppConfig

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.

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
  1. Buka AWS Systems Manager konsol di https://console.aws.amazon.com/systems-manager/appconfig/.

  2. Di panel navigasi, pilih Aplikasi, lalu pilih aplikasi yang Anda buat. Membuat namespace untuk aplikasi Anda di AWS AppConfig

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

  4. Di bagian Opsi konfigurasi, pilih Bendera fitur.

  5. Gulir ke bawah. Di bagian Profil konfigurasi, untuk nama profil Konfigurasi, masukkan nama.

  6. (Opsional) Perluas Deskripsi dan masukkan deskripsi.

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

    1. Dalam daftar Enkripsi, pilih tombol AWS Key Management Service (AWS KMS) dari daftar.

    2. Di bagian Ekstensi asosiasi, pilih ekstensi dari daftar.

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

  8. Pilih Selanjutnya.

  9. Di bagian Definisi bendera fitur, untuk nama Bendera, masukkan nama.

  10. 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.

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

  12. Pilih Ini adalah bendera jangka pendek dan secara opsional memilih tanggal kapan bendera harus dinonaktifkan atau dihapus. Perhatikan bahwa AWS AppConfig tidak menonaktifkan bendera.

  13. Di bagian atribut Bendera, pilih Tentukan atribut. Atribut memungkinkan Anda untuk memberikan nilai tambahan dalam flag Anda.

  14. 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.

    Contoh atribut bendera untuk bendera AWS AppConfig fitur

    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.

  15. 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.

  16. Pilih Selanjutnya.

  17. 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
  1. Buka AWS CLI.

  2. Buat profil konfigurasi bendera fitur yang menentukan Tipe sebagaiAWS.AppConfig.FeatureFlags. Profil konfigurasi harus digunakan hosted untuk URI lokasi.

    Linux
    aws appconfig create-configuration-profile \ --application-id The_application_ID \ --name A_name_for_the_configuration_profile \ --location-uri hosted \ --type AWS.AppConfig.FeatureFlags
    Windows
    aws appconfig create-configuration-profile ^ --application-id The_application_ID ^ --name A_name_for_the_configuration_profile ^ --location-uri hosted ^ --type AWS.AppConfig.FeatureFlags
    PowerShell
    New-APPCConfigurationProfile ` -Name A_name_for_the_configuration_profile ` -ApplicationId The_application_ID ` -LocationUri hosted ` -Type AWS.AppConfig.FeatureFlags
  3. 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.

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

    Linux
    aws appconfig create-hosted-configuration-version \ --application-id The_application_ID \ --configuration-profile-id The_configuration_profile_id \ --content-type "application/json" \ --content file://path/to/feature_flag_configuration_data \ file_name_for_system_to_store_configuration_data
    Windows
    aws appconfig create-hosted-configuration-version ^ --application-id The_application_ID ^ --configuration-profile-id The_configuration_profile_id ^ --content-type "application/json" ^ --content file://path/to/feature_flag_configuration_data ^ file_name_for_system_to_store_configuration_data
    PowerShell
    New-APPCHostedConfigurationVersion ` -ApplicationId The_application_ID ` -ConfigurationProfileId The_configuration_profile_id ` -ContentType "application/json" ` -Content file://path/to/feature_flag_configuration_data ` file_name_for_system_to_store_configuration_data

    Berikut adalah contoh perintah Linux.

    aws appconfig create-hosted-configuration-version \ --application-id 1a2b3cTestApp \ --configuration-profile-id 4d5e6fTestConfigProfile \ --content-type "application/json" \ --content Base64Content

    contentParameter menggunakan data yang base64 dikodekan berikut.

    { "flags": { "flagkey": { "name": "WinterSpecialBanner" } }, "values": { "flagkey": { "enabled": true } }, "version": "1" }

    Sistem mengembalikan informasi seperti berikut ini.

    Linux
    {
       "ApplicationId"          : "1a2b3cTestApp",
       "ConfigurationProfileId" : "4d5e6fTestConfigProfile",
       "VersionNumber"          : "1",
       "ContentType"            : "application/json"
    }
    Windows
    {
       "ApplicationId"          : "1a2b3cTestApp",
       "ConfigurationProfileId" : "4d5e6fTestConfigProfile",
       "VersionNumber"          : "1",
       "ContentType"            : "application/json"
    }
    PowerShell
    ApplicationId          : 1a2b3cTestApp
    ConfigurationProfileId : 4d5e6fTestConfigProfile
    VersionNumber          : 1
    ContentType            : application/json

    service_returned_content_fileBerisi 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 } } }