Skip to main content Skills Marktplatz Entdecken und erkunden Sie KI-Skills, die von der Community erstellt wurden.
Mit Codex oder Claude installieren Kopieren Sie diesen Prompt, fügen Sie ihn in Codex, Claude oder einen anderen Assistant ein und lassen Sie die Skill-Seite prüfen und installieren.
Prompt kopierenPrompt-Details anzeigen Ein direkter Befehl überspringt den Prüf-Prompt. Prüfen Sie die Quelle, bevor Sie ihn ausführen.
npx skills add https://github.com/BEKO2210/Firstbrain --skill azure-appconfiguration-tsDer Befehl bleibt in einer Zeile. Scrollen Sie horizontal, um ihn vor dem Kopieren vollständig zu prüfen.
Sie bevorzugen eine lokale Kopie? Laden Sie die Dateien herunter, die SkillsMP derzeit vorliegen.
ZIP herunterladen Herunterladen... name azure-appconfiguration-ts description Centralized configuration management with feature flags and dynamic refresh. type skill created 2026-02-27T00:00:00.000Z domain cloud-infrastructure category azure risk unknown source community tags ["skill","cloud-infrastructure","azure","appconfiguration"]
Azure App Configuration SDK for TypeScript
Centralized configuration management with feature flags and dynamic refresh.
Installation
npm install @azure/app-configuration @azure/identity
npm install @azure/app-configuration-provider @azure/identity
npm install @microsoft/feature-management
Environment Variables
AZURE_APPCONFIG_ENDPOINT=https://<your-resource>.azconfig.io
AZURE_APPCONFIG_CONNECTION_STRING=Endpoint=https://...;Id=...;Secret=...
Authentication
import { AppConfigurationClient } from "@azure/app-configuration" ;
import { DefaultAzureCredential } from "@azure/identity" ;
const client = new AppConfigurationClient (
process.env .AZURE_APPCONFIG_ENDPOINT !,
new DefaultAzureCredential ()
);
const client2 = new AppConfigurationClient (
process.env .AZURE_APPCONFIG_CONNECTION_STRING !
);
CRUD Operations
Create/Update Settings
await client.addConfigurationSetting ({
key : "app:settings:message" ,
value : "Hello World" ,
label : "production" ,
: ,
: { : },
});
client. ({
: ,
: ,
: ,
});
existing = client. ({ : });
existing. = ;
client. (existing, { : });
contentType
"text/plain"
tags
environment
"prod"
await
setConfigurationSetting
key
"app:settings:message"
value
"Updated value"
label
"production"
const
await
getConfigurationSetting
key
"myKey"
value
"new value"
await
setConfigurationSetting
onlyIfUnchanged
true
Read Settings
const setting = await client.getConfigurationSetting ({
key : "app:settings:message" ,
label : "production" ,
});
console .log (setting.value );
const settings = client.listConfigurationSettings ({
keyFilter : "app:*" ,
labelFilter : "production" ,
});
for await (const setting of settings) {
console .log (`${setting.key} : ${setting.value} ` );
}
Delete Settings await client.deleteConfigurationSetting ({
key : "app:settings:message" ,
label : "production" ,
});
Lock/Unlock (Read-Only)
await client.setReadOnly ({ key : "myKey" , label : "prod" }, true );
await client.setReadOnly ({ key : "myKey" , label : "prod" }, false );
App Configuration Provider
Load Configuration import { load } from "@azure/app-configuration-provider" ;
import { DefaultAzureCredential } from "@azure/identity" ;
const appConfig = await load (
process.env .AZURE_APPCONFIG_ENDPOINT !,
new DefaultAzureCredential (),
{
selectors : [
{ keyFilter : "app:*" , labelFilter : "production" },
],
trimKeyPrefixes : ["app:" ],
}
);
const value = appConfig.get ("settings:message" );
const config = appConfig.constructConfigurationObject ({ separator : ":" });
console .log (config.settings .message );
Dynamic Refresh const appConfig = await load (endpoint, credential, {
selectors : [{ keyFilter : "app:*" }],
refreshOptions : {
enabled : true ,
refreshIntervalInMs : 30_000 ,
},
});
appConfig.refresh ();
const disposer = appConfig.onRefresh (() => {
console .log ("Configuration refreshed!" );
});
app.use ((req, res, next ) => {
appConfig.refresh ();
next ();
});
Key Vault References const appConfig = await load (endpoint, credential, {
selectors : [{ keyFilter : "app:*" }],
keyVaultOptions : {
credential : new DefaultAzureCredential (),
secretRefreshIntervalInMs : 7200_000 ,
},
});
const dbPassword = appConfig.get ("database:password" );
Feature Flags
Create Feature Flag (Low-Level) import {
featureFlagPrefix,
featureFlagContentType,
FeatureFlagValue ,
ConfigurationSetting ,
} from "@azure/app-configuration" ;
const flag : ConfigurationSetting <FeatureFlagValue > = {
key : `${featureFlagPrefix} Beta` ,
contentType : featureFlagContentType,
value : {
id : "Beta" ,
enabled : true ,
description : "Beta feature" ,
conditions : {
clientFilters : [
{
name : "Microsoft.Targeting" ,
parameters : {
Audience : {
Users : ["user@example.com" ],
Groups : [{ Name : "beta-testers" , RolloutPercentage : 50 }],
DefaultRolloutPercentage : 0 ,
},
},
},
],
},
},
};
await client.addConfigurationSetting (flag);
Load and Evaluate Feature Flags import { load } from "@azure/app-configuration-provider" ;
import {
ConfigurationMapFeatureFlagProvider ,
FeatureManager ,
} from "@microsoft/feature-management" ;
const appConfig = await load (endpoint, credential, {
featureFlagOptions : {
enabled : true ,
selectors : [{ keyFilter : "*" }],
refresh : {
enabled : true ,
refreshIntervalInMs : 30_000 ,
},
},
});
const featureProvider = new ConfigurationMapFeatureFlagProvider (appConfig);
const featureManager = new FeatureManager (featureProvider);
const isEnabled = await featureManager.isEnabled ("Beta" );
const isEnabledForUser = await featureManager.isEnabled ("Beta" , {
userId : "user@example.com" ,
groups : ["beta-testers" ],
});
Snapshots
const snapshot = await client.beginCreateSnapshotAndWait ({
name : "release-v1.0" ,
retentionPeriod : 2592000 ,
filters : [{ keyFilter : "app:*" , labelFilter : "production" }],
});
const snap = await client.getSnapshot ("release-v1.0" );
const settings = client.listConfigurationSettingsForSnapshot ("release-v1.0" );
for await (const setting of settings) {
console .log (`${setting.key} : ${setting.value} ` );
}
await client.archiveSnapshot ("release-v1.0" );
await client.recoverSnapshot ("release-v1.0" );
const config = await load (endpoint, credential, {
selectors : [{ snapshotName : "release-v1.0" }],
});
Labels
await client.setConfigurationSetting ({
key : "database:host" ,
value : "dev-db.example.com" ,
label : "development" ,
});
await client.setConfigurationSetting ({
key : "database:host" ,
value : "prod-db.example.com" ,
label : "production" ,
});
const prodSettings = client.listConfigurationSettings ({
keyFilter : "*" ,
labelFilter : "production" ,
});
const noLabelSettings = client.listConfigurationSettings ({
labelFilter : "\0" ,
});
for await (const label of client.listLabels ()) {
console .log (label.name );
}
Key Types import {
AppConfigurationClient ,
ConfigurationSetting ,
FeatureFlagValue ,
SecretReferenceValue ,
featureFlagPrefix,
featureFlagContentType,
secretReferenceContentType,
ListConfigurationSettingsOptions ,
} from "@azure/app-configuration" ;
import { load } from "@azure/app-configuration-provider" ;
import {
FeatureManager ,
ConfigurationMapFeatureFlagProvider ,
} from "@microsoft/feature-management" ;
Best Practices
Use provider for apps - @azure/app-configuration-provider for runtime config
Use low-level for management - @azure/app-configuration for CRUD operations
Enable refresh - For dynamic configuration updates
Use labels - Separate configurations by environment
Use snapshots - For immutable release configurations
Sentinel pattern - Use a sentinel key to trigger full refresh
RBAC roles - App Configuration Data Reader for read-only access
When to Use This skill is applicable to execute the workflow or actions described in the overview.
Connections
Domain: [[Cloud & Infrastruktur]]
Kategorie: [[Microsoft Azure]]
Navigation: [[Skills Uebersicht]], [[Home]]
Mehr aus diesem Repository
Verwandte Berufe SOC
Basierend auf der SOC-Berufsklassifikation