Python için Azure DevCenter Service istemci kitaplığı - sürüm 1.0.0b3
Azure DevCenter paketi, Microsoft Dev Box ve Azure Dağıtım Ortamları için kaynakları yönetme erişimi sağlar. Bu SDK, Azure'da geliştirici makinelerini ve ortamlarını yönetmeye olanak tanır.
Azure DevCenter paketini kullanarak:
Dev Box kaynaklarını oluşturma, erişme, yönetme ve silme Ortam kaynaklarını oluşturma, dağıtma, yönetme ve silme
Başlarken
Paketi yükleme
python -m pip install azure-developer-devcenter
Önkoşullar
- Bu paketi kullanmak için Python 3.7 veya üzeri gereklidir.
- Bu paketi kullanmak için bir Azure aboneliğine ihtiyacınız vardır.
- Geliştirme Kutuları oluşturabilmeniz için önce Bir DevCenter, Project, Ağ Bağlantısı, Geliştirme Kutusu Tanımı ve Havuzu yapılandırmış olmanız gerekir
- Ortamlar oluşturabilmeniz için önce Bir DevCenter, Proje, Katalog ve Ortam Türü yapılandırmış olmanız gerekir
Azure Active Directory Kimlik Bilgileri ile oluşturma
Azure Active Directory (AAD) belirteci kimlik bilgilerini kullanmak için azure-identity kitaplığından alınan istenen kimlik bilgisi türünün bir örneğini sağlayın.
AAD ile kimlik doğrulaması yapmak için önce pip yüklemeniz gerekir azure-identity
Kurulumdan sonra azure.identity'den hangi kimlik bilgisi türünü kullanacağınızı seçebilirsiniz. Örneğin, istemcinin kimliğini doğrulamak için DefaultAzureCredential kullanılabilir:
AAD uygulamasının istemci kimliği, kiracı kimliği ve istemci gizli dizisi değerlerini ortam değişkenleri olarak ayarlayın: AZURE_CLIENT_ID
, AZURE_TENANT_ID
, AZURE_CLIENT_SECRET
İstemcinin kimliğini doğrulamak için döndürülen belirteç kimlik bilgilerini kullanın:
>>> 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())
Örnekler
Geliştirme Kutusu Yönetimi
>>> 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()))
Ortam Yönetimi
>>> 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()))
Önemli kavramlar
Geliştirme Kutuları, Azure'da çalışan yönetilen geliştirici makinelerine başvurur. Geliştirme Kutuları, Bir Geliştirme Kutusu için kullanılan ağı ve görüntüyü tanımlayan Havuzlar'da sağlanır.
Ortamlar, şablon (Katalog Öğesi) ve parametreleri birleştiren şablonlu geliştirici ortamlarına başvurur.
Sorun giderme
İlk istekler ve uzun süre çalışan işlemler sırasında hatalar oluşabilir ve hatanın nasıl çözüleceği hakkında bilgi sağlar. Havuzlar ve kataloglar gibi bağımlı kaynakların düzgün ayarlandığından ve iyi durumda olduğundan emin olun. Bağımlı kaynaklarınız başarısız durumda olduğunda paketle kaynak oluşturamazsınız.
Sonraki adımlar
Örneklerimizi inceleyerek ve paketi kullanmaya başlayarak başlayın!
Katkıda bulunma
Bu proje, katkı ve önerilere açıktır. Çoğu durumda, sağladığınız katkıyı kullanmamız için bize hak tanıma hakkına sahip olduğunuzu ve bu hakkı bize tanıdığınızı bildiren bir Katkıda Bulunan Lisans Sözleşmesi’ni (CLA) kabul etmeniz gerekir. Ayrıntılar için bkz. https://cla.microsoft.com.
Bir çekme isteği gönderdiğinizde, CLA robotu bir CLA sağlamanız gerekip gerekmediğini otomatik olarak belirler ve çekme isteğini uygun şekilde donatır (örn. etiket, açıklama). Robot tarafından sağlanan yönergeleri izlemeniz yeterlidir. Bu işlemi, CLA’mızı kullanarak tüm depolarda yalnızca bir kere yapmanız gerekir.
Bu proje Microsoft Open Source Code of Conduct (Microsoft Açık Kaynak Kullanım Kuralları) belgesinde listelenen kurallara uygundur. Daha fazla bilgi için Kullanım Kuralları hakkında SSS bölümüne bakın veya başka soru ya da görüşleriniz olursa opencode@microsoft.com ile iletişime geçin.
Azure SDK for Python