К основному содержанию
скилл

azure-appconfiguration-py — скилл для Claude Code: конфиги Azure

Скилл учит агента работать с Azure App Configuration из Python: читать и записывать настройки, включать фича-флаги, снимать снапшоты.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add microsoft/skills --skill azure-appconfiguration-py -a claude-code
Открыть на GitHub

Что делает azure-appconfiguration-py

Скилл описывает Python SDK azure-appconfiguration: как получить одну настройку по ключу, как задать её с меткой окружения, как удалить и как вывести список с фильтром по префиксу ключа или по метке. Отдельный блок — фича-флаги: их хранят под ключом .appconfig.featureflag/<имя>, значение — JSON с полем enabled и списком условий. Есть и снапшоты: begin_create_snapshot фиксирует состояние набора настроек на момент времени.

Аутентификация строится на DefaultAzureCredential из azure.identity. Локально он подхватывает Azure CLI или VS Code, в Azure работает через managed identity, и код менять не нужно. Для продакшена скилл советует выставить AZURE_TOKEN_CREDENTIALS=prod, чтобы цепочка учётных данных не тянула лишние источники. Строки подключения и ключи доступа он обходит стороной: они минуют аудит и ротацию в Entra. Переменная AZURE_APPCONFIGURATION_ENDPOINT обязательна.

Клиент оборачивают в контекстный менеджер — with для синхронного, async with для асинхронного, причём для асинхронного DefaultAzureCredential из azure.identity.aio нужен свой async with. Смешивать синхронные и асинхронные клиенты в одном пути вызова нельзя. Ставить нужно пакет azure-appconfiguration через pip.

Какие задачи решает

  • прочитать настройку по ключу и метке окружения
  • включить или выключить фича-флаг без передеплоя
  • зафиксировать состояние конфигурации снапшотом
  • заблокировать настройку от случайной правки
  • выгрузить все ключи с нужным префиксом

Примеры запросов агенту

  • покажи, как получить настройку app:settings:message с меткой production
  • создай фича-флаг beta-feature и включи его
  • сделай снапшот v1-snapshot по ключам app:* с меткой production

Как установить azure-appconfiguration-py

1Через Skills CLI (Vercel)

npx skills add microsoft/skills --skill azure-appconfiguration-py -a claude-code

2Вручную: положить файлы

~/.claude/skills/azure-appconfiguration-py/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/azure-appconfiguration-py/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о azure-appconfiguration-py

Как установить azure-appconfiguration-py в Claude?

Выполните npx skills add microsoft/skills --skill azure-appconfiguration-py -a claude-code. Скилл окажется в ~/.claude/skills/azure-appconfiguration-py/SKILL.md.

Что делает azure-appconfiguration-py?

Даёт агенту рабочие примеры Python SDK для Azure App Configuration: чтение и запись настроек, метки окружений, фича-флаги, снапшоты, синхронный и асинхронный клиенты.

Что нужно для работы скилла?

Пакет azure-appconfiguration и переменная AZURE_APPCONFIGURATION_ENDPOINT с адресом хранилища. Для продакшена скилл советует задать AZURE_TOKEN_CREDENTIALS=prod.

Исходный текст

SKILL.md · MIT
---
name: azure-appconfiguration-py
description: |
  Azure App Configuration SDK for Python. Use for centralized configuration management, feature flags, and dynamic settings.
  Triggers: "azure-appconfiguration", "AzureAppConfigurationClient", "feature flags", "configuration", "key-value settings".
license: MIT
metadata:
  author: Microsoft
  version: "1.0.0"
  package: azure-appconfiguration
---

# Azure App Configuration SDK for Python

Centralized configuration management with feature flags and dynamic settings.

## Installation

```bash
pip install azure-appconfiguration
```

## Environment Variables

```bash
AZURE_APPCONFIGURATION_ENDPOINT=https://<name>.azconfig.io  # Required for Entra ID auth
AZURE_TOKEN_CREDENTIALS=prod # Required only if DefaultAzureCredential is used in production
```

## Authentication & Lifecycle

> **🔑 Two rules apply to every code sample below:**
>
> 1. **Prefer `DefaultAzureCredential`.** It works locally (Azure CLI / VS Code / Developer CLI) and in Azure (managed identity, workload identity) with no code change. Avoid connection strings, account/API keys — they bypass Entra audit and rotation.
>    - Local dev: `DefaultAzureCredential` works as-is.
>    - Production: set `AZURE_TOKEN_CREDENTIALS=prod` (or `AZURE_TOKEN_CREDENTIALS=<specific_credential>`) to constrain the credential chain to production-safe credentials.
> 2. **Wrap every client in a context manager** so HTTP transports, sockets, and token caches are released deterministically:
>    - Sync: `with <Client>(...) as client:`
>    - Async: `async with <Client>(...) as client:` **and** `async with DefaultAzureCredential() as credential:` (from `azure.identity.aio`)
>
> Snippets may abbreviate this setup, but production code should always follow both rules.

```python
import os
from azure.appconfiguration import AzureAppConfigurationClient
from azure.identity import DefaultAzureCredential, ManagedIdentityCredential

# Local dev: DefaultAzureCredential. Production: set AZURE_TOKEN_CREDENTIALS=prod or AZURE_TOKEN_CREDENTIALS=<specific_credential>
credential = DefaultAzureCredential(require_envvar=True)
# Or use a specific credential directly in production:
# See https://learn.microsoft.com/python/api/overview/azure/identity-readme?view=azure-python#credential-classes
# credential = ManagedIdentityCredential()

with AzureAppConfigurationClient(
    base_url=os.environ["AZURE_APPCONFIGURATION_ENDPOINT"],
    credential=credential
) as client:
    # Use client here (see following sections for operations)
    ...
```

## Configuration Settings

### Get Setting

```python
setting = client.get_configuration_setting(key="app:settings:message")
print(f"{setting.key} = {setting.value}")
```

### Get with Label

```python
# Labels allow environment-specific values
setting = client.get_configuration_setting(
    key="app:settings:message",
    label="production"
)
```

### Set Setting

```python
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

```python
client.delete_configuration_setting(
    key="app:settings:message",
    label="development"
)
```

## List Settings

### All Settings

```python
settings = client.list_configuration_settings()
for setting in settings:
    print(f"{setting.key} [{setting.label}] = {setting.value}")
```

### Filter by Key Prefix

```python
settings = client.list_configuration_settings(
    key_filter="app:settings:*"
)
```

### Filter by Label

```python
settings = client.list_configuration_settings(
    label_filter="production"
)
```

## Feature Flags

### Set Feature Flag

```python
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

```python
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

```python
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

```python
# 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

```python
from azure.appconfiguration import ConfigurationSnapshot, ConfigurationSettingFilter

snapshot = ConfigurationSnapshot(
    name="v1-snapshot",
    filters=[
        ConfigurationSettingFilter(key="app:*", label="production")
    ]
)

created = client.begin_create_snapshot(
    name="v1-snapshot",
    snapshot=snapshot
).result()
```

### List Snapshot Settings

```python
settings = client.list_configuration_settings(
    snapshot_name="v1-snapshot"
)
```

## Async Client

```python
from azure.appconfiguration.aio import AzureAppConfigurationClient
from azure.identity.aio import DefaultAzureCredential

async def main():
    async with DefaultAzureCredential() as credential:
        async with AzureAppConfigurationClient(
            base_url=endpoint,
            credential=credential
        ) as client:
            setting = await client.get_configuration_setting(key="app:message")
            print(setting.value)
```

## 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. **Pick sync OR async and stay consistent.** Do not mix `azure.xxx` sync clients with `azure.xxx.aio` async clients in the same call path. Choose one mode per module.
2. **Always use context managers for clients and async credentials.** Wrap every client in `with Client(...) as client:` (sync) or `async with Client(...) as client:` (async). For async `DefaultAzureCredential` from `azure.identity.aio`, also use `async with credential:` so tokens and transports are cleaned up.
3. **Use labels** for environment separation (dev, staging, prod)
4. **Use key prefixes** for logical grouping (app:database:*, app:cache:*)
5. **Make production settings read-only** to prevent accidental changes
6. **Create snapshots** before deployments for rollback capability
7. **Use Entra ID** instead of connection strings in production
8. **Refresh settings periodically** in long-running applications
9. **Use feature flags** for gradual rollouts and A/B testing

## Reference Files

| File | Contents |
|------|----------|
| [references/capabilities.md](references/capabilities.md) | Additional non-hero capabilities, operation-group coverage, and production checklists. |
| [references/non-hero-scenarios.md](references/non-hero-scenarios.md) | Dedicated non-hero examples for secondary/advanced scenarios. |

© Microsoft · MIT · microsoft/skills

Похожие скиллы

Всё по теме «Облака: AWS, Azure, GCP» →
python-azure-iot-edge-modules официальный github Скилл помогает проектировать и развертывать модули Azure IoT Edge на Python. Пригодится для фильтрации телеметрии, адаптеров протоколов и локального инференса. 47установок azure-functions MicrosoftDocs Скилл с экспертной базой по Azure Functions: диагностика ошибок, лимиты, безопасность, привязки и деплой. Пригодится, когда агент пишет или чинит функции в Azure. CX Codex +1 378установок dataverse-python-best-practices официальный github Правило для GitHub Copilot с рабочими шаблонами работы с Dataverse SDK для Python: авторизация, клиент, CRUD-операции. ★ 40 418звёзд репо azure-verified-modules hashicorp Скилл с обязательными требованиями Azure Verified Modules: проверяет и помогает писать Terraform-модули, которые проходят сертификацию AVM. CX Codex +1 3 300установок dt-obs-azure Dynatrace Скилл учит агента анализировать ресурсы Azure через Dynatrace Smartscape и DQL. Пригодится при аудите сетевой топологии, проверке настроек безопасности и анализе инфраструктуры. CX Codex +1 2 000установок azure-sql-database MicrosoftDocs Помогает проектировать, настраивать и чинить базы Azure SQL Database. Подсказывает лимиты, выбор тарифов vCore или DTU и выгружает свежую документацию Microsoft Learn. CX Codex +1 1 300установок

Из того же набора64

Весь набор →
azure-prepare Готовит проект к деплою через Azure Developer CLI: пишет azure.yaml, инфраструктуру на Bicep или Terraform и Dockerfile. Нужен, когда вы уже выбрали azd. 2установок azure-search-documents-py Подсказывает агенту, как писать код для Azure AI Search на Python: векторный и гибридный поиск, семантический ранжинг, индексы. 2установок azure-eventhub-py Скилл для работы с Azure Event Hubs из Python: отправка событий, чтение партиций, чекпоинты в blob-хранилище. Пригодится, когда агент пишет продюсеров и консьюмеров. 2установок azure-cosmos-py Подсказывает агенту, как работать с Azure Cosmos DB через Python SDK: CRUD документов, запросы, контейнеры, ключи разделов. 2установок azure-ai-textanalytics-py Скилл для работы с Azure AI Language из Python: тональность, сущности, ключевые фразы, определение языка, поиск персональных данных и медицинский NLP. 2установок azure-upgrade Проводит оценку и автоматизирует переход Azure-нагрузок между планами, тарифами и SKU, а также обновляет устаревшие Azure SDK в коде. 1установок azure-compute Разбирает запросы про виртуальные машины Azure и VMSS: подбор размера, цены, создание, резервирование ёмкости. Пригодится, когда агент должен не гадать, а идти по нужному сценарию. 1установок azure-storage-file-share-ts Скилл подсказывает агенту, как работать с Azure File Share через SDK @azure/storage-file-share: шары, каталоги, загрузка и скачивание файлов. 1установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой