你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
使用 Azure SDK for JavaScript 创建 Node.js 应用
本文档以示例方式演示了如何使用 Azure SDK for JavaScript 访问 Azure 应用程序配置中的键值。
提示
应用配置将提供基于 JavaScript SDK 构建的 JavaScript 提供程序库,旨在通过更丰富的功能来方便用户使用。 它使配置设置能够像地图对象一样使用,并提供其他功能,例如从多个标签进行配置组合、键名剪裁和自动解析密钥保管库引用。 请转到 JavaScript 快速入门,了解详细信息。
先决条件
- 具有活动订阅的 Azure 帐户 - 免费创建一个
- 应用程序配置存储区。 创建存储区。
- LTS 版本的 Node.js。 有关直接在 Windows 上或使用适用于 Linux 的 Windows 子系统 (WSL) 安装 Node.js 的信息,请参阅 Node.js 入门
创建键值
将以下键值添加到应用程序配置存储区,并让“标签”和“内容类型”保留默认值。 有关如何使用 Azure 门户或 CLI 将键值添加到存储区的详细信息,请转到创建键值。
密钥 | 值 |
---|---|
TestApp:Settings:Message | Azure 应用配置的数据 |
设置 Node.js 应用
在本教程中,你将为名为“app-configuration-example”的项目创建一个新目录。
mkdir app-configuration-example
切换到新创建的 app-configuration-example 目录。
cd app-configuration-example
使用
npm install
命令安装 Azure 应用程序配置客户端库。npm install @azure/app-configuration
在 app-configuration-example 目录中,创建一个名为“app-configuration-example.js”的新文件,并添加以下代码:
const { AppConfigurationClient } = require("@azure/app-configuration"); async function run() { console.log("Azure App Configuration - JavaScript example"); // Example code goes here } run().catch(console.error);
注意
本示例中的代码片段将帮助你开始使用适用于 JavaScript 的应用程序配置客户端库。 对于应用程序,你还应考虑根据需要处理异常。 若要详细了解异常处理,请参阅 JavaScript SDK 文档。
配置应用程序配置连接字符串
设置名为 AZURE_APPCONFIG_CONNECTION_STRING 的环境变量,并将其设置为应用程序配置存储的连接字符串。 在命令行中运行以下命令:
要使用 Windows 命令提示符在本地运行应用,请运行以下命令并将
<app-configuration-store-connection-string>
替换为你的应用程序配置存储的连接字符串:setx AZURE_APPCONFIG_CONNECTION_STRING "<app-configuration-store-connection-string>"
使用以下命令输出环境变量的值,以验证其设置是否正确。
使用 Windows 命令提示符时,重启命令提示符使更改生效,然后运行以下命令:
echo %AZURE_APPCONFIG_CONNECTION_STRING%
代码示例
本部分中的示例代码片段将演示如何通过适用于 JavaScript 的应用程序配置客户端库执行常见操作。 将这些代码片段添加到之前创建的 app-configuration-example.js 文件中 run
函数的正文。
注意
应用程序配置客户端库将键-值对象称为 ConfigurationSetting
。 因此在本文中,应用程序配置存储区中的“键-值”将被称为为“配置设置” 。
参阅以下文章了解相关操作:
连接到应用程序配置存储区
以下代码片段使用环境变量中存储的连接字符串创建 AppConfigurationClient 实例。
const connection_string = process.env.AZURE_APPCONFIG_CONNECTION_STRING;
const client = new AppConfigurationClient(connection_string);
获取配置设置
以下代码片段按 key
名称检索配置设置。
const retrievedConfigSetting = await client.getConfigurationSetting({
key: "TestApp:Settings:Message"
});
console.log("\nRetrieved configuration setting:");
console.log(`Key: ${retrievedConfigSetting.key}, Value: ${retrievedConfigSetting.value}`);
添加配置设置
以下代码片段使用 key
和 value
字段创建 ConfigurationSetting
对象,并调用 addConfigurationSetting
方法。
如果尝试添加存储区中已存在的配置设置,此方法将引发异常。 如果要避免此异常,可以改为使用 setConfigurationSetting 方法。
const configSetting = {
key:"TestApp:Settings:NewSetting",
value:"New setting value"
};
const addedConfigSetting = await client.addConfigurationSetting(configSetting);
console.log("\nAdded configuration setting:");
console.log(`Key: ${addedConfigSetting.key}, Value: ${addedConfigSetting.value}`);
获取配置设置列表
以下代码片段将检索配置设置列表。 可提供 keyFilter
和 labelFilter
参数,分别基于 key
和 label
筛选键-值。 有关筛选的详细信息,请参阅如何查询配置设置。
const filteredSettingsList = client.listConfigurationSettings({
keyFilter: "TestApp*"
});
console.log("\nRetrieved list of configuration settings:");
for await (const filteredSetting of filteredSettingsList) {
console.log(`Key: ${filteredSetting.key}, Value: ${filteredSetting.value}`);
}
锁定配置设置
应用程序配置中键-值的锁定状态由 ConfigurationSetting
对象的 readOnly
属性表示。 如果 readOnly
为 true
,则该设置为锁定状态。 可以使用 true
作为第二个参数来调用 setReadOnly
方法以锁定配置设置。
const lockedConfigSetting = await client.setReadOnly(addedConfigSetting, true /** readOnly */);
console.log(`\nRead-only status for ${lockedConfigSetting.key}: ${lockedConfigSetting.isReadOnly}`);
解锁配置设置
如果 ConfigurationSetting
的 readOnly
属性为 false
,则该设置已解锁。 可以使用 false
作为第二个参数来调用 setReadOnly
方法以解锁配置设置。
const unlockedConfigSetting = await client.setReadOnly(lockedConfigSetting, false /** readOnly */);
console.log(`\nRead-only status for ${unlockedConfigSetting.key}: ${unlockedConfigSetting.isReadOnly}`);
更新配置设置
setConfigurationSetting
方法可用于更新现有设置或创建新的设置。 以下代码片段可更改现有配置设置的值。
addedConfigSetting.value = "Value has been updated!";
const updatedConfigSetting = await client.setConfigurationSetting(addedConfigSetting);
console.log("\nUpdated configuration setting:");
console.log(`Key: ${updatedConfigSetting.key}, Value: ${updatedConfigSetting.value}`);
删除配置设置
以下代码片段按 key
名称删除配置设置。
const deletedConfigSetting = await client.deleteConfigurationSetting({
key: "TestApp:Settings:NewSetting"
});
console.log("\nDeleted configuration setting:");
console.log(`Key: ${deletedConfigSetting.key}, Value: ${deletedConfigSetting.value}`);
运行应用
在本示例中,你创建了一个 Node.js 应用,该应用使用 Azure 应用程序配置客户端库来检索通过 Azure 门户创建的配置设置、添加新设置、检索现有设置的列表、锁定和解锁设置、更新设置以及最终删除设置。
此时,app-configuration-example.js 文件应该有以下代码:
const { AppConfigurationClient } = require("@azure/app-configuration");
async function run() {
console.log("Azure App Configuration - JavaScript example");
const connection_string = process.env.AZURE_APPCONFIG_CONNECTION_STRING;
const client = new AppConfigurationClient(connection_string);
const retrievedConfigSetting = await client.getConfigurationSetting({
key: "TestApp:Settings:Message"
});
console.log("\nRetrieved configuration setting:");
console.log(`Key: ${retrievedConfigSetting.key}, Value: ${retrievedConfigSetting.value}`);
const configSetting = {
key: "TestApp:Settings:NewSetting",
value: "New setting value"
};
const addedConfigSetting = await client.addConfigurationSetting(configSetting);
console.log("Added configuration setting:");
console.log(`Key: ${addedConfigSetting.key}, Value: ${addedConfigSetting.value}`);
const filteredSettingsList = client.listConfigurationSettings({
keyFilter: "TestApp*"
});
console.log("Retrieved list of configuration settings:");
for await (const filteredSetting of filteredSettingsList) {
console.log(`Key: ${filteredSetting.key}, Value: ${filteredSetting.value}`);
}
const lockedConfigSetting = await client.setReadOnly(addedConfigSetting, true /** readOnly */);
console.log(`Read-only status for ${lockedConfigSetting.key}: ${lockedConfigSetting.isReadOnly}`);
const unlockedConfigSetting = await client.setReadOnly(lockedConfigSetting, false /** readOnly */);
console.log(`Read-only status for ${unlockedConfigSetting.key}: ${unlockedConfigSetting.isReadOnly}`);
addedConfigSetting.value = "Value has been updated!";
const updatedConfigSetting = await client.setConfigurationSetting(addedConfigSetting);
console.log("Updated configuration setting:");
console.log(`Key: ${updatedConfigSetting.key}, Value: ${updatedConfigSetting.value}`);
const deletedConfigSetting = await client.deleteConfigurationSetting({
key: "TestApp:Settings:NewSetting"
});
console.log("Deleted configuration setting:");
console.log(`Key: ${deletedConfigSetting.key}, Value: ${deletedConfigSetting.value}`);
}
run().catch(console.error);
在控制台窗口中,导航到包含 app-configuration-example.js 文件的目录,然后执行以下命令来运行应用:
node app.js
应该会看到以下输出:
Azure App Configuration - JavaScript example
Retrieved configuration setting:
Key: TestApp:Settings:Message, Value: Data from Azure App Configuration
Added configuration setting:
Key: TestApp:Settings:NewSetting, Value: New setting value
Retrieved list of configuration settings:
Key: TestApp:Settings:Message, Value: Data from Azure App Configuration
Key: TestApp:Settings:NewSetting, Value: New setting value
Read-only status for TestApp:Settings:NewSetting: true
Read-only status for TestApp:Settings:NewSetting: false
Updated configuration setting:
Key: TestApp:Settings:NewSetting, Value: Value has been updated!
Deleted configuration setting:
Key: TestApp:Settings:NewSetting, Value: Value has been updated!
清理资源
如果不想继续使用本文中创建的资源,请删除此处创建的资源组以避免产生费用。
重要
删除资源组的操作不可逆。 将永久删除资源组以及其中的所有资源。 请确保不要意外删除错误的资源组或资源。 如果在包含要保留的其他资源的资源组中创建了本文的资源,请从相应的窗格中单独删除每个资源,而不是删除该资源组。
- 登录到 Azure 门户,然后选择“资源组”。
- 在“按名称筛选”框中,输入资源组的名称。
- 在结果列表中,选择资源组名称以查看概述。
- 选择“删除资源组”。
- 系统会要求确认是否删除资源组。 重新键入资源组的名称进行确认,然后选择“删除” 。
片刻之后,将会删除该资源组及其所有资源。
后续步骤
本指南演示了如何使用 Azure SDK for JavaScript 来访问 Azure 应用程序配置中的键值。
有关其他代码示例,请访问:
若要了解如何将 Azure 应用配置与 JavaScript 应用配合使用,请转到: