ITADN
Azure/azure-sdk-for-go
Azure/azure-sdk-for-go · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

Azure SDK for Go

godoc

本仓库用于 Azure SDK for Go 的积极开发。对于 SDK 的使用者,您可以点击以下链接访问您感兴趣的文档

入门指南

要开始使用某个模块,请参阅位于该模块项目文件夹中的 README.md 文件。您可以在 /sdk 目录中找到按服务分组的这些模块文件夹。

[!IMPORTANT] 我们的库与最近两个主要 Go 版本兼容,这与 Go 编程语言遵循的相同策略一致。

[!IMPORTANT] 强烈建议项目使用最新版本的 Go。这可以确保您的产品拥有最新的安全修复,并包含在 Go 的支持生命周期中。

[!WARNING] 包含 /services/**/mgmt/** 子路径(也称为 track 1)的根 azure-sdk-for-go Go 模块弃用且不再提供支持。请参阅迁移指南以了解如何迁移到当前版本。

可用包

每个服务都可以拥有 'client' 和 'management' 模块。'Client' 模块用于消费服务,而 'management' 模块用于配置和管理服务。

Client 模块

我们的客户端模块遵循 Azure Go SDK 指南。这些模块允许您使用、消费和与现有资源进行交互,例如上传 blob。它们还共享许多核心功能,包括重试、日志记录、传输协议、身份验证协议等,这些功能可以在 azcore 模块中找到。

您可以在我们的 最新页面 上找到最新的新模块列表。

[!NOTE] 如果您需要确保代码已准备好用于生产环境,请使用其中一个稳定的、非 beta 版本的模块。

管理模块

与我们的客户端模块类似,管理模块遵循 Azure Go SDK 指南。所有管理模块均可在 sdk/resourcemanager 处获取。这些模块提供了所有 Azure SDK 共享的许多核心功能,包括直观的 Azure Identity 模块、具有自定义策略的 HTTP 管道、错误处理、分布式跟踪等。

要开始使用,请遵循 此处的快速入门指南。要了解迁移的好处以及如何迁移到新模块,请访问 迁移指南

您可以在我们的页面上找到 所有新软件包的最新列表

[!NOTE] 如果需要确保代码可用于生产环境,请使用其中一个稳定的非 beta 模块。此外,如果在升级某些包后,管理模块出现身份验证问题,可能是您在未更改身份验证代码的情况下升级到了 SDK 的新版本。请参阅迁移指南以获取正确的说明。

示例

有关使用 Go SDK 管理模块的更多代码示例,可以在以下位置找到

历史版本

请注意,来自 Microsoft 的最新模块按服务分组在 /sdk 目录中。如果您使用的是前缀为 github.com/Azure/azure-sdk-for-go/servicesgithub.com/Azure/azure-sdk-for-go/storagegithub.com/Azure/azure-sdk-for-go/profiles 的包,请考虑迁移到最新模块。您可以在此处找到从这些历史版本到其等效版本的映射表。

报告安全问题和安全漏洞

安全问题和漏洞应通过电子邮件私下报告给 Microsoft Security Response Center (MSRC) secure@microsoft.com。您应在 24 小时内收到回复。如果由于某种原因未收到,请通过电子邮件跟进,以确保我们已收到您的原始消息。更多信息,包括 MSRC PGP 密钥,可在 Security TechCenter 中找到。

需要帮助?

数据收集

软件可能会收集有关您及您对软件使用情况的信息,并将其发送给 Microsoft。Microsoft 可能会使用此信息来提供服务并改进我们的产品和服务。您可以按照以下说明关闭遥测。您可以在帮助文档和 Microsoft 的 privacy statement 中了解有关数据收集和使用的更多信息。有关 Azure SDK 收集的数据的更多信息,请访问 Telemetry Guidelines 页面。

遥测配置

默认情况下,遥测收集处于开启状态。

若要退出,您可以在客户端和凭据构建时禁用遥测。在 ClientOptions.Telemetry 中将 Disabled 设置为 true。这将禁用客户端中所有方法的遥测。请对创建的每个新客户端和凭据执行此操作。

以下示例使用 azblob 模块。在您的代码中,您可以将 azblob 替换为您正在使用的包。

package main

import (
	"github.com/Azure/azure-sdk-for-go/sdk/azcore/policy"
	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob"
)

func main() {
	// set http client options
	clientOpts := policy.ClientOptions{
		Telemetry: policy.TelemetryOptions{
			Disabled: true,
		},
	}
	// set identity client options
	credOpts := azidentity.ManagedIdentityCredentialOptions{
		ClientOptions: clientOpts,
	}
	// set service client options
	azblobOpts := azblob.ClientOptions{
		ClientOptions: clientOpts,
	}

	// authenticate with Microsoft Entra ID
	cred, err := azidentity.NewManagedIdentityCredential(&credOpts)
	// TODO: handle error

	// create a client for the specified storage account
	client, err := azblob.NewClient(account, cred, &azblobOpts)
	// TODO: handle error
  	// TODO: do something with the client
}

[!NOTE] 请注意,AzureDeveloperCLICredentialAzureCLICredential 不包含 ClientOptions.Telemetry。因此,无需在这些凭据中设置选项。

Community

Contribute

参见 CONTRIBUTING.md

对于 AI 代理和自动化工具,请参阅 AGENTS.md 以获取有关仓库工作流、自动化边界和最佳实践的指导。

本项目已采纳 Microsoft Open Source Code of Conduct。有关更多信息,请参阅 Code of Conduct FAQ 或就任何额外问题或意见联系 opencode@microsoft.com

Trademarks

本项目可能包含项目、产品或服务的商标或徽标。对 Microsoft 商标或徽标的授权使用须遵守并遵循 Microsoft's Trademark & Brand Guidelines。在本项目的修改版本中使用 Microsoft 商标或徽标不得引起混淆或暗示 Microsoft 的赞助。任何第三方商标或徽标的使用均受该第三方政策约束。