Azure SDK for JavaScript
本仓库用于 Azure SDK for JavaScript(Node.js 和浏览器)。它包含涵盖各类 Azure 服务的库。管理库是用于配置和管理 Azure 资源的包。客户端库是用于消费这些资源并与之交互的包。
入门指南
以下是一些有助于入门的资源:
- 每个包的 readme 文件包含代码示例和包信息。该 readme 文件位于本仓库的
/sdk文件夹下,您所选服务文件夹中对应的包文件夹内。相同的 readme 文件也可以在 npm 上该包的落地页找到。 - 这些包最新版本的 API 参考文档,可在我们的 公开开发者文档 中找到。
- 旧版本的 API 参考文档,可在我们的 版本化开发者文档 中找到。
每个服务可能提供来自以下各类别的多个库:
注意:其中一些包具有 beta 版本。如果您需要确保代码已准备好用于生产环境,请使用其中一个稳定的非 beta 包。
客户端
如果某个 Azure 资源已经存在,您将使用客户端库来消费该资源并与其交互。 这些库中的大多数遵循 Azure SDK Design Guidelines for JavaScript & TypeScript,并共享一些核心功能,例如重试、日志记录、传输协议、身份验证协议等。其他库将在不久的将来更新以遵循这些指南。
要获取所有遵循新指南的客户端库列表,请访问我们的 Azure SDK releases page。
Management
Management 库使您能够通过 Azure Resource Manager i.e. ARM 来配置和管理 Azure 资源。您可以通过其包名称中的 @azure/arm- 来识别这些库。这些库纯粹是基于代表资源管理 API 的 swagger 文件自动生成的。
这些库的较新版本遵循 Azure SDK Design Guidelines for TypeScript。这些新版本提供了一系列在所有 Azure SDK 中共享的核心功能,包括直观的 Azure Identity 库、具有自定义策略的 HTTP Pipeline、错误处理、分布式跟踪等。以下是一些有助于入门的有用资源:
- List of management libraries that follow the new guidelines
- Documentation and code samples.
- Migration guide that shows how to transition from older versions of libraries.
注意:如果在升级某些包后,您在使用管理库时遇到身份验证问题,可能是您在未更改身份验证代码的情况下升级到了 SDK 的新版本,请参阅上述迁移指南以获取正确的说明。
需要帮助?
- 有关详细文档,请访问我们的 Azure SDK for JavaScript 文档
- 通过 GitHub Issues 提交问题
- 查看 之前的问题 或使用
azure-sdk-js标签在 StackOverflow 上提出新问题。 - 阅读我们的 支持文档。
数据收集
软件可能会收集有关您以及您对软件的使用信息,并将其发送到 Microsoft。Microsoft 可能会使用此信息来提供服务并改进我们的产品和服务。您可以按照下文描述关闭遥测。您可以在帮助文档和 Microsoft 的 隐私声明 中了解有关数据收集和使用的更多信息。有关 Azure SDK 收集的数据的更多信息,请访问 遥测指南 页面。
遥测配置
默认情况下,遥测收集处于开启状态。
若要退出,您可以在客户端构造时禁用遥测。创建一个自定义 HTTP 管道策略以移除用户代理字符串,然后在创建客户端时将该策略传入 additionalPolicies 选项。这将禁用客户端中所有方法的遥测。请为每个新客户端执行此操作。
下面的示例使用了 @azure/keyvault-secrets 包。在您的代码中,您可以将 @azure/keyvault-secrets 替换为您正在使用的包。
import { SecretClient } from "@azure/keyvault-secrets";
import { ManagedIdentityCredential } from "@azure/identity";
function removeUserAgentPolicy() {
return {
name: "removeUserAgentPolicy",
sendRequest(request, next) {
request.headers.delete("User-Agent");
return next(request);
},
};
}
/**
* Creates a SecretClient with managed identity authentication and empty user agent
* @param keyvaultUri - The URI of the Azure Key Vault
* @returns configured SecretClient instance
*/
function createSecretClientWithManagedIdentity(
keyvaultUri: string
): SecretClient {
// Create ManagedIdentityCredential for managed identity authentication
const credential = new ManagedIdentityCredential();
// Create secret client with managed identity and empty user agent
const secretClient = new SecretClient(keyvaultUri, credential, {
additionalPolicies: [
{
position: "perCall",
policy: removeUserAgentPolicy(),
},
],
});
return secretClient;
}
// Usage example
const keyvaultUri = "https://your-keyvault-name.vault.azure.net";
const secretClient = createSecretClientWithManagedIdentity(keyvaultUri);
// Now you can use the secret client to perform operations
// For example:
// const secretValue = await secretClient.getSecret("your-secret-name");
社区
请尝试使用我们的社区资源。
报告安全问题和安全漏洞
安全问题和漏洞应通过电子邮件私下报告给 Microsoft Security Response Center (MSRC) secure@microsoft.com。您应在 24 小时内收到回复。如果由于某种原因您未收到回复,请通过电子邮件跟进,以确保我们已收到您的原始消息。更多信息,包括 MSRC PGP 密钥,可在Security TechCenter中找到。
贡献
有关为此仓库做出贡献的详细信息,请参阅贡献指南。
本项目欢迎贡献和建议。大多数贡献需要您同意贡献者许可协议 (CLA),声明您有权并且确实授予我们使用您贡献的权利。有关详细信息,请访问 https://cla.microsoft.com。
当您提交拉取请求时,CLA-bot 将自动确定您是否需要提供 CLA,并相应地标记 PR(例如,标签、评论)。只需按照机器人提供的说明操作即可。您只需在所有使用我们 CLA 的仓库中执行一次此操作。
本项目已采纳Microsoft 开源行为准则。有关更多信息,请参阅行为准则常见问题解答或联系opencode@microsoft.com提出任何额外的问题或意见。