Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Azure SDK для Go включает как библиотеки управления, так и клиентские библиотеки плоскости данных. В этой статье содержатся общие сведения о библиотеках, их соответствии с рабочими процессами Azure и дальнейшим переходом к шаблонам Go.
Библиотеки управления
Используйте библиотеки управления для подготовки, настройки и управления ресурсами Azure. Они сосредоточены на управлении ресурсами, а не данными, хранящимися внутри них. Библиотеки управления выполняют операции плоскости управления, которые управляют ресурсами Azure и конфигурацией службы. К типичным задачам относятся:
- Создание или обновление групп ресурсов, виртуальных сетей или виртуальных машин.
- Настройка параметров безопасности, удостоверений, политик доступа и диагностики.
- Перечисление ресурсов Azure, добавление тегов и удаление по подписке.
- Автоматизация развертывания, очистки, соответствия требованиям и операций платформы.
Пакеты библиотек управления имеют такие имена, как armcompute, armnetworkи armkeyvault. Используйте библиотеки управления во время этапов установки, настройки и управления жизненного цикла приложения. Подробные сведения о пакете см. в pkg.go.dev.
Клиентские библиотеки
Используйте клиентские библиотеки, когда приложению Go необходимо работать с данными или поверхностями среды выполнения внутри уже подготовленной службы Azure. Клиентские библиотеки выполняют операции плоскости данных , которые работают с данными, хранящимися в службе или которые передаются через службу. К типичным задачам относятся:
- Отправка и скачивание BLOB-объектов из учетной записи хранения.
- Отправка и получение сообщений с помощью служебная шина или Центров событий.
- Чтение, запись или удаление записей в базе данных.
- Получение секретов из Key Vault.
- Выполнение запросов или операций с подготовленными ресурсами.
Пакеты клиентской библиотеки имеют такие имена, как azblob, azstorage, azsecretsи azservicebusazeventhubs. Используйте клиентские библиотеки после предварительной настройки основополагающей службы Azure с помощью библиотек управления. Подробные сведения о пакете см. в pkg.go.dev.
Использование как управления, так и клиентских библиотек
Одно решение Go может использовать как управление, так и клиентские библиотеки в плоскостях управления и данных. Например, во время установки можно использовать библиотеку управления для создания учетной записи хранения (контрольная плоскость), а затем использовать клиентскую библиотеку в приложении для загрузки и скачивания объектов хранения (плоскость данных). Понимание различий помогает выбрать подходящую библиотеку для каждой задачи в рабочем процессе.
Для шаблонов и примеров, специфичных для Go, для каждой плоскости см. следующие статьи:
- Используйте Azure SDK для контрольных операций плоскости.
- Используйте Azure SDK для операций с плоскостью данных.
Установка пакетов Go
В большинстве проектов устанавливается пакеты Go для управления версиями и зависимостей.
Чтобы установить пакет Go, выполните go get команду.
Например, чтобы установить armcompute пакет, выполните следующую команду:
go get github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute
В большинстве приложений Go установите следующие пакеты для проверки подлинности:
- github.com/Azure/azure-sdk-for-go/sdk/azcore/to
- github.com/Azure/azure-sdk-for-go/sdk/azidentity
Импорт пакетов в код Go
После скачивания пакетов импортируйте их в приложение с помощью инструкции import :
import (
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute"
)
Проверка подлинности в Azure
Приложения Go, использующие библиотеки Azure SDK, должны проходить проверку подлинности с помощью Microsoft Entra ID и библиотеки удостоверений Azure Identity. Аутентификация на основе токенов более безопасна и управляема, чем строки подключения или ключи. Рекомендуемые учетные данные зависят от того, где выполняется приложение: используйте управляемые удостоверения для приложений, размещенных Azure, учетных данных разработчика или субъекта-службы для локальной разработки, а также субъекта-службы для большинства локальных сценариев.
Параметр проверки подлинности по умолчанию — DefaultAzureCredential, который использует переменные среды, заданные ранее в этой статье. В коде Go создайте azidentity объект следующим образом:
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
// handle error
}
Дополнительные сведения о проверке подлинности см. в разделе Azure SDK для проверки подлинности Go.
Создание клиента управления ресурсами
После получения учетных данных из Azure Identity создайте клиент для подключения к целевой службе Azure.
Например, предположим, что вы хотите подключиться к службе вычислений Azure. Пакет Compute состоит из одного или нескольких клиентов. Клиент группирует набор связанных API, предоставляя доступ к его функциям в указанной подписке. Вы создаете один или несколько клиентов для доступа к необходимым API.
Следующий код использует armcompute. Тип NewVirtualMachinesClient для создания клиента для управления виртуальными машинами:
client, err := armcompute.NewVirtualMachinesClient("<subscription ID>", cred, nil)
if err != nil {
// handle error
}
Дополнительные сведения об управлении ресурсами Azure с помощью Go см. в разделе Использование Azure SDK для операций плоскости управления.
Используйте тот же шаблон для подключения к другим службам Azure. Например, установите пакет armnetwork и создайте клиент virtual network для управления ресурсами виртуальной сети.
client, err := armnetwork.NewVirtualNetworksClient("<subscription ID>", cred, nil)
if err != nil {
// handle error
}
Пример кода:
package main
import (
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute"
)
func main() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
// handle error
}
client, err := armcompute.NewVirtualMachinesClient("<subscription ID>", cred, nil)
if err != nil {
// handle error
}
}
Дополнительные сведения об использовании Azure SDK для Go для служб Azure см. в разделе Использование Azure SDK для операций с данными.
Использование репозитория Azure SDK для Go
После создания экземпляра клиента используйте его для вызова API к ресурсам Azure. Для сценариев управления ресурсами большинство вариантов использования — это операции CRUD (создание, чтение, обновление, удаление).
Чтобы найти операции для определенного типа, перейдите к источнику в репозитории Azure SDK для Go GitHub. Источник ПАКЕТА SDK организован в каталоге sdk/ с библиотеками управления в sdk/resourcemanager/ и клиентскими библиотеками в папках для конкретных служб, таких как sdk/storage/ и sdk/security/keyvault/.
Чтобы найти источник для определенного типа, выполните следующие действия.
- Перейдите в репозиторий Azure SDK для Go на GitHub.
- Перейдите к
sdk/resourcemanager/библиотекам управления илиsdk/клиентским библиотекам. - Откройте папку службы, а затем папку пакета. Например:
sdk/resourcemanager/compute/armcompute/. - Найдите исходный файл, содержащий нужный тип. Типы клиентов и их методы обычно находятся в файлах с именем клиента, например
virtualmachines_client.go. - Ознакомьтесь с комментариями к типу и сигнатурами методов для информации об использовании.
Вы также можете создать URL-адрес напрямую. Например, чтобы найти источник операций группы ресурсов, перейдите к https://github.com/Azure/azure-sdk-for-go/tree/main/sdk/resourcemanager/resources/armresources.
В этом примере показано, как найти источник для операций группы ресурсов Azure:
- Перейдите в репозиторий Azure SDK для Go на GitHub.
- Перейдите к
sdk/resourcemanager/resources/armresources/. - Откройте
resource_groups_client.go, чтобы найти типResourceGroupsClientи его методCreateOrUpdate. - Ознакомьтесь с комментариями и параметрами метода, чтобы понять, как вызвать API.
Для созданной справочной документации найдите пакет в pkg.go.dev.
Длительные операции
Для завершения некоторых операций требуется много времени. Для обработки этих операций библиотеки управления предоставляют функции, поддерживающие долговременные операции (LRO) через асинхронные вызовы. Эти имена функций начинаются с Beginтаких, как BeginCreate и BeginDelete.
Так как эти функции являются асинхронными, код не блокируется, пока функция завершает свою задачу. Вместо этого функция немедленно возвращает объект поллер. Затем код вызывает синхронную функцию опроса, которая возвращается после завершения исходной асинхронной функции.
В следующем фрагменте кода показан пример этого шаблона.
ctx := context.Background()
// Call an asynchronous function to create a client. The return value is a poller object.
poller, err := client.BeginCreate(ctx, "resource_identifier", "additional_parameter")
if err != nil {
// handle error...
}
// Call the poller object's PollUntilDone function that will block until the poller object
// has been updated to indicate the task has completed.
resp, err = poller.PollUntilDone(ctx, nil)
if err != nil {
// handle error...
}
// Print the fact that the LRO completed.
fmt.Printf("LRO done")
// Work with the response ("resp") object.
Основные моменты:
- Для функции
PollUntilDoneтребуется интервал опроса, который определяет, как часто нужно пробовать получить статус. Значение интервала по умолчанию — 30 секунд, если передатьnilдля параметра, но его можно настроить в соответствии с вашими потребностями. - Интервал обычно короткий. Ознакомьтесь с документацией по конкретному ресурсу Azure для рекомендуемых интервалов.
- В разделе LRO на странице "Рекомендации по проектированию go Azure SDK есть более сложный пример и общие рекомендации по LRO.
Дополнительные сведения о шаблонах см. в разделе Общие шаблоны использования в Azure SDK для Go.
Дальнейшие шаги
Дополнительные сведения о проверке подлинности, создании клиента, долгосрочных операциях и пошаговых шаблонах служб см. в статьях, связанных с конкретной областью.
- Использовать Azure SDK для операций плоскости управления для рабочих процессов Go, ориентированных на управление.
- Используйте Azure SDK для Go для операций с данными в шаблонах доступа к данным в процессе выполнения, которые часто следуют после подготовки.
Примеры см. в разделе Azure SDK для примеров Go на GitHub.