適用于 Python 的 Azure DevCenter Service 用戶端程式庫 - 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 訂 用帳戶才能使用此套件。
- 您必須先 設定 DevCenter、Project、Network Connection、Dev Box Definition 和 Pool,才能建立開發方塊
- 您必須先 設定 DevCenter、專案、目錄和環境類型,才能建立環境
使用 Azure Active Directory 認證建立
若要使用 Azure Active Directory (AAD) 權杖認證,請提供從 azure 身 分識別程式庫取得所需認證類型的實例。
若要使用 AAD 進行驗證,您必須先安裝pipazure-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())
範例
開發箱管理
>>> 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()))
重要概念
開發人員方塊是指在 Azure 中執行的受控開發人員機器。 開發人員方塊會布建在集區中,以定義用於開發箱的網路和映射。
環境是指範本化開發人員環境,其結合了範本 (目錄專案) 和參數。
疑難排解
初始要求和長時間執行的作業期間可能會發生錯誤,並提供如何解決錯誤的相關資訊。 請務必確認已正確設定相依資源,例如集區和目錄,且處於狀況良好的狀態。 當您的相依資源處於失敗狀態時,您將無法使用套件建立資源。
下一步
開始探索我們的範例,並開始使用套件!
參與
此專案歡迎參與和提供建議。 大部分的參與都要求您同意「參與者授權合約 (CLA)」,宣告您有權且確實授與我們使用投稿的權利。 如需詳細資料,請前往 https://cla.microsoft.com 。
當您提交提取要求時,CLA Bot 會自動判斷您是否需要提供 CLA,並適當地裝飾 PR (例如標籤、註解)。 請遵循 bot 提供的指示。 您只需要使用我們的 CLA 在所有存放庫上執行此動作一次。
此專案採用 Microsoft Open Source Code of Conduct (Microsoft 開放原始碼管理辦法)。 如需詳細資訊,請參閱管理辦法常見問題集,如有其他問題或意見,請連絡 opencode@microsoft.com。