Azure App Configuration SDK for Python Centralized configuration management with feature flags and dynamic settings. Installation pip install azure-appconfiguration Environment Variables AZURE_APPCONFIGURATION_CONNECTION_STRING = Endpoint = https:// < name
.azconfig.io ; Id = .. . ; Secret = .. .
Or for Entra ID:
AZURE_APPCONFIGURATION_ENDPOINT
https:// < name
.azconfig.io Authentication Connection String 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 ( ) ) Configuration Settings Get Setting setting = client . get_configuration_setting ( key = "app:settings:message" ) print ( f" { setting . key } = { setting . value } " ) Get 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 } ] = { setting . value } " ) Filter 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 , 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 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" ) print ( setting . value ) 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 Use labels for environment separation (dev, staging, prod) Use key prefixes for logical grouping (app:database: , app:cache: ) Make production settings read-only to prevent accidental changes Create snapshots before deployments for rollback capability Use Entra ID instead of connection strings in production Refresh settings periodically in long-running applications 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.