Azure DevCenter Service-Clientbibliothek für Python– Version 1.0.0b3
Das Azure DevCenter-Paket bietet Zugriff zum Verwalten von Ressourcen für Microsoft Dev Box und Azure-Bereitstellungsumgebungen. Dieses SDK ermöglicht die Verwaltung von Entwicklercomputern und -umgebungen in Azure.
Verwenden Sie das Paket für Azure DevCenter für Folgendes:
Erstellen, Zugreifen auf, Verwalten und Löschen von Dev Box-Ressourcen Erstellen, Bereitstellen, Verwalten und Löschen von Umgebungsressourcen
Erste Schritte
Installieren des Pakets
python -m pip install azure-developer-devcenter
Voraussetzungen
- Für die Verwendung dieses Pakets ist Python 3.7 oder höher erforderlich.
- Sie benötigen ein Azure-Abonnement , um dieses Paket verwenden zu können.
- Sie müssen ein DevCenter, ein Projekt, eine Netzwerkverbindung, eine Dev Box-Definition und einen Pool konfiguriert haben, bevor Sie Dev Boxes erstellen können.
- Sie müssen einen DevCenter-, Projekt-, Katalog- und Umgebungstyp konfiguriert haben, bevor Sie Umgebungen erstellen können.
Erstellen mit Azure Active Directory-Anmeldeinformationen
Um Azure Active Directory-Tokenanmeldeinformationen (AAD) zu verwenden, geben Sie eine instance des gewünschten Anmeldeinformationstyps an, der aus der azure-identity-Bibliothek abgerufen wird.
Um sich bei AAD zu authentifizieren, müssen Sie zuerst pip installieren. azure-identity
Nach dem Setup können Sie auswählen, welche Art von Anmeldeinformationen aus azure.identity verwendet werden soll. Beispielsweise kann DefaultAzureCredential verwendet werden, um den Client zu authentifizieren:
Legen Sie die Werte der Client-ID, der Mandanten-ID und des geheimen Clientschlüssels der AAD-Anwendung als Umgebungsvariablen fest: AZURE_CLIENT_ID
, AZURE_TENANT_ID
, AZURE_CLIENT_SECRET
Verwenden Sie die zurückgegebenen Tokenanmeldeinformationen, um den Client zu authentifizieren:
>>> 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())
Beispiele
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()))
Umgebungsverwaltung
>>> 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()))
Wichtige Begriffe
Dev Boxes beziehen sich auf verwaltete Entwicklercomputer, die in Azure ausgeführt werden. Dev Boxes werden in Pools bereitgestellt, die das netzwerk- und image definieren, das für eine Dev Box verwendet wird.
Umgebungen beziehen sich auf vorlagenbasierte Entwicklerumgebungen, die eine Vorlage (Katalogelement) und Parameter kombinieren.
Problembehandlung
Fehler können bei anfänglichen Anforderungen und vorgängen mit langer Ausführungsdauer auftreten und informationen zum Beheben des Fehlers bereitstellen. Vergewissern Sie sich, dass abhängige Ressourcen, z. B. Pools und Kataloge, ordnungsgemäß eingerichtet sind und sich in einem fehlerfreien Zustand befinden. Sie können keine Ressourcen mit dem Paket erstellen, wenn sich ihre abhängigen Ressourcen in einem fehlerhaften Zustand befinden.
Nächste Schritte
Beginnen Sie, indem Sie unsere Beispiele erkunden und mit der Verwendung des Pakets beginnen!
Mitwirken
Beiträge und Vorschläge für dieses Projekt sind willkommen. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. Ausführliche Informationen finden Sie unter https://cla.microsoft.com.
Wenn Sie einen Pull Request (PR) übermitteln, überprüft ein CLA-Bot automatisch, ob Sie eine Lizenzvereinbarung bereitstellen und den PR entsprechend ergänzen müssen (z.B. mit einer Bezeichnung oder einem Kommentar). Führen Sie einfach die Anweisungen des Bots aus. Sie müssen dies nur einmal für alle Repositorys ausführen, die unsere CLA verwenden.
Für dieses Projekt gelten die Microsoft-Verhaltensregeln für Open Source (Microsoft Open Source Code of Conduct). Weitere Informationen finden Sie in den FAQ zum Verhaltenskodex, oder wenden Sie sich mit weiteren Fragen oder Kommentaren an opencode@microsoft.com.
Azure SDK for Python
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für