Общие сведения о библиотеках управления Azure SDK для Go
Статья
Как описано в статье Что такое Azure SDK для Go?, Azure SDK для Go содержит набор библиотек управления и клиентских библиотек.
У этих библиотек управления есть много одинаковых возможностей, в том числе поддержка идентификации Azure, конвейер HTTP и обработка ошибок.
Полный список библиотек управления можно найти на странице модуля Azure SDK для Go.
В этой статье вы узнаете, как использовать библиотеки управления для взаимодействия с ресурсами Azure.
Установка пакетов Go
В большинстве проектов устанавливается пакеты Go для управления версиями и зависимостей.
Для установки пакета Go воспользуйтесь командой go get.
Например, чтобы установить пакет armcompute, выполните в командной строке следующую команду:
Azure CLI
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:
Чтобы выполнить код в подписке Azure, необходимо пройти проверку подлинности в Azure. Пакет azidentity поддерживает несколько вариантов проверки подлинности в Azure. Например, по сочетанию клиента и секрета, по сертификату или по управляемому удостоверению.
По умолчанию используется вариант DefaultAzureCredential, основанный на переменных среды, которые вы настроили ранее при изучении этой статьи. В коде Go создается azidentity объект следующим образом:
После получения учетных данных из Удостоверения Azure создайте клиент для подключения к целевой службе Azure.
Для примера предположим, что вы хотите подключиться к службе Вычисления Azure. Пакет службы вычислений состоит из одного или нескольких клиентов. В клиенте собраны несколько родственных интерфейсов API, которые предоставляют доступ к функциональным возможностям в указанной подписке. Вы создаете один или несколько клиентов для доступа к необходимым API.
Этот же шаблон используется для подключения к другим службам Azure. Например, установите пакет armnetwork и создайте клиент виртуальной сети для управления ресурсами виртуальной сети.
Использование справочной документации по Azure SDK для Go
Созданные экземпляры клиента используются для выполнения вызовов к API для управления ресурсами Azure. В сценариях управления ресурсами чаще всего применяются операции CRUD (создание, чтение, обновление и удаление).
Чтобы найти операции для конкретного типа, выполните следующие шаги.
Найдите страницу пакета. (Нажатие клавиши <Ctrl+F> автоматически развертывает все узлы на странице поиска.)
Выберите пакет.
Найдите нужный тип на странице пакета.
Изучите описание типа и сведения о его использовании в коде Go.
Можно также вручную создать URL-адрес, добавив имя пакета к базовому адресу github.com/Azure/azure-sdk-for-go/sdk/.
Например, если вы ищете справочную документацию по compute/armcompute, используйте URL-адрес github.com/Azure/azure-sdk-for-go/sdk/compute/armcompute.
В следующем примере показано, как найти справочную документацию по операциям с группами ресурсов Azure.
Перейдите к основной справочной документации по Пакету SDK Azure для Go pkg.go.dev.
Нажмите клавиши <CTRL+F> и введите resourcemanager/resources/armresources. При вводе термина поиска вы увидите близкое совпадение с пакетом ресурсов или armresources .
Выберите подходящий пакет для приложения.
Прочтите разделы Getting Started (Начало работы) или найдите конкретную операцию. Например, поиск термина resourcegroupsclient.create (если вы хотите создать группу ресурсов) приводит к функции CreateOrUpdate.
На этом этапе вы можете прочитать, как выполнить вызов API для создания группы ресурсов Azure.
Длительные операции
Поскольку выполнение некоторых операций может занять длительное время, библиотеки управления содержат функции для поддержки длительных операций через асинхронные вызовы. Имена этих функций начинаются с Begin. Например, BeginCreate и BeginDelete.
Эти функции являются асинхронными, то есть код не блокируется в ожидании завершения их работы. Вместо этого функция немедленно возвращает объект poller. Затем код вызывает синхронную функцию опроса, которая возвращается после завершения исходной асинхронной функции.
Этот шаблон демонстрируется в следующем примере кода.
Go
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.
Присоединитесь к серии встреч для создания масштабируемых решений искусственного интеллекта на основе реальных вариантов использования с другими разработчиками и экспертами.
Хотите изучать язык программирования, но не знаете, с чего начать? Начните отсюда! Узнайте о базовом синтаксисе и направлении мыслей для создания простых программ с помощью Go.
Создавайте комплексные решения в Microsoft Azure для создания Функции Azure, реализации веб-приложений и управления ими, разработке решений, использующих службу хранилища Azure, и т. д.
В этой статье представлен обзор проверки подлинности приложений в службах Azure при использовании пакета SDK Azure для Go в средах сервера и в локальной разработке.