Клиентская библиотека службы Azure DevCenter Service для Python — версия 1.0.0b3
Пакет Azure DevCenter предоставляет доступ для управления ресурсами для Microsoft Dev Box и сред развертывания Azure. Этот пакет SDK позволяет управлять компьютерами и средами разработчиков в Azure.
Используйте пакет для Azure DevCenter, чтобы:
Создание, доступ, администрирование и удаление ресурсов Dev Box Создание, развертывание, администрирование и удаление ресурсов среды
Начало работы
Установка пакета
python -m pip install azure-developer-devcenter
Предварительные требования
- Для использования этого пакета требуется Python 3.7 или более поздней версии.
- Для использования этого пакета требуется подписка Azure .
- Перед созданием полей разработки необходимо настроить центр разработки, проект, сетевое подключение, определение поля разработки и пул.
- Для создания сред необходимо настроить тип центра разработки, проекта, каталога и среды.
Создание с учетными данными Azure Active Directory
Чтобы использовать учетные данные маркера Azure Active Directory (AAD), укажите экземпляр нужного типа учетных данных, полученных из библиотеки azure-identity .
Для проверки подлинности с помощью AAD необходимо сначала установить pip . azure-identity
После настройки можно выбрать тип учетных данных из azure.identity для использования. Например, для проверки подлинности клиента можно использовать DefaultAzureCredential :
Задайте значения идентификатора клиента, идентификатора клиента и секрета клиента приложения AAD в качестве переменных среды: AZURE_CLIENT_ID
, AZURE_TENANT_ID
, AZURE_CLIENT_SECRET
Используйте возвращенные учетные данные маркера для проверки подлинности клиента:
>>> import os
>>> from azure.developer.devcenter import DevCenterClient
>>> from azure.identity import DefaultAzureCredential
>>> tenant_id = os.environ['AZURE_TENANT_ID']
>>> endpoint = os.environ["DEVCENTER_ENDPOINT"]
>>> client = DevCenterClient(endpoint, credential=DefaultAzureCredential())
Примеры
Dev Box Management
>>> import os
>>> from azure.developer.devcenter import DevCenterClient
>>> from azure.identity import DefaultAzureCredential
>>> from azure.core.exceptions import HttpResponseError
>>> tenant_id = os.environ['AZURE_TENANT_ID']
>>> endpoint = os.environ["DEVCENTER_ENDPOINT"]
>>> client = DevCenterClient(endpoint, credential=DefaultAzureCredential())
>>> try:
# Fetch control plane resource dependencies
projects = list(client.list_projects(top=1))
target_project_name = projects[0]['name']
pools = list(client.list_pools(target_project_name, top=1))
target_pool_name = pools[0]['name']
# Stand up a new dev box
create_response = client.begin_create_dev_box(target_project_name, "me","Test_DevBox", {"poolName": target_pool_name})
devbox_result = create_response.result()
LOG.info(f"Provisioned dev box with status {devbox_result['provisioningState']}.")
# Connect to the provisioned dev box
remote_connection_response = client.get_remote_connection(target_project_name, "me", "Test_DevBox")
LOG.info(f"Connect to the dev box using web URL {remote_connection_response['webUrl']}")
# Tear down the dev box when finished
delete_response = client.begin_delete_dev_box(target_project_name, "me", "Test_DevBox")
delete_response.wait()
LOG.info("Deleted dev box successfully.")
except HttpResponseError as e:
print('service responds error: {}'.format(e.response.json()))
Управление средой
>>> import os
>>> from azure.developer.devcenter import DevCenterClient
>>> from azure.identity import DefaultAzureCredential
>>> from azure.core.exceptions import HttpResponseError
>>> tenant_id = os.environ['AZURE_TENANT_ID']
>>> endpoint = os.environ["DEVCENTER_ENDPOINT"]
>>> client = DevCenterClient(endpoint, credential=DefaultAzureCredential())
>>> try:
# Fetch control plane resource dependencies
target_project_name = list(client.list_projects(top=1))[0]['name']
target_catalog_item_name = list(client.list_catalog_items(target_project_name, top=1))[0]['name']
target_environment_type_name = list(client.list_environment_types(target_project_name, top=1))[0]['name']
target_catalog_name = list(client.list_catalog_items(target_project_name, top=1))[0]['catalogName']
# Stand up a new environment
create_response = client.begin_create_or_update_environment(target_project_name,
"Dev_Environment",
{"catalogName": target_catalog_name,
"catalogItemName": target_catalog_item_name,
"environmentType": target_environment_type_name
})
environment_result = create_response.result()
LOG.info(f"Provisioned environment with status {environment_result['provisioningState']}.")
# Fetch deployment artifacts
environment = client.get_environment_by_user(target_project_name, "me", "Dev_Environment")
LOG.info(environment)
# Tear down the environment when finished
delete_response = client.begin_delete_environment(target_project_name, "me", "Dev_Environment")
delete_response.wait()
LOG.info("Completed deletion for the environment.")
except HttpResponseError as e:
print('service responds error: {}'.format(e.response.json()))
Основные понятия
Dev Boxes — это управляемые компьютеры разработчиков, работающие в Azure. Поля разработки подготавливаются в пулах, которые определяют сеть и образ, используемые для Dev Box.
Среды относятся к шаблонным средам разработчика, которые объединяют шаблон (элемент каталога) и параметры.
Устранение неполадок
Ошибки могут возникать во время начальных запросов и длительных операций, а также предоставляют сведения о том, как устранить эту ошибку. Убедитесь, что зависимые ресурсы, такие как пулы и каталоги, настроены правильно и находятся в работоспособном состоянии. Вы не сможете создавать ресурсы с пакетом, если зависимые ресурсы находятся в состоянии сбоя.
Дальнейшие действия
Начните работу, изучив наши примеры и приступая к использованию пакета!
Участие
На этом проекте приветствуются публикации и предложения. Для участия в большинстве процессов по разработке документации необходимо принять лицензионное соглашение участника (CLA), в котором указывается, что вы предоставляете нам права на использование ваших публикаций. Для получения подробных сведений посетите веб-страницу https://cla.microsoft.com.
При отправке запроса на включение внесенных изменений CLA-бот автоматически определит необходимость предоставления соглашения CLA и соответствующего оформления запроса на включение внесенных изменений (например, добавление метки, комментария). Просто следуйте инструкциям бота. Будет достаточно выполнить их один раз для всех репозиториев, поддерживающих соглашение CLA.
В рамках этого проекта действуют правила поведения в отношении продуктов с открытым исходным кодом Майкрософт. Дополнительные сведения: Вопросы и ответы по правилам поведения. С любыми другими вопросами или комментариями обращайтесь по адресу opencode@microsoft.com.
Azure SDK for Python
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по