azure-appconfiguration-py – skill DevOps & Hạ tầng cho agent AI
SDK Azure App Configuration cho Python. Dùng để quản lý cấu hình tập trung, feature flag và cài đặt động.
Cài skill azure-appconfiguration-py bằng một lệnh
Chọn công cụ bạn đang dùng, copy lệnh và dán vào terminal. Skill sẽ nằm trong thư mục skills của công cụ đó và sẵn sàng dùng ở phiên làm việc tiếp theo.
Claude Code
mkdir -p ~/.claude/skills && curl -fsSL https://skill.dn1nguoi.com/z/azure-appconfiguration-py-fba13.tgz | tar xz -C ~/.claude/skills
Gọi trong Claude Code: /azure-appconfiguration-py – rồi mô tả công việc bạn muốn làm.
Codex
mkdir -p ~/.codex/skills && curl -fsSL https://skill.dn1nguoi.com/z/azure-appconfiguration-py-fba13.tgz | tar xz -C ~/.codex/skills
Gọi trong Codex: $azure-appconfiguration-py – rồi mô tả công việc bạn muốn làm.
Hermes Agent
mkdir -p ~/.hermes/skills && curl -fsSL https://skill.dn1nguoi.com/z/azure-appconfiguration-py-fba13.tgz | tar xz -C ~/.hermes/skills
Gọi trong Hermes Agent: /azure-appconfiguration-py – rồi mô tả công việc bạn muốn làm.
DeepSeek
mkdir -p ~/.deepcode/skills && curl -fsSL https://skill.dn1nguoi.com/z/azure-appconfiguration-py-fba13.tgz | tar xz -C ~/.deepcode/skills
Gọi trong DeepSeek: /azure-appconfiguration-py – rồi mô tả công việc bạn muốn làm.
Nội dung SKILL.md
Nội dung SKILL.md gốc bằng tiếng Anh.
Azure App Configuration SDK for Python
Centralized configuration management with feature flags and dynamic settings.
Installation
pip install azure-appconfigurationEnvironment Variables
AZURE_APPCONFIGURATION_CONNECTION_STRING=Endpoint=https://<name>.azconfig.io;Id=...;Secret=...
# Or for Entra ID:
AZURE_APPCONFIGURATION_ENDPOINT=https://<name>.azconfig.ioAuthentication
Connection String
import os
from azure.appconfiguration import AzureAppConfigurationClient
client = AzureAppConfigurationClient.from_connection_string(
os.environ["AZURE_APPCONFIGURATION_CONNECTION_STRING"]
)Entra ID
from azure.appconfiguration import AzureAppConfigurationClient
from azure.identity import DefaultAzureCredential
client = AzureAppConfigurationClient(
base_url=os.environ["AZURE_APPCONFIGURATION_ENDPOINT"],
credential=DefaultAzureCredential()
)Examples are independent fragments requiring azure-identity for Entra auth and project endpoint variables. Confirm store/label/key and read the current ETag before replacement/deletion; use appropriate match conditions for concurrent edits. Feature flag changes affect real users, and unlocking a setting is a separate privileged change. Use approved synthetic values, minimize listing scope, keep credentials/value payloads out of logs, and close both async credential/client on failure. Snapshots need actual creation status and tested restore procedure; schema-valid flags do not themselves implement gradual rollout or an A/B experiment.
Configuration Settings
Get Setting
setting = client.get_configuration_setting(key="app:settings:message")
print(f"Read setting: {setting.key}") # Do not log secret-bearing valuesGet with Label
# Labels allow environment-specific values
setting = client.get_configuration_setting(
key="app:settings:message",
label="production"
)Set Setting
from azure.appconfiguration import ConfigurationSetting
setting = ConfigurationSetting(
key="app:settings:message",
value="Hello, World!",
label="development",
content_type="text/plain",
tags={"environment": "dev"}
)
client.set_configuration_setting(setting)Delete Setting
client.delete_configuration_setting(
key="app:settings:message",
label="development"
)List Settings
All Settings
settings = client.list_configuration_settings()
for setting in settings:
print(f"{setting.key} [{setting.label}]") # Values may be sensitiveFilter by Key Prefix
settings = client.list_configuration_settings(
key_filter="app:settings:*"
)Filter by Label
settings = client.list_configuration_settings(
label_filter="production"
)Feature Flags
Set Feature Flag
from azure.appconfiguration import ConfigurationSetting
import json
feature_flag = ConfigurationSetting(
key=".appconfig.featureflag/beta-feature",
value=json.dumps({
"id": "beta-feature",
"enabled": True,
"conditions": {
"client_filters": []
}
}),
content_type="application/vnd.microsoft.appconfig.ff+json;charset=utf-8"
)
client.set_configuration_setting(feature_flag)Get Feature Flag
setting = client.get_configuration_setting(
key=".appconfig.featureflag/beta-feature"
)
flag_data = json.loads(setting.value)
print(f"Feature enabled: {flag_data['enabled']}")List Feature Flags
flags = client.list_configuration_settings(
key_filter=".appconfig.featureflag/*"
)
for flag in flags:
data = json.loads(flag.value)
print(f"{data['id']}: {'enabled' if data['enabled'] else 'disabled'}")Read-Only Settings
# Make setting read-only
client.set_read_only(
configuration_setting=setting,
read_only=True
)
# Remove read-only
client.set_read_only(
configuration_setting=setting,
read_only=False
)Snapshots
Create Snapshot
from azure.appconfiguration import ConfigurationSnapshot, ConfigurationSettingsFilter
snapshot = ConfigurationSnapshot(
filters=[
ConfigurationSettingsFilter(key="app:*", label="production")
]
)
created = client.begin_create_snapshot(
name="v1-snapshot",
filters=snapshot.filters
).result()List Snapshot Settings
settings = client.list_configuration_settings(
snapshot_name="v1-snapshot"
)Async Client
from azure.appconfiguration.aio import AzureAppConfigurationClient
from azure.identity.aio import DefaultAzureCredential
async def main():
credential = DefaultAzureCredential()
client = AzureAppConfigurationClient(
base_url=endpoint,
credential=credential
)
setting = await client.get_configuration_setting(key="app:message")
# Consume the authorized value without logging it.
await client.close()
await credential.close()Client Operations
| Operation | Description |
|-----------|-------------|
| get_configuration_setting | Get single setting |
| set_configuration_setting | Create or update setting |
| delete_configuration_setting | Delete setting |
| list_configuration_settings | List with filters |
| set_read_only | Lock/unlock setting |
| begin_create_snapshot | Create point-in-time snapshot |
| list_snapshots | List all snapshots |
Best Practices
1. Use labels for environment separation (dev, staging, prod)
2. Use key prefixes for logical grouping (app:database:*, app:cache:*)
3. Make production settings read-only to prevent accidental changes
4. Create snapshots before deployments for rollback capability
5. Use Entra ID instead of connection strings in production
6. Refresh settings periodically in long-running applications
7. Use feature flags for gradual rollouts and A/B testing
When to Use
This skill is applicable to execute the workflow or actions described in the overview.
Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.
Skill liên quan
- azure-appconfiguration-ts – Quản lý cấu hình tập trung với feature flag và làm mới động.
- azure-communication-callautomation-java – Xây dựng quy trình tự động hóa cuộc gọi phía máy chủ, bao gồm hệ thống IVR, định tuyến…
- azure-communication-chat-java – Xây dựng ứng dụng chat thời gian thực với quản lý luồng, nhắn tin, người tham gia và xác…
- azure-communication-common-java – Tiện ích chung của Azure Communication Services cho Java. Dùng khi làm việc với…
- linkerd-patterns – Triển khai các mẫu service mesh Linkerd nhẹ, tập trung bảo mật. Dùng khi thiết lập…
- azure-containerregistry-py – SDK Azure Container Registry cho Python. Dùng để quản lý image container, artifact và…
- azure-cosmos-db-py – Xây dựng các dịch vụ Azure Cosmos DB NoSQL sản xuất theo nguyên tắc clean code, thực…
- azure-cosmos-py – SDK Azure Cosmos DB cho Python (NoSQL API). Dùng cho CRUD tài liệu, truy vấn, container…