Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Как описано в статье "Что такое пакет SDK Azure для Go?", пакет SDK Azure для Go содержит набор библиотек управления и клиентских библиотек. Библиотеки управления используют такие функции, как поддержка удостоверений Azure, конвейер HTTP и обработка ошибок. Полный список библиотек управления см. в модуле Azure SDK для Go.
Из этой статьи вы узнаете, как использовать библиотеки управления для взаимодействия с ресурсами Azure.
Установка пакетов 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
Чтобы запустить код в подписке Azure, необходимо выполнить проверку подлинности в Azure. Пакет azidentity поддерживает несколько вариантов проверки подлинности в Azure. Эти варианты включают клиент/секрет, сертификат и управляемое удостоверение.
Параметр проверки подлинности по умолчанию — DefaultAzureCredential, который использует переменные среды, заданные ранее в этой статье. В вашем коде на Go вы создаете объект azidentity следующим образом:
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
// handle error
}
Создание клиента управления ресурсами
После получения учетных данных из удостоверений Azure создайте клиент для подключения к целевой службе Azure.
Например, предположим, что вы хотите подключиться к службе вычислений Azure . Пакет вычислений состоит из одного или нескольких клиентов. Клиент группирует набор связанных API, предоставляя доступ к его функциям в указанной подписке. Вы создаете один или несколько клиентов для доступа к необходимым API.
В следующем коде используется armcompute. Тип NewVirtualMachinesClient для создания клиента для управления виртуальными машинами:
client, err := armcompute.NewVirtualMachinesClient("<subscription ID>", cred, nil)
if err != nil {
// handle error
}
Этот же шаблон используется для подключения к другим службам Azure. Например, установите пакет armnetwork и создайте клиент виртуальной сети для управления ресурсами виртуальной сети.
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
}
}
Использование справочной документации по пакету SDK Azure для Go
После создания экземпляра клиента используйте его для вызова API к ресурсам Azure. Для сценариев управления ресурсами большинство вариантов использования — это операции CRUD (создание, чтение, обновление, удаление).
Чтобы найти операции для определенного типа, выполните следующие действия.
- Перейдите в справочную документацию по пакету SDK Azure для Go.
- Найдите пакет. (Нажатие <клавиш CTRL+F> автоматически разворачивает все узлы на странице поиска.)
- Выберите пакет.
- Найдите тип на странице пакета.
- Ознакомьтесь с описанием типа и сведениями об использовании кода Go.
Вы также можете вручную создать URL-адрес, добавив имя пакета в github.com/Azure/azure-sdk-for-go/sdk/.
Например, если требуется compute/armcompute справочная документация, URL-адрес — это github.com/Azure/azure-sdk-for-go/sdk/compute/armcomputeURL-адрес.
В этом примере показано, как найти справочную документацию для операций группы ресурсов Azure:
- Перейдите в основную справочную документацию по Azure SDK для Go pkg.go.dev.
- Нажмите <CTRL+F> и введите
resourcemanager/resources/armresources. При вводе термина поиска вы увидите близкое совпадение с пакетом resources/armresources. - Выберите соответствующий пакет для приложения.
- Прочитайте раздел "Начало работы" или выполните поиск определенной операции. Например, поиск "resourcegroupsclient.create" (создание группы ресурсов) приводит к функции CreateOrUpdate.
- Узнайте, как выполнить вызов API для создания группы ресурсов Azure.
Длительные операции
Некоторые операции могут занять много времени, поэтому библиотеки управления имеют функции, поддерживающие длительные операции (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требуется интервал опроса, который определяет, как часто нужно пробовать получить статус. - Интервал обычно короткий. Ознакомьтесь с документацией по конкретному ресурсу Azure для рекомендуемых интервалов.
- В разделе LRO на странице "Рекомендации по проектированию пакета SDK для Go Azure " приведен расширенный пример и общие рекомендации по LRO.