Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Penting
Azure Lab Services akan dihentikan pada 28 Juni 2027. Untuk informasi selengkapnya, lihat panduan penghentian. Untuk menyederhanakan migrasi Anda, Microsoft telah menerbitkan skrip otomatisasi untuk membantu Anda membersihkan sumber daya Lab Services, ini tersedia di repositori GitHub Azure Lab Services Retirement Scripts.
Dalam artikel ini, Anda mempelajari cara membuat lab menggunakan Python dan pustaka Azure Python (SDK). Lab menggunakan pengaturan dari paket lab yang dibuat sebelumnya. Untuk gambaran umum terperinci tentang Azure Lab Services, lihat Pengantar Azure Lab Services.
Prasyarat
- Akun Azure dengan langganan aktif. Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.
- Akun Azure dengan izin untuk mengelola lab, seperti peran Azure RBAC Pembuat Lab, Pemilik, Kontributor, atau Kontributor Layanan Lab. Pelajari selengkapnya tentang peran bawaan Azure Lab Services dan cakupan penugasan.
- Paket lab Azure. Jika Anda belum memiliki paket lab, ikuti langkah-langkah di Mulai Cepat: Menyiapkan sumber daya untuk membuat lab.
- Menyiapkan lingkungan pengembangan Python Lokal untuk Azure.
- requirements.txt dapat diunduh dari sampel Azure Python
Membuat lab
Sebelum dapat membuat lab, Anda memerlukan objek rencana lab.
Dalam membuat rencana lab dengan menggunakan Python, Anda mempelajari cara membuat paket lab bernama BellowsCollege_labplan dalam grup sumber daya bernama BellowsCollege_rg.
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for
# license information.
# --------------------------------------------------------------------------
from datetime import timedelta
import time
from azure.identity import DefaultAzureCredential
from azure.mgmt.labservices import LabServicesClient
from azure.mgmt.resource import ResourceManagementClient
def main():
SUBSCRIPTION_ID = "<Subscription ID>"
TIME = str(time.time()).replace('.','')
GROUP_NAME = "BellowsCollege_rg"
LABPLAN = "BellowsCollege_labplan"
LAB = "BellowsCollege_lab"
LOCATION = 'southcentralus'
# Create clients
# # For other authentication approaches, please see: https://pypi.org/project/azure-identity/
resource_client = ResourceManagementClient(
credential=DefaultAzureCredential(),
subscription_id=SUBSCRIPTION_ID
)
labservices_client = LabServicesClient(
credential=DefaultAzureCredential(),
subscription_id=SUBSCRIPTION_ID
)
#Get single LabServices Lab Plan
labservices_labplan = labservices_client.lab_plans.get(GROUP_NAME, LABPLAN)
print("Get lab plans")
print(labservices_labplan)
#Get image information
LABIMAGES = labservices_client.images.list_by_lab_plan(GROUP_NAME,LABPLAN)
image = (list(filter(lambda x: (x.name == "microsoftwindowsdesktop.windows-11.win11-21h2-pro"), LABIMAGES)))
#Get lab quota
USAGEQUOTA = timedelta(hours=10)
# Password
CUSTOMPASSWORD = "<custom password>"
# Create LabServices Lab
LABBODY = {
"name": LAB,
"location" : LOCATION,
"properties" : {
"networkProfile": {},
"connectionProfile" : {
"webSshAccess" : "None",
"webRdpAccess" : "None",
"clientSshAccess" : "None",
"clientRdpAccess" : "Public"
},
"AutoShutdownProfile" : {
"shutdownOnDisconnect" : "Disabled",
"shutdownWhenNotConnected" : "Disabled",
"shutdownOnIdle" : "None"
},
"virtualMachineProfile" : {
"createOption" : "TemplateVM",
"imageReference" : {
"offer": image[0].offer,
"publisher": image[0].publisher,
"sku": image[0].sku,
"version": image[0].version
},
"sku" : {
"name" : "Classic_Fsv2_2_4GB_128_S_SSD",
"capacity" : 2
},
"additionalCapabilities" : {
"installGpuDrivers" : "Disabled"
},
"usageQuota" : USAGEQUOTA,
"UseSharedPassword" : "Enabled",
"adminUser" : {
"username" : "testuser",
"password" : CUSTOMPASSWORD
}
},
"securityProfile" : {
"openAccess" : "Disabled"
},
"rosterProfile" : {},
"labPlanId" : labservices_labplan.id,
"title" : "lab-python",
"description" : "lab 99 description updated"
}
}
poller = labservices_client.labs.begin_create_or_update(
GROUP_NAME,
LAB,
LABBODY
)
lab_result = poller.result()
print(f"Created Lab {lab_result.name}")
# Get LabServices Labs
labservices_lab = labservices_client.labs.get(GROUP_NAME,LAB)
print("Get lab:\n{}".format(labservices_lab))
if __name__ == "__main__":
main()
Membersihkan sumber daya
Jika Anda tidak akan terus menggunakan aplikasi ini, hapus grup dan lab dengan langkah-langkah berikut:
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for
# license information.
# --------------------------------------------------------------------------
from datetime import timedelta
import time
from azure.identity import DefaultAzureCredential
from azure.mgmt.labservices import LabServicesClient
from azure.mgmt.resource import ResourceManagementClient
# - other dependence -
# - end -
#
def main():
SUBSCRIPTION_ID = "<Subscription ID>"
TIME = str(time.time()).replace('.','')
GROUP_NAME = "BellowsCollege_rg"
LABPLAN = "BellowsCollege_labplan"
LAB = "BellowsCollege_lab"
LOCATION = 'southcentralus'
# Create clients
# # For other authentication approaches, please see: https://pypi.org/project/azure-identity/
resource_client = ResourceManagementClient(
credential=DefaultAzureCredential(),
subscription_id=SUBSCRIPTION_ID
)
labservices_client = LabServicesClient(
credential=DefaultAzureCredential(),
subscription_id=SUBSCRIPTION_ID
)
# Delete Lab
labservices_client.labs.begin_delete(
GROUP_NAME,
LAB
).result()
print("Deleted lab.\n")
# Delete Group
resource_client.resource_groups.begin_delete(
GROUP_NAME
).result()
if __name__ == "__main__":
main()
Langkah berikutnya
Sebagai admin, Anda dapat mempelajari selengkapnya tentang modul Azure PowerShell dan cmdlet Az.LabServices.