Azure App Configuration is a managed service that helps developers centralize their application and feature settings simply and securely.
Use the client library for App Configuration to:
Source code | Package (NPM) | API reference documentation | Product documentation | Samples
npm install @azure/app-configuration
You can use the Azure Portal or the Azure CLI to create an Azure App Configuration resource.
Example (Azure CLI):
az appconfig create --name <app-configuration-resource-name> --resource-group <resource-group-name> --location eastus
AppConfigurationClient can authenticate using a service principal or using a connection string.
Authentication via service principal is done by:
@azure/identity
package.Using DefaultAzureCredential
const azureIdentity = require("@azure/identity");
const appConfig = require("@azure/app-configuration");
const credential = new azureIdentity.DefaultAzureCredential();
const client = new appConfig.AppConfigurationClient(
endpoint, // ex: <https://<your appconfig resource>.azconfig.io>
credential
);
More information about @azure/identity
can be found here
To get the Primary connection string for an App Configuration resource you can use this Azure CLI command:
az appconfig credential list -g <resource-group-name> -n <app-configuration-resource-name> --query "([?name=='Primary'].connectionString)[0]"
And in code you can now create your App Configuration client with the connection string you got from the Azure CLI:
const client = new AppConfigurationClient("<connection string>");
The AppConfigurationClient
has some terminology changes from App Configuration in the portal.
ConfigurationSetting
objectsisReadOnly
field, which you can toggle using setReadOnly
.The client follows a simple design methodology - ConfigurationSetting
can be passed into any method that takes a ConfigurationSettingParam
or ConfigurationSettingId
.
This means this pattern works:
const setting = await client.getConfigurationSetting({
key: "hello"
});
setting.value = "new value!";
await client.setConfigurationSetting(setting);
// fields unrelated to just identifying the setting are simply
// ignored (for instance, the `value` field)
await client.setReadOnly(setting, true);
// delete just needs to identify the setting so other fields are
// just ignored
await client.deleteConfigurationSetting(setting);
or, for example, re-getting a setting:
let setting = await client.getConfigurationSetting({
key: "hello"
});
// re-get the setting
setting = await.getConfigurationSetting(setting);
const appConfig = require("@azure/app-configuration");
const client = new appConfig.AppConfigurationClient(
"<App Configuration connection string goes here>"
);
async function run() {
const newSetting = await client.setConfigurationSetting({
key: "testkey",
value: "testvalue",
// Labels allow you to create variants of a key tailored
// for specific use-cases like supporting multiple environments.
// https://docs.microsoft.com/en-us/azure/azure-app-configuration/concept-key-value#label-keys
label: "optional-label"
});
let retrievedSetting = await client.getConfigurationSetting("testkey", {
label: "optional-label"
});
console.log("Retrieved value:", retrievedSetting.value);
}
run().catch((err) => console.log("ERROR:", err));
The following samples show you the various ways you can interact with App Configuration:
helloworld.ts
- Get, set, and delete configuration values.helloworldWithLabels.ts
- Use labels to add additional dimensions to your settings for scenarios like beta vs production.optimisticConcurrencyViaEtag.ts
- Set values using etags to prevent accidental overwrites.setReadOnlySample.ts
- Marking settings as read-only to prevent modification.getSettingOnlyIfChanged.ts
- Get a setting only if it changed from the last time you got it.listRevisions.ts
- List the revisions of a key, allowing you to see previous values and when they were set.More in-depth examples can be found in the samples folder on GitHub.
If you'd like to contribute to this library, please read the contributing guide to learn more about how to build and test the code.
This module's tests are a mixture of live and unit tests, which require you to have an Azure App Configuration instance. To execute the tests you'll need to run:
rush update
rush build -t @azure/app-configuration
sdk\appconfiguration\app-configuration
folder:
AZ_CONFIG_CONNECTION=connection string for your App Configuration instance
cd sdk\appconfiguration\app-configuration
npm run test
.View our tests folder for more details.
Generated using TypeDoc