[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-57ff2c62-54d8-4a9c-9740-85a5665ad6cb":3,"$fN38KsiZq6Pdcro4u4zNdXLtemYTXsIc-IwTS0iA59zo":43},{"id":4,"title":5,"description":6,"categoryId":7,"moduleId":8,"tags":9,"prompt":10,"icon":11,"source":12,"sourceUrl":13,"authorId":14,"authorName":15,"isPublic":16,"stars":17,"runs":18,"createdAt":19,"updatedAt":19,"module":20,"category":27,"packages":34},"57ff2c62-54d8-4a9c-9740-85a5665ad6cb","azure-appconfiguration-py","Azure App Configuration SDK for Python。用于集中式配置管理、功能标志和动态设置。","cat_coding_devops","mod_coding","sickn33,coding","---\nname: azure-appconfiguration-py\ndescription: Azure App Configuration SDK for Python. Use for centralized configuration management, feature flags, and dynamic settings.\nrisk: unknown\nsource: community\ndate_added: '2026-02-27'\n---\n\n# Azure App Configuration SDK for Python\n\nCentralized configuration management with feature flags and dynamic settings.\n\n## Installation\n\n```bash\npip install azure-appconfiguration\n```\n\n## Environment Variables\n\n```bash\nAZURE_APPCONFIGURATION_CONNECTION_STRING=Endpoint=https:\u002F\u002F\u003Cname>.azconfig.io;Id=...;Secret=...\n# Or for Entra ID:\nAZURE_APPCONFIGURATION_ENDPOINT=https:\u002F\u002F\u003Cname>.azconfig.io\n```\n\n## Authentication\n\n### Connection String\n\n```python\nfrom azure.appconfiguration import AzureAppConfigurationClient\n\nclient = AzureAppConfigurationClient.from_connection_string(\n    os.environ[\"AZURE_APPCONFIGURATION_CONNECTION_STRING\"]\n)\n```\n\n### Entra ID\n\n```python\nfrom azure.appconfiguration import AzureAppConfigurationClient\nfrom azure.identity import DefaultAzureCredential\n\nclient = AzureAppConfigurationClient(\n    base_url=os.environ[\"AZURE_APPCONFIGURATION_ENDPOINT\"],\n    credential=DefaultAzureCredential()\n)\n```\n\n## Configuration Settings\n\n### Get Setting\n\n```python\nsetting = client.get_configuration_setting(key=\"app:settings:message\")\nprint(f\"{setting.key} = {setting.value}\")\n```\n\n### Get with Label\n\n```python\n# Labels allow environment-specific values\nsetting = client.get_configuration_setting(\n    key=\"app:settings:message\",\n    label=\"production\"\n)\n```\n\n### Set Setting\n\n```python\nfrom azure.appconfiguration import ConfigurationSetting\n\nsetting = ConfigurationSetting(\n    key=\"app:settings:message\",\n    value=\"Hello, World!\",\n    label=\"development\",\n    content_type=\"text\u002Fplain\",\n    tags={\"environment\": \"dev\"}\n)\n\nclient.set_configuration_setting(setting)\n```\n\n### Delete Setting\n\n```python\nclient.delete_configuration_setting(\n    key=\"app:settings:message\",\n    label=\"development\"\n)\n```\n\n## List Settings\n\n### All Settings\n\n```python\nsettings = client.list_configuration_settings()\nfor setting in settings:\n    print(f\"{setting.key} [{setting.label}] = {setting.value}\")\n```\n\n### Filter by Key Prefix\n\n```python\nsettings = client.list_configuration_settings(\n    key_filter=\"app:settings:*\"\n)\n```\n\n### Filter by Label\n\n```python\nsettings = client.list_configuration_settings(\n    label_filter=\"production\"\n)\n```\n\n## Feature Flags\n\n### Set Feature Flag\n\n```python\nfrom azure.appconfiguration import ConfigurationSetting\nimport json\n\nfeature_flag = ConfigurationSetting(\n    key=\".appconfig.featureflag\u002Fbeta-feature\",\n    value=json.dumps({\n        \"id\": \"beta-feature\",\n        \"enabled\": True,\n        \"conditions\": {\n            \"client_filters\": []\n        }\n    }),\n    content_type=\"application\u002Fvnd.microsoft.appconfig.ff+json;charset=utf-8\"\n)\n\nclient.set_configuration_setting(feature_flag)\n```\n\n### Get Feature Flag\n\n```python\nsetting = client.get_configuration_setting(\n    key=\".appconfig.featureflag\u002Fbeta-feature\"\n)\nflag_data = json.loads(setting.value)\nprint(f\"Feature enabled: {flag_data['enabled']}\")\n```\n\n### List Feature Flags\n\n```python\nflags = client.list_configuration_settings(\n    key_filter=\".appconfig.featureflag\u002F*\"\n)\nfor flag in flags:\n    data = json.loads(flag.value)\n    print(f\"{data['id']}: {'enabled' if data['enabled'] else 'disabled'}\")\n```\n\n## Read-Only Settings\n\n```python\n# Make setting read-only\nclient.set_read_only(\n    configuration_setting=setting,\n    read_only=True\n)\n\n# Remove read-only\nclient.set_read_only(\n    configuration_setting=setting,\n    read_only=False\n)\n```\n\n## Snapshots\n\n### Create Snapshot\n\n```python\nfrom azure.appconfiguration import ConfigurationSnapshot, ConfigurationSettingFilter\n\nsnapshot = ConfigurationSnapshot(\n    name=\"v1-snapshot\",\n    filters=[\n        ConfigurationSettingFilter(key=\"app:*\", label=\"production\")\n    ]\n)\n\ncreated = client.begin_create_snapshot(\n    name=\"v1-snapshot\",\n    snapshot=snapshot\n).result()\n```\n\n### List Snapshot Settings\n\n```python\nsettings = client.list_configuration_settings(\n    snapshot_name=\"v1-snapshot\"\n)\n```\n\n## Async Client\n\n```python\nfrom azure.appconfiguration.aio import AzureAppConfigurationClient\nfrom azure.identity.aio import DefaultAzureCredential\n\nasync def main():\n    credential = DefaultAzureCredential()\n    client = AzureAppConfigurationClient(\n        base_url=endpoint,\n        credential=credential\n    )\n    \n    setting = await client.get_configuration_setting(key=\"app:message\")\n    print(setting.value)\n    \n    await client.close()\n    await credential.close()\n```\n\n## Client Operations\n\n| Operation | Description |\n|-----------|-------------|\n| `get_configuration_setting` | Get single setting |\n| `set_configuration_setting` | Create or update setting |\n| `delete_configuration_setting` | Delete setting |\n| `list_configuration_settings` | List with filters |\n| `set_read_only` | Lock\u002Funlock setting |\n| `begin_create_snapshot` | Create point-in-time snapshot |\n| `list_snapshots` | List all snapshots |\n\n## Best Practices\n\n1. **Use labels** for environment separation (dev, staging, prod)\n2. **Use key prefixes** for logical grouping (app:database:*, app:cache:*)\n3. **Make production settings read-only** to prevent accidental changes\n4. **Create snapshots** before deployments for rollback capability\n5. **Use Entra ID** instead of connection strings in production\n6. **Refresh settings periodically** in long-running applications\n7. **Use feature flags** for gradual rollouts and A\u002FB testing\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.\n","","imported","https:\u002F\u002Fgithub.com\u002Fsickn33\u002Fantigravity-awesome-skills","user_system_seed","SkillOPIC",true,174,1505,"2026-05-16 13:05:48",{"id":8,"name":21,"slug":22,"icon":23,"description":24,"sort":25,"createdAt":26},"编程开发","coding","mdi-code-braces","代码生成、调试、审查，提升开发效率",2,"2026-05-16 12:53:40",{"id":7,"name":28,"slug":29,"icon":30,"description":31,"moduleId":8,"sort":32,"skillCount":33,"createdAt":26},"DevOps","devops","mdi-cog-outline","CI\u002FCD、容器化、部署运维",3,162,[35],{"id":36,"skillId":4,"version":37,"fileName":38,"fileSize":39,"filePath":40,"fileHash":41,"manifest":42,"createdAt":19},"6b105af7-cb0c-4160-8096-c6c3c952f527","1.0.0","azure-appconfiguration-py.zip",2025,"uploads\u002Fskills\u002F57ff2c62-54d8-4a9c-9740-85a5665ad6cb\u002Fazure-appconfiguration-py.zip","b12d4d8bd5305e150b550e2d06acabd23d17a1e961c178b7358ed5743b0f93c0","[{\"path\":\"SKILL.md\",\"isDirectory\":false,\"size\":5917}]",{"code":44,"message":45,"data":46},200,"success",{"items":47,"stats":48,"page":51},[],{"averageRating":49,"totalRatings":49,"ratingCounts":50},0,[49,49,49,49,49],{"limit":52,"offset":49,"hasMore":53,"nextOffset":52,"ratedOnly":16},15,false]