랩: Azure PaaS(Platform-as-a-Service)에서 웹 애플리케이션 빌드
학생 랩 매뉴얼
랩 시나리오
당신은 새로 창립된 기업의 소유자이며 사람들을 위하여 음식의 좋은 이미지를 공유 할 수 있는 이미지 갤러리 응용 프로그램을 구축하고 있습니다. 제품을 가능한 빨리 출시하려면 Microsoft Azure 앱 서비스를 사용하여 웹 응용 프로그램 및 APIs 를 호스팅하기로 결정했습니다. 최근에 응용 프로그램에 업로드되는 이미지가 너무 크다는 것을 알게 되었습니다. 스토리지 및 대역폭 비용에 대해 우려하여 Azure Functions를 사용하여 백그라운드에서 이미지를 처리하고 신속하게 로드할 수 있는 미리 보기 이미지로 줄이기로 결정했습니다.
목표
이 랩을 완료하면 다음을 수행할 수 있습니다.
-
Azure 어플 서비스를 사용하여 다양한 앱을 만듭니다.
-
어플에 대한 응용 프로그램 설정을 구성합니다.
-
Kudu, Azure CLI 및 zip 배치를 사용하여 어플을 배치합니다.
-
Azure 저장소 이미지를 처리하는 기능적 어플을 작성합니다.
랩 설정
- 예상 시간: 90 분
지침
시작하기 전에
랩 가상 머신에 로그인
다음 자격 증명을 사용하여 Windows 10 가상 머신에 로그인해야 합니다.
-
사용자 이름: Admin
-
암호: Pa55w.rd
설치된 응용 프로그램 검토
Windows 10 바탕 화면 하단에 있는 작업 표시줄을 살펴봅니다. 작업 표시줄에는 이 랩에서 사용할 응용 프로그램에 대한 아이콘이 포함되어 있습니다.
-
Microsoft Edge
-
파일 탐색기
-
Windows PowerShell
-
Visual Studio Code
랩 파일 다운로드
-
작업 표시줄에서 Windows PowerShell 아이콘을 선택합니다.
-
PowerShell 명령 프롬프트에서 현재 작업 디렉터리를 Allfiles(F):\ 경로로 변경합니다.
cd F:
- 명령 프롬프트 내에서 다음 명령을 입력하고 Enter 키를 눌러 GitHub에서 호스트되는 microsoftlearning/AZ-203-DevelopingSolutionsforMicrosoftAzure 프로젝트를 Allfiles (F):\ 드라이브로 복제합니다.
git clone --depth 1 --no-checkout https://github.com/microsoftlearning/AZ-203-DevelopingSolutionsForMicrosoftAzure.
- 명령 프롬프트 내에서 다음 명령을 입력하고 Enter 키를 눌러 AZ-203T02 랩을 완료하는 데 필요한 랩 파일을 체크 아웃합니다.
git checkout master -- Allfiles/*
- 현재 실행 중인 Windows PowerShell 명령 프롬프트 응용 프로그램을 닫습니다.
연습 1: Azure Storage 및 API Apps를 사용하여 백엔드 API 빌드
작업 1: Azure Portal 열기
-
Azure Portal(portal.azure.com)에 로그인합니다.
-
Azure 포털에 처음 로그인하는 경우 포털 둘러보기를 제공하는 대화 박스가 표시됩니다. 투어를 건너뛰려면 시작하기를 선택합니다.
작업 2: Azure 저장소 계정 만들기
-
다음 세부 정보를 사용하여 새 스토리지 계정을 만듭니다.
-
새 리소스 그룹: 관리 플랫폼
-
이름: imgstor[소문자로 된 사용자 이름]
-
위치: (미국) 미국 동부
-
성능: 표준
-
계정 종류: 스토리지 V2(범용 v2)
-
복제: 로컬 중복 스토리지(LRS)
-
액세스 계층: 핫
-
참고: 랩을 진행하기 전에 Azure 에서 저장소 계정 만들기가 완료될 때까지 기다립니다. 계정이 생성되면 알림을 받게 됩니다.
-
새로 만든 스토리지 계정 인스턴스의 액세스 키 블레이드에 액세스합니다.
-
연결 문자열 필드의 값을 기록합니다. 이 랩에서 나중에 이 값을 사용합니다.
작업 3: 샘플 블랍 업로드
-
이전에 랩에서 만든 imgstor* 저장소 계정에 접속합니다.
-
Blob service 섹션에서 컨테이너 링크를 선택합니다.
-
다음 설정을 사용하여 새 컨테이너를 만듭니다.
-
이름: 이미지
-
공용 액세스 수준: Blob(블랍에 대한 익명 읽기 액세스만)
-
-
다음 설정을 사용하여 다른 새 컨테이너를 만듭니다.
-
이름: 이미지 - 섬네일
-
공용 엑세스 수준: 블랍(블랍에 대한 익명 읽기만 가능합니다.)
-
-
새 이미지 컨테이너로 이동합니다.
-
업로드 단추를 사용하여 랩 머신의 Allfiles (F):\Allfiles\Labs\02\Starter\Images 폴더에 있는 grilledcheese.jpg 파일을 업로드합니다.
참고: 파일이 이미 있는 경우 덮어쓰기 옵션을 사용하도록 설정하는 것이 좋습니다.
작업 4: API 앱 만들기
-
다음 세부 정보에 따라서 새 API 앱을 만듭니다.
-
앱 이름: imgapi[소문자로 된 사용자 이름]
-
기존 리소스 그룹: 관리 플랫폼
참고: 랩을 진행하기 전에 Azure에서 API 앱 만들기가 완료될 때까지 기다립니다. 어플이 생성된 후 알림을 받게 됩니다.
-
작업 5: API 앱 구성
-
이전에 랩에서 만든 imgapi* API 앱을 접촉합니다.
-
블레이드 왼쪽의 설정 섹션에서 구성 섹션으로 이동합니다.
-
다음 세부 정보를 사용하여 새 애플리케이션 설정을 만듭니다.
-
이름: StorageConnectionString
-
값: <Storage Connection String copied earlier in this lab>
-
배포 슬롯 설정: 선택되지 않음
-
-
애플리케이션 설정에 대한 변경 내용을 저장합니다.
-
블레이드 왼쪽의 설정 섹션에서 속성 섹션으로 이동합니다.
-
속성 섹션에서 URL 필드의 값을 복사합니다. 이 값은 랩에서 나중에 사용합니다.
작업 6: API 앱에 ASP.NET Core 웹 애플리케이션 배포
-
Visual Studio Code를 사용하여 Allfiles (F):\Allfiles\Labs\02\Starter\API 폴더에 있는 웹 애플리케이션을 엽니다.
-
Controllers\ImagesController.cs 파일을 열고 각 메서드에서 코드를 살펴봅니다.
-
Windows PowerShell응용 프로그램을 엽니다.
-
Microsoft Azure 자격 증명을 사용하여 Azure CLI 에 로그인합니다.
az login
- ManagedPlatform 리소스 그룹에 있는 모든 앱을 나열합니다.
az webapp list --resource-group ManagedPlatform
- 접두사 imgapi*가 있는 앱을 찾습니다.
az webapp list --resource-group ManagedPlatform --query "[?starts_with(name, 'imgapi')]"
- 접두사 imgapi*가 있는 단일 앱의 이름만 출력합니다.
az webapp list --resource-group ManagedPlatform --query "[?starts_with(name, 'imgapi')].{Name:name}" --output tsv
- 랩 파일이 포함된 Allfiles (F):\Allfiles\Labs\02\Starter\API 디렉터리로 현재 디렉터리를 변경합니다.
cd F:\Labfiles\02\Starter\API\
- api.zip 파일을 이 랩의 앞에서 만든 API 앱에 배포합니다.
az webapp deployment source config-zip --resource-group ManagedPlatform --src api.zip --name <name-of-your-api-app>
> **참고**: **\<name-of-your-api-app\>** 자리 표시자를 이 랩의 앞에서 만든 API 앱의 이름으로 바꿉니다. 최근에 이전 단계에서 이 앱의 이름을 쿼리했습니다.
-
이 랩의 앞에서 만든 imgapi* API 앱에 액세스합니다.
-
브라우저에서 imgapi* API 앱을 엽니다.
-
웹 사이트의 루트에 대한 GET 요청을 수행하고 반환되는 JSON 배열을 관찰합니다. 이 배열에는 Azure Storage 계정에 업로드된 싱글 이미지의 URL이 포함되어야 합니다.
검토
이 연습에서는 Azure에서 API 앱을 만든 다음 Azure CLI 및 Kudu의 zip 배포 유틸리티를 사용하여 ASP.NET Core 웹 애플리케이션을 API 앱에 배포했습니다.
연습 2: Azure 웹 어플을 사용하여 프런트 엔드 웹 응용 프로그램을 만듭니다.
작업 1: 웹 어플 만들기
-
Azure 포털에서 다음과 같은 세부 정보를 사용하여 새 앱 어플을 만듭니다.
-
앱 이름: imgweb[소문자로 된 사용자 이름]
-
기존 리소스 그룹: 관리 플랫폼
-
OS: Windows
참고: 랩을 진행하기 전에 Azure 에서 웹 어플 만들기가 완료될 때까지 기다립니다. 어플이 생성된 후 알림을 받게 됩니다.
-
작업 2: 웹 어플 구성
-
이전 작업에서 만든 imgweb* 웹앱에 액세스합니다.
-
블레이드 왼쪽의 설정 섹션에서 구성 설정으로 이동합니다.
-
다음 세부 정보를 사용하여 새 애플리케이션 설정을 만듭니다.
-
이름: ApiUrl
-
값: <API App URL copied earlier in this lab>
-
배포 슬롯 설정: 선택되지 않음
참고: 이 애플리케이션 설정의 값 필드에 복사하는 URL에 프로토콜(예: https://)을 포함해야 합니다.
-
-
애플리케이션 설정에 대한 변경 내용을 저장합니다.
작업 3: ASP.NET 코어 웹 응용 프로그램을 웹 어플에 배치합니다.
-
Visual Studio Code를 사용하여 Allfiles (F):\Allfiles\Labs\02\Starter\Web 폴더에 있는 웹 애플리케이션을 엽니다.
-
Pages\Index.cshtml.cs 파일을 열고 각 메서드의 코드를 관찰합니다.
-
Windows PowerShell응용 프로그램을 엽니다.
-
Microsoft Azure 자격 증명을 사용하여 Azure CLI 에 로그인합니다.
az login
- ManagedPlatform 리소스 그룹에 있는 모든 앱을 나열합니다.
az webapp list --resource-group ManagedPlatform
- 접두사 imgweb*가 있는 앱을 찾습니다.
az webapp list --resource-group ManagedPlatform --query "[?starts_with(name, 'imgweb')]"
- 접두사 imgweb*가 있는 단일 앱의 이름만 출력합니다.
az webapp list --resource-group ManagedPlatform --query "[?starts_with(name, 'imgweb')].{Name:name}" --output tsv
- 랩 파일이 포함된 Allfiles (F):\Allfiles\Labs\02\Starter\Web 디렉터리로 현재 디렉터리를 변경합니다.
cd F:\Labfiles\02\Starter\Web\
- 이 랩의 앞에서 만든 웹앱에 web.zip 파일을 배포합니다.
az webapp deployment source config-zip --resource-group ManagedPlatform --src web.zip --name <name-of-your-web-app>
> **참고**: **<Name-of-your-api-app\>** 플레이스 홀더를 이전에 랩에서 만든 웹 어플의 이름으로 바꿉니다. 최근에 이전 단계에서 이 어플의 이름을 쿼리했습니다.
-
이전에 랩에서 만든 imgweb* 웹 어플에 접속합니다.
-
브라우저에서 imgweb* 웹 어플을 엽니다.
-
갤러리 이미지 목록이 새 이미지로 업데이트되었는지 확인합니다.
참고: 드문 경우지만 새 이미지가 표시되도록 브라우저 창을 새로 고쳐야 할 수도 있습니다.
검토
이 연습에서는 Azure Web App 을 만들고 기존 웹 응용 프로그램의 코드를 클라우드의 리소스에 배치했습니다.
연습 3: Azure 저장소 및 Azure 함수를 사용하여 백그라운드 처리 작업을 만듭니다.
작업 1: 함수 어플 만들기
-
Azure 포털에서 다음과 같은 세부 정보를 사용하여 새함수 어플을 만듭니다.
-
앱 이름: imgfunc[소문자로 된 사용자 이름]
-
기존 리소스 그룹: ManagedResourceGroup
-
OS: Windows
-
호스팅 계획: 소비 계획
-
위치: 미국 동부
-
런타임 스택: .NET Core
-
스토리지: imgstor[소문자로 된 사용자 이름]
참고: 랩을 진행하기 전에 Azure 에서 함수 어플 만들기를 완료될 때까지 기다립니다. 어플이 생성된 후 알림을 받게 됩니다.
-
작업 2: .NET Core 애플리케이션 설정 만들기
-
이 랩의 앞에서 만든 imgfunc* 함수 앱에 액세스합니다.
-
플랫폼 기능 탭에 있는 구성 설정으로 이동합니다.
-
다음 세부 정보를 사용하여 새 애플리케이션 설정을 만듭니다.
-
이름: DOTNET_SKIP_FIRST_TIME_EXPERIENCE
-
값: true
참고: ‘DOTNET_SKIP_FIRST_TIME_EXPERIENCE’ 애플리케이션 설정은 .NET Core가 기본 제공 NuGet 패키지 캐시 메커니즘을 사용하지 않도록 지정합니다. 임시 컴퓨팅 인스턴스에서는 이로 인해 시간이 낭비되고 Azure Function의 빌드 문제가 발생합니다.
-
-
애플리케이션 설정에 대한 변경 내용을 저장합니다.
작업 3: 블랍을 처리하는 함수를 작성합니다.
-
Azure 포털 왼쪽 네비게이션 페인에서 리소스 그룹을 선택합니다.
-
리소스 그룹 블레이드에서 이전에 랩에서 만든 ManagedPlatform 리소스 그룹을 찾아 선택합니다.
-
관리 플랫폼 블레이드에서 이 랩의 앞에서 만든 imgfunc* 함수 앱을 선택합니다.
-
함수 어플 블레이드에서 + 새 함수을 선택합니다.
-
새 Azure 함수 빠른 시작에서 다음 작업을 수행합니다.
-
개발 환경 선택 헤더에서 포털 에서를 선택합니다.
-
계속을 선택합니다.
-
함수 만들기 헤더에서 더 많은 템플릿…을 선택합니다.
-
템플릿 완료 및 보기를 선택합니다.
-
템플릿 목록에서 Azure Blob Storage 트리거를 선택합니다.
-
확장이 설치되지 않음 창에서 설치를 선택합니다.
참고: Azure Storage Blob을 사용하여 작업하기 위한 확장을 설치할 때 최대 2분이 걸릴 수 있습니다. 포털이 새로 고쳐지지 않으면 확장이 설치되지 않음 팝업 창을 닫고 Azure 블랍 스토리지 트리거를 다시 선택하기만 하면 됩니다.
-
설치가 성공하면 계속을 선택합니다.
-
새 함수 창에서 이름 필드에 ImageManager를 입력합니다.
-
새 함수 창에서 경로 필드에 이미지/{이름}을 입력합니다.
-
새 함수 창에서 저장소 계정 연결목록에서 AzureWebJobsStorage을 선택합니다.
-
새 함수 창에서 만들기를 선택합니다.
-
-
함수 편집기의 오른쪽에서 파일 보기를 선택하여 탭을 엽니다.
-
파일 보기 탭에서 추가를 선택합니다.
-
표시되는 파일 이름 대화 상자에서 function.proj를 입력합니다.
-
파일 편집기에서 이 구성 내용을 삽입합니다.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="SixLabors.ImageSharp" Version="1.0.0-beta0006" />
</ItemGroup>
</Project>
-
편집기에서 저장 단추를 선택하여 구성 변경 내용을 저장합니다.
참고: 이 proj 파일에는 SixLabors.ImageSharp 패키지를 가져오는 데 필요한 NuGet 패키지 참조가 포함되어 있습니다.
-
파일 보기 탭에서 function.json 파일을 선택하여 함수 구성의 편집기를 봅니다.
-
JSON 편집기에서 현재 구성을 관찰합니다.
{
"bindings": [
{
"name": "myBlob",
"type": "blobTrigger",
"direction": "in",
"path": "images/{name}",
"connection": "AzureWebJobsStorage"
}
],
"disabled": false
}
- JSON 구성 파일의 전체 콘텐츠를 다음 JSON 콘텐츠로 교체합니다:
{
"bindings": [
{
"name": "inputBlob",
"type": "blobTrigger",
"direction": "in",
"path": "images/{name}",
"connection": "AzureWebJobsStorage"
},
{
"type": "blob",
"name": "outputBlob",
"path": "images-thumbnails/{name}",
"connection": "AzureWebJobsStorage",
"direction": "out"
}
]
}
-
JSON 편집기에서 저장 단추를 선택하여 구성 변경 내용을 저장합니다.
-
파일 보기 탭에서 run.csx 파일을 선택하여 ImageManager 함수의 편집기로 돌아갑니다.
-
파일 보기탭을 최소화합니다.
참고: 탭 헤더의 오른쪽에 있는 화살표를 즉시 선택하여 탭을 최소화할 수 있습니다.
-
함수 편집기에서 예시 함수 스크립트를 관찰합니다.
public static void Run(Stream myBlob, string name, ILogger log)
{
log.LogInformation($"C# Blob trigger function Processed blob\n Name:{name} \n Size: {myBlob.Length} Bytes");
}
-
예시 코드를 모두 삭제합니다.
-
편집기 내에서 다음 플레이스 홀더 함수를 복사하여 붙여넣습니다.
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Processing;
using SixLabors.ImageSharp.Formats.Jpeg;
using SixLabors.Primitives;
public static void Run(Stream inputBlob, Stream outputBlob, string name, ILogger log)
{
}
-
편집기에서 저장을 선택하여 스크립트를 저장하고 코드를 컴파일합니다.
-
함수 실행의 정보를 기록하기 위해 다음 코드 줄을 추가합니다.
log.LogInformation($"C# Blob trigger function Processed blob\n Name:{name} \n Size: {inputBlob.Length} Bytes");
- 입력 blob에 대한 스트림을 이미지 라이브러리에 로드하려면 다음 using 블록을 추가합니다.
using (Image<Rgba32> image = Image.Load(inputBlob))
{
}
- using 문 내에 다음 코드 줄을 추가하여 이미지 크기를 조정하고 그레이스케일 필터를 적용하여 이미지를 변경합니다.
image.Mutate(i =>
i.Resize(new ResizeOptions { Size = new Size(250, 250), Mode = ResizeMode.Max }).Grayscale()
);
- 다음 코드 줄을 추가하여 출력 Blob의 스트림에 새 이미지를 저장합니다.
image.Save(outputBlob, new JpegEncoder());
- 이제 Run 메서드는 다음과 같습니다.
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Processing;
using SixLabors.ImageSharp.Formats.Jpeg;
using SixLabors.Primitives;
public static void Run(Stream inputBlob, Stream outputBlob, string name, ILogger log)
{
log.LogInformation($"C# Blob trigger function Processed blob\n Name:{name} \n Size: {inputBlob.Length} Bytes");
using (Image<Rgba32> image = Image.Load(inputBlob))
{
image.Mutate(i =>
i.Resize(new ResizeOptions { Size = new Size(250, 250), Mode = ResizeMode.Max }).Grayscale()
);
image.Save(outputBlob, new JpegEncoder());
}
}
- 편집기에서 저장을 선택하여 스크립트를 저장하고 코드를 다시 컴파일합니다.
작업 4: 웹 솔루션 검증
-
Azure 포털 왼쪽 네비게이션 페인에서 리소스 그룹을 선택합니다.
-
리소스 그룹 블레이드에서 이전에 랩에서 만든 ManagedPlatform 리소스 그룹을 찾아 선택합니다.
-
관리 플랫폼 블레이드에서 이전에 랩에서 만든 imgstor* 저장소 계정을 선택합니다.
-
스토리지 계정 블레이드의 왼쪽에 있는 Blob service 섹션에서 컨테이너 링크를 선택합니다.
-
컨테이너 섹션에서 이미지 컨테이너를 선택합니다.
-
컨테이너 블레이드에서 업로드를 선택합니다.
-
표시되는 블랍 업로드 창에서 다음 작업을 수행합니다.
-
파일 섹션에서 폴더 아이콘을 선택합니다.
-
열리는 파일 탐색기 대화 상자에서 Allfiles (F):\Allfiles\Labs\02\Starter\Images로 이동하여 veggie.jpg 파일을 선택한 다음 열기를 선택합니다.
-
파일이 이미 있는 경우 덮어쓰기 확인란이 선택되어 있는지 확인합니다.
-
업로드 선택
-
-
이 랩을 계속하기 전에 블랍이 업로드될 때까지 기다립니다.
-
컨테이너 블레이드를 닫습니다.
-
컨테이너 섹션으로 돌아가서 images-thumbnails 컨테이너를 선택합니다.
-
컨테이너 블레이드에서 images-thumbnails 컨테이너에서 새로 만든 veggie.jpg파일을 확인합니다.
참고: 새 이미지가 표시되려면 1~5분 정도 걸릴 수 있습니다.
-
이미지- 섬네일 컨테이너에서 veggie.jpg 블랍을 선택합니다.
-
블랍 블레이드에서 블랍 편집 탭을 선택합니다.
-
블랍의 내용을 관찰합니다.
-
포털의 왼쪽에서 리소스 그룹을 선택합니다.
-
리소스 그룹 블레이드에서 이전에 랩에서 만든 ManagedPlatform 리소스 그룹을 찾아 선택합니다.
-
관리 플랫폼 블레이드에서 이전에 랩에서 만든 imgweb*웹 어플을 선택합니다.
-
웹 어플 블레이드에서 찾아보기를 선택합니다.
-
갤러리의 이미지 목록을 관찰합니다.
-
Contoso 포토 갤러리 웹 페이지 상단에서 새 이미지 업로드 섹션을 찾아 다음 작업을 수행합니다.
-
찾아보기를 선택합니다.
-
열리는 파일 탐색기 대화 상자에서 Allfiles (F):\Allfiles\Labs\02\Starter\Images로 이동하여 blt.jpg 파일을 선택한 다음 열기를 선택합니다.
-
업로드를 선택합니다.
-
-
웹 페이지 상단에서 새 이미지 업로드 섹션을 찾아 다음 작업을 수행합니다.
-
찾아보기를 선택합니다.
-
열리는 파일 탐색기 대화 상자에서 Allfiles (F):\Allfiles\Labs\02\Starter\Images로 이동하여 sub.jpg 파일을 선택한 다음 열기를 선택합니다.
-
업로드를 선택합니다.
-
-
웹 페이지 상단에서 새 이미지 업로드 섹션을 찾아 다음 작업을 수행합니다.
-
찾아보기를 선택합니다.
-
열리는 파일 탐색기 대화 상자에서 Allfiles (F):\Allfiles\Labs\02\Starter\Images로 이동하여 burger.jpg 파일을 선택한 다음 열기를 선택합니다.
-
업로드를 선택합니다.
-
-
Contoso 포토 갤러리 웹 페이지에서 갤러리 이미지 목록이 새 이미지로 업데이트되었는지 확인합니다.
-
페이지 상단의 섬네일 목록을 관찰합니다. 미리 보기 이미지가 모두 생성될 때까지 1분마다 페이지를 새로 고칩니다.
복습
이 연습에서는 Azure Functions에서 컴퓨팅 집약적인 이미지 수정 및 크기 조정 작업을 수행하기 위해 백그라운드 처리 작업을 만들었습니다.
연습 4: 구독 정리
작업 1: Cloud Shell 열기
-
Azure Portal 상단에서 Cloud Shell 아이콘을 선택하여 새 셸 인스턴스를 엽니다.
-
Cloud Shell이 아직 구성되지 않은 경우 기본 설정을 사용하여 Bash용 셸을 구성합니다.
-
Cloud Shell 명령 프롬프트의 포털 하단에 다음 명령을 입력하고 Enter 키를 눌러 구독의 모든 리소스 그룹을 나열합니다.
az group list
- 다음 명령을 입력하고 Enter 키를 눌러 리소스 그룹을 삭제하는 데 사용할 수 있는 명령 목록을 봅니다.
az group delete --help
작업 2: 리소스 그룹 삭제
- 다음 명령을 입력하고 Enter 를 눌러 ManagedPlatform 리소스 그룹을 삭제합니다.
az group delete --name ManagedPlatform --no-wait --yes
- 포털 하단의 Cloud Shell 창을 닫습니다.
작업 3: 활성 애플리케이션 닫기
-
현재 실행 중인 Microsoft Edge 응용 프로그램을 닫습니다.
-
현재 실행 중인 Visual Studio Code 응용 프로그램을 닫습니다.
검토
이 연습에서는 이 랩에 사용된 리소스 그룹을 제거하여 구독을 정리했습니다.