다음을 통해 공유


.NET Aspire 프로젝트를 Azure Container Apps에 배포

.NET .NET Aspire 프로젝트는 컨테이너화된 환경에서 실행되도록 설계되었습니다. Azure Container Apps 서버리스 플랫폼에서 마이크로 서비스 및 컨테이너화된 애플리케이션을 실행할 수 있는 완전히 관리되는 환경입니다. 이 문서에서는 새 .NET Aspire 솔루션을 만들고 Azure Container Apps(Azure Developer CLI)를 사용하여 Microsoft azd 배포하는 방법을 안내합니다. 다음 작업을 완료하는 방법을 알아봅니다.

  • Azure 리소스 그룹과 컨테이너 레지스트리를 프로비전하세요.
  • .NET Aspire Container Registry에서 Azure 프로젝트를 컨테이너 이미지로 게시
  • Redis에서 Azure 컨테이너 할당
  • Azure Container Apps 환경에 앱 배포
  • 애플리케이션 콘솔 로그를 보고 애플리케이션 문제 해결

필수 구성 요소

.NET .NET Aspire작업하려면 다음을 로컬에 설치해야 합니다.

자세한 내용은 .NET.NET Aspire 설정 및 도구.NET.NET Aspire SDK참조하세요.

이 자습서 대신, 보다 심층적인 가이드로 .NET Aspire 프로젝트를 Azure Container Apps에 배포하기 위해 azd(심층 가이드)를 참조하세요.

.NET 사용하여 .NET Aspireazd 프로젝트 배포

ACA(.NET Aspire 및 Azure Container Apps)을 사용하면 .NET를 통해 클라우드 네이티브 앱을 구축하기 위한 뛰어난 호스팅 시나리오를 제공합니다. 우리는 Azure Developer CLI의 개발 및 azd으로의 배포를 마찰 없이 만들기 위해 .NET Aspire (Azure)에 몇 가지 훌륭한 새로운 기능을 구축했습니다. 배포에 대한 세분화된 수준의 제어가 필요한 경우에도 Azure CLI 및/또는 Bicep 옵션을 사용할 수 있습니다. 그러나 새 프로젝트의 경우 클라우드에 배포된 새 마이크로 서비스 토폴로지의 성공 경로를 더 쉽게 찾을 수 없습니다.

.NET .NET Aspire 프로젝트 만들기

시작점으로 이 문서에서는 .NET 템플릿에서 .NET Aspire 프로젝트를 만들었다고 가정합니다. 자세한 내용은 빠른 시작: 첫 번째 .NET.NET Aspire 프로젝트빌드를 참조하세요.

리소스 이름 지정

새 Azure 리소스를 만들 때는 명명 요구 사항을 따르는 것이 중요합니다. Azure Container Apps경우 이름은 2~32자여야 하며 소문자, 숫자 및 하이픈으로 구성됩니다. 이름은 문자로 시작하고 영숫자로 끝나야 합니다.

자세한 내용은 리소스에 대한 명명 규칙 및 제한을 참조하세요.

Azure Developer CLI을(를) 설치하세요

azd 설치하는 프로세스는 운영 체제에 따라 다르지만 winget, brew, apt또는 curl통해서도 널리 사용할 수 있습니다. azd을 설치하려면 Azure Developer CLI설치를 참조하세요.

템플릿 초기화

  1. 새 터미널 창을 열고 cd 솔루션의 .NET 프로젝트 디렉터리로 이동합니다 .NET Aspire.

  2. azd init 명령을 실행하여 로컬 디렉터리 구조를 검사하고 앱 유형을 결정하는 azd사용하여 프로젝트를 초기화합니다.

    azd init
    

    azd init 명령에 대한 자세한 내용은 azd init참조하세요.

  3. 두 개의 앱 초기화 옵션이 표시되면 현재 디렉터리에서 코드를 사용하도록 선택합니다azd.

    ? How do you want to initialize your app?  [Use arrows to move, type to filter]
    > Use code in the current directory
      Select a template
    
  4. 디렉터리를 검사한 후 azd 올바른 .NET.NET AspireAppHost 프로젝트를 찾았는지 확인하라는 메시지를 표시합니다. 확인을 선택하고 앱 옵션을 계속 초기화합니다.

    Detected services:
    
      .NET (Aspire)
      Detected in: D:\source\repos\AspireSample\AspireSample.AppHost\AspireSample.AppHost.csproj
    
    azd will generate the files necessary to host your app on Azure using Azure Container Apps.
    
    ? Select an option  [Use arrows to move, type to filter]
    > Confirm and continue initializing my app
      Cancel and exit
    
  5. 환경 이름을 입력합니다. 이 이름은 Azure 프로비전된 리소스의 이름 지정과 devprod같은 다양한 환경 관리를 위해 사용됩니다.

    Generating files to run your app on Azure:
    
      (✓) Done: Generating ./azure.yaml
      (✓) Done: Generating ./next-steps.md
    
    SUCCESS: Your app is ready for the cloud!
    You can provision and deploy your app to Azure by running the azd up command in this directory. For more information on configuring your app, see ./next-steps.md
    

azd 여러 파일을 생성하고 작업 디렉터리에 배치합니다. 이러한 파일은 다음과 같습니다.

  • .yaml: 앱의 서비스(예: AppHost 프로젝트 )를 설명하고 리소스에 매핑합니다.
  • .azure/config.json: azd에게 현재 활성 환경이 무엇인지 알리는 구성 파일입니다.
  • .azure/aspireazddev/.env: 환경별 설정을 포함합니다.

템플릿 배포

  1. azd 템플릿이 초기화되면 프로비저닝 및 배포 프로세스를 AppHost 프로젝트 디렉터리에서 단일 명령으로 실행하여 azd up사용할 수 있습니다.

    azd up
    
  2. 사용 가능한 옵션 목록에서 배포하려는 구독을 선택합니다.

    Select an Azure Subscription to use:  [Use arrows to move, type to filter]
      1. SampleSubscription01 (xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx)
      2. SamepleSubscription02 (xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx)
    
  3. 사용 가능한 옵션 목록에서 사용할 원하는 Azure 위치를 선택합니다.

    Select an Azure location to use:  [Use arrows to move, type to filter]
      42. (US) Central US (centralus)
      43. (US) East US (eastus)
    > 44. (US) East US 2 (eastus2)
      46. (US) North Central US (northcentralus)
      47. (US) South Central US (southcentralus)
    

선택한 후 azd 프로비전 및 배포 프로세스를 실행합니다.

By default, a service can only be reached from inside the Azure Container Apps environment it is running in. Selecting a service here will also allow it to be reached from the Internet.
? Select which services to expose to the Internet webfrontend
? Select an Azure Subscription to use:  1. <YOUR SUBSCRIPTION>
? Select an Azure location to use: 1. <YOUR LOCATION>

Packaging services (azd package)


Provisioning Azure resources (azd provision)
Provisioning Azure resources can take some time.

Subscription: <YOUR SUBSCRIPTION>
Location: <YOUR LOCATION>

  You can view detailed progress in the Azure Portal:
  <LINK TO DEPLOYMENT>

  (✓) Done: Resource group: <YOUR RESOURCE GROUP>
  (✓) Done: Container Registry: <ID>
  (✓) Done: Log Analytics workspace: <ID>
  (✓) Done: Container Apps Environment: <ID>

SUCCESS: Your application was provisioned in Azure in 1 minute 13 seconds.
You can view the resources created under the resource group <YOUR RESOURCE GROUP> in Azure Portal:
<LINK TO RESOURCE GROUP OVERVIEW>

Deploying services (azd deploy)

  (✓) Done: Deploying service apiservice
  - Endpoint: <YOUR UNIQUE apiservice APP>.azurecontainerapps.io/

  (✓) Done: Deploying service webfrontend
  - Endpoint: <YOUR UNIQUE webfrontend APP>.azurecontainerapps.io/

Aspire Dashboard: <LINK TO DEPLOYED .NET ASPIRE DASHBOARD>

SUCCESS: Your up workflow to provision and deploy to Azure completed in 3 minutes 50 seconds.

azd up 명령은 단일 단계에서 리소스를 프로비전하고 배포하는 다음 개별 azd 명령에 대한 래퍼 역할을 합니다.

  1. azd package: 앱 프로젝트 및 해당 종속성이 컨테이너로 패키지됩니다.
  2. azd provision: 앱에 필요한 Azure 리소스가 프로비전됩니다.
  3. azd deploy: 프로젝트는 컨테이너로 Azure Container Registry 인스턴스로 푸시된 후, 코드가 호스팅될 Azure Container Apps의 새로운 수정 버전을 만드는 데 사용됩니다.

azd up 단계가 완료되면 Azure앱을 사용할 수 있으며 Azure 포털을 열어 리소스를 탐색할 수 있습니다. azd 배포된 앱에 직접 액세스하기 위한 URL도 출력합니다.

배포된 앱 테스트

이제 앱이 프로비전되고 배포되었으므로 Azure 포털로 이동할 수 있습니다. 앱을 배포한 리소스 그룹에 세 개의 컨테이너 앱 및 기타 리소스가 표시됩니다.

.NET Aspire 포털에 있는 Azure 프로젝트의 리소스 그룹 스크린샷

web 컨테이너 앱을 클릭하여 포털에서 엽니다.

.NET Aspire 포털에서 Azure 프로젝트의 프런트 엔드 스크린샷

애플리케이션 URL 링크를 클릭하여 브라우저에서 프론트엔드를 엽니다.

브라우저에서 .NET.NET Aspire 프로젝트의 프런트 엔드 스크린샷

탐색 모음에서 "날씨" 노드를 클릭하면 프런트 엔드 web 컨테이너 앱이 apiservice 컨테이너 앱을 호출하여 데이터를 가져옵니다. 프런트 엔드의 출력은 redis 컨테이너 앱과 .NET AspireRedis 출력 캐싱 통합를 사용하여 캐시됩니다. 프런트 엔드를 몇 번 새로 고치면 날씨 데이터가 캐시되는 것을 알 수 있습니다. 몇 초 후에 업데이트됩니다.

.NET .NET Aspire 대시보드 배포

호스트된 앱의 일부로 .NET.NET Aspire 대시보드를 배포할 수 있습니다. 이 기능은 이제 완전히 지원됩니다. 배포할 때 azd 출력 로그는 배포된 대시보드에 추가 URL을 출력합니다.

azd monitor 실행하여 대시보드를 자동으로 시작할 수 있습니다.

azd monitor

리소스 정리

만든 Azure 리소스가 더 이상 필요하지 않은 경우 다음 Azure CLI 명령을 실행하여 리소스 그룹을 삭제합니다. 리소스 그룹을 삭제하면 리소스 그룹에 포함된 리소스도 삭제됩니다.

az group delete --name <your-resource-group-name>

자세한 내용은 리소스 정리에 대해 Azure를 참조하세요.