Skip to main content Skills Marketplace Découvrez et explorez les compétences IA créées par la communauté.
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Copier le promptAfficher les détails du prompt Une commande directe contourne le prompt de vérification. Examinez la source avant de l'exécuter.
npx skills add https://github.com/BEKO2210/Firstbrain --skill azure-appconfiguration-tsLa commande reste sur une seule ligne. Faites défiler horizontalement pour la vérifier avant de la copier.
Vous préférez une copie locale ? Téléchargez les fichiers actuellement disponibles dans SkillsMP.
Télécharger Zip Téléchargement... 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]]
Métiers associés SOC
Basé sur la classification professionnelle SOC