Sdílet prostřednictvím


Klientská knihovna služby Azure DevCenter pro Python – verze 1.0.0b3

Balíček Azure DevCenter poskytuje přístup ke správě prostředků pro Microsoft Dev Box a prostředí pro nasazení Azure. Tato sada SDK umožňuje správu vývojářských počítačů a prostředí v Azure.

Balíček pro Azure DevCenter můžete použít k:

Vytváření, přístup k prostředkům Dev Boxu, jejich správa a odstraňování Vytváření, nasazování, správa a odstraňování prostředků prostředí

Začínáme

Instalace balíčku

python -m pip install azure-developer-devcenter

Požadavky

  • K použití tohoto balíčku se vyžaduje Python 3.7 nebo novější.
  • K použití tohoto balíčku potřebujete předplatné Azure .
  • Před vytvořením Dev Boxu musíte mít nakonfigurované DevCenter, Projekt, Síťové připojení, Definici Dev Boxu a Fond.
  • Před vytvořením prostředí musíte mít nakonfigurovaný DevCenter, projekt, katalog a typ prostředí.

Vytvoření s přihlašovacími údaji Azure Active Directory

Pokud chcete použít přihlašovací údaje tokenu Azure Active Directory (AAD), zadejte instanci požadovaného typu přihlašovacích údajů získané z knihovny azure-identity .

Pokud se chcete ověřit pomocí AAD, musíte nejprve nainstalovat pip . azure-identity

Po nastavení můžete zvolit, jaký typ přihlašovacích údajů z azure.identity chcete použít. Například DefaultAzureCredential se dá použít k ověření klienta:

Nastavte hodnoty ID klienta, ID tenanta a tajného klíče klienta aplikace AAD jako proměnné prostředí: AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET

K ověření klienta použijte vrácené přihlašovací údaje tokenu:

>>> 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())

Příklady

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()))

Správa prostředí

>>> 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()))

Klíčové koncepty

Dev Boxy odkazují na spravované vývojářské počítače běžící v Azure. Dev Boxes se zřizují ve fondech, které definují síť a image používané pro Dev Box.

Prostředí odkazují na prostředí pro vývojáře s šablonou, která kombinují šablonu (položka katalogu) a parametry.

Poradce při potížích

K chybám může dojít během počátečních požadavků a dlouhotrvajících operací a poskytne informace o tom, jak chybu vyřešit. Ujistěte se, že závislé prostředky, jako jsou fondy a katalogy, jsou správně nastavené a v dobrém stavu. Pokud jsou závislé prostředky ve stavu selhání, nebudete s balíčkem moct vytvářet prostředky.

Další kroky

Začněte tím, že prozkoumáte naše ukázky a začnete balíček používat.

Přispívání

Tento projekt vítá příspěvky a návrhy. Většina příspěvků vyžaduje souhlas s licenční smlouvou s přispěvatelem (CLA), která stanoví, že máte právo udělit nám práva k používání vašeho příspěvku a skutečně tak činíte. Podrobnosti najdete tady: https://cla.microsoft.com

Při odesílání žádosti o přijetí změn robot CLA automaticky určí, jestli je potřeba poskytnout smlouvu CLA, a příslušným způsobem žádost o přijetí změn upraví (např. přidáním jmenovky nebo komentáře). Stačí postupovat podle pokynů robota. Pro všechna úložiště používající naši smlouvu CLA to stačí udělat jenom jednou.

Tento projekt přijal pravidla chování pro Microsoft Open Source. Další informace najdete v nejčastějších dotazech k pravidlům chování. V případě jakýchkoli dotazů nebo připomínek kontaktujte opencode@microsoft.com.