Proposed Pull Request Change

title titleSuffix description author ms.topic ms.custom ms.date
Create a lab using Python Azure Lab Services Learn how to create an Azure Lab Services lab using Python and the Azure Python libraries (SDK). RogerBestMSFT how-to devx-track-python 02/15/2022
📄 Document Links
GitHub View on GitHub Microsoft Learn View on Microsoft Learn
Raw New Markdown
Generating updated version of doc...
Rendered New Markdown
Generating updated version of doc...
+0 -0
+0 -0
--- title: Create a lab using Python titleSuffix: Azure Lab Services description: Learn how to create an Azure Lab Services lab using Python and the Azure Python libraries (SDK). author: RogerBestMSFT ms.topic: how-to ms.custom: devx-track-python ms.date: 02/15/2022 --- # Create a lab in Azure Lab Services using Python and the Azure Python libraries (SDK) [!INCLUDE [Retirement guide](./includes/retirement-banner.md)] In this article, you learn how to create a lab using Python and the Azure Python libraries (SDK). The lab uses the settings from a previously created lab plan. For detailed overview of Azure Lab Services, see [An introduction to Azure Lab Services](lab-services-overview.md). ## Prerequisites [!INCLUDE [Azure subscription](./includes/lab-services-prerequisite-subscription.md)] [!INCLUDE [Create and manage labs](./includes/lab-services-prerequisite-create-lab.md)] [!INCLUDE [Existing lab plan](./includes/lab-services-prerequisite-lab-plan.md)] - [Setup Local Python dev environment for Azure](/azure/developer/python/configure-local-development-environment). - [The requirements.txt can be downloaded from the Azure Python samples](https://github.com/Azure-Samples/azure-samples-python-management/blob/main/samples/labservices/requirements.txt) ## Create a lab Before you can create a lab, you need the lab plan object. In the [create a lab plan by using Python](how-to-create-lab-plan-python.md), you learn how to create a lab plan named `BellowsCollege_labplan` in a resource group named `BellowsCollege_rg`. ```python # -------------------------------------------------------------------------- # 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() ``` ## Clean up resources If you're not going to continue to use this application, delete the group and lab with the following steps: ```python # -------------------------------------------------------------------------- # 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() ``` ## Next steps As an admin, you can learn more about [Azure PowerShell module](/powershell/azure) and [Az.LabServices cmdlets](/powershell/module/az.labservices/).
Success! Branch created successfully. Create Pull Request on GitHub
Error: