로컬 Azure 설정
.NET .NET Aspire 강력한 앱 호스트 모델을 사용하여 로컬 클라우드 네이티브 앱 개발을 간소화합니다. 이 모델을 사용하면 Azure것과 동일한 구성 및 서비스를 사용하여 앱을 로컬로 실행할 수 있습니다. 이 문서에서는 .NET.NET Aspire 앱 호스트통해 로컬 개발 환경에서 Azure 리소스를 프로비전하는 방법을 알아봅니다.
메모
명확히 설명하자면, 리소스는 Azure에서 제공되지만, 제공 과정은 로컬 개발 환경에서 시작됩니다. 로컬 개발 환경을 최적화하려면 사용 가능한 경우 에뮬레이터 또는 컨테이너를 사용하는 것이 좋습니다. 자세한 내용은 일반적인 개발자 환경참조하세요.
요구 사항
이 문서에서는 Azure 계정 및 구독이 있다고 가정합니다. Azure 계정이 없는 경우 Azure 무료 계정을 생성할 수 있습니다. 프로비전 기능이 제대로 작동하려면 Azure에서 인증을 받아야 합니다. Azure Developer CLI 설치되어 있는지 확인합니다. 또한 프로비전 논리가 사용자 대신 리소스를 만들 수 있도록 몇 가지 구성 값을 제공해야 합니다.
앱 호스트 프로비저닝 API
앱 호스트는 Azure 리소스를 표현하는 API 집합을 제공합니다. 이러한 API는 .NET AspireAzure 호스팅 라이브러리에서 확장 메서드로 사용할 수 있으며 IDistributedApplicationBuilder 인터페이스를 확장합니다. 앱 호스트에 Azure 리소스를 추가하면 적절한 프로비저닝 기능이 암시적으로 추가됩니다. 즉, 프로비전 API를 직접 호출할 필요가 없습니다.
앱 호스트가 시작되면 다음 프로비저닝 논리가 실행됩니다.
-
Azure
구성 섹션의 유효성이 검사됩니다. - 대시보드 및 앱 호스트 출력이 유효하지 않은 경우 누락된 항목에 대한 힌트를 제공합니다. 자세한 내용은 누락된 구성 값 힌트참조하세요.
- 유효한 Azure 리소스가 조건부로 프로비전되는 경우:
- 지정된 리소스에 대한 Azure 배포가 존재하지 않을 경우, 배포로 생성된 후 구성됩니다.
- 해당 배포의 구성은 필요에 따라 리소스 프로비저닝만 지원하도록 체크섬이 부여됩니다.
기존 Azure 리소스 사용
앱 호스트는 Azure 리소스의 프로비저닝을 자동으로 관리합니다. 앱 호스트가 처음 실행될 때 앱 호스트에 지정된 리소스를 프로비전합니다. 앱 호스트 구성이 변경되지 않는 한 후속 실행은 리소스를 다시 프로비전하지 않습니다.
앱 호스트 외부에서 Azure 리소스를 이미 프로비전하고 사용하려는 경우 다음 Azure Key Vault 예제와 같이 AddConnectionString API를 사용하여 연결 문자열을 제공할 수 있습니다.
// Service registration
var secrets = builder.ExecutionContext.IsPublishMode
? builder.AddAzureKeyVault("secrets")
: builder.AddConnectionString("secrets");
// Service consumption
builder.AddProject<Projects.ExampleProject>()
.WithReference(secrets)
앞의 코드 조각은 앱 호스트에 Azure Key Vault 추가하는 방법을 보여줍니다.
AddAzureKeyVault API는 앱 호스트에 Azure Key Vault 추가하는 데 사용됩니다.
AddConnectionString
API는 앱 호스트에 연결 문자열을 제공하는 데 사용됩니다.
또는 일부 Azure 리소스의 경우 RunAsEmulator
API를 사용하여 에뮬레이터로 실행하도록 옵트인할 수 있습니다. 이 API는 Azure Cosmos DB 및 Azure Storage 통합에 사용할 수 있습니다. 예를 들어 AzureAzure Cosmos DB 에뮬레이터로 실행하려면 다음 코드 조각을 사용할 수 있습니다.
var cosmos = builder.AddAzureCosmosDB("cosmos")
.RunAsEmulator();
RunAsEmulator API는 NoSQL API와 함께 Azure Cosmos DB 에뮬레이터를 사용하여 Azure Cosmos DB 리소스를 에뮬레이트하도록 구성합니다.
.NET Aspire Azure 호스팅 통합
앱 호스트에서 Azure 리소스를 사용하는 경우, .NET AspireAzure 통합중 하나 이상을 사용하고 있는 것입니다. 이러한 호스팅 라이브러리는 IDistributedApplicationBuilder 인터페이스에 확장 메서드를 제공하여 앱 호스트에 Azure 리소스를 추가합니다.
구성
로컬 개발 환경에서 Azure 리소스를 활용하는 경우 필요한 구성 값을 제공해야 합니다. 구성 값은 Azure
섹션 아래에 지정됩니다.
-
SubscriptionId
: Azure 구독 ID입니다. -
AllowResourceGroupCreation
: 새 리소스 그룹을 만들지 여부를 나타내는 부울 값입니다. -
ResourceGroup
: 사용할 리소스 그룹의 이름입니다. -
Location
: 사용할 Azure 지역입니다.
다음 예를 통해 appsettings.json 구성에 대해 살펴보십시오.
{
"Azure": {
"SubscriptionId": "<Your subscription id>",
"AllowResourceGroupCreation": true,
"ResourceGroup": "<Valid resource group name>",
"Location": "<Valid Azure location>"
}
}
중요하다
이러한 값을 앱 비밀로 저장하는 것이 좋습니다. 자세한 내용은 앱 비밀 관리
필요한 값을 구성한 후 로컬 개발 환경에서 Azure 리소스 프로비저닝을 시작할 수 있습니다.
Azure 프로비전 자격 증명 저장소
.NET Aspire 앱 호스트는 Azure 리소스의 인증 및 권한 부여를 위해 자격 증명 저장소를 사용합니다. 사용자의 구독에 따라, 다중 테넌트 프로비저닝 시나리오에서 올바른 자격 증명 저장소가 필요할 수 있습니다.
📦 Aspire.호스팅. NuGet 패키지를 설치하고, Azure 리소스에 의존하는Azure 앱 호스트인 경우, 기본 Azure 자격 증명 저장소는 DefaultAzureCredential에 의존합니다. 이 동작을 변경하려면 다음 예제와 같이 appsettings.json 파일에서 자격 증명 저장소 값을 설정할 수 있습니다.
{
"Azure": {
"CredentialSource": "AzureCli"
}
}
모든 구성 기반 설정마찬가지로 사용자 비밀 또는 환경 변수같은 대체 공급자를 사용하여 구성할 수 있습니다.
Azure:CredentialSource
값은 다음 값 중 하나로 설정할 수 있습니다.
-
AzureCli
: AzureCliCredential위임합니다. -
AzurePowerShell
는 AzurePowerShellCredential에 위임합니다. -
VisualStudio
: VisualStudioCredential에게 위임합니다. -
VisualStudioCode
:VisualStudioCodeCredential에게 위임합니다. -
AzureDeveloperCli
가 AzureDeveloperCliCredential에게 위임합니다. -
InteractiveBrowser
이(가) InteractiveBrowserCredential에 위임합니다.
팁
도구 지원
Visual Studio에서 연결 서비스를 사용하여 기본 Azure 프로비저닝 설정을 구성할 수 있습니다. 앱 호스트 프로젝트를 선택하고 연결된 서비스 노드를 마우스 오른쪽 단추로 클릭하고 Azure 리소스 프로비저닝 설정선택합니다.
그러면 다음 스크린샷과 같이 Azure 프로비저닝 설정을 구성할 수 있는 대화 상자가 열립니다.
누락된 구성 값 힌트
Azure
구성 섹션이 없거나 누락된 값이 있거나 잘못된 경우 .NET.NET Aspire 대시보드 유용한 힌트를 제공합니다. 예를 들어, SubscriptionId
구성 값이 누락되어 Azure Key Vault 리소스를 사용하려고 하는 앱 호스트를 고려해 보십시오.
리소스 페이지는 상태누락된 구독 구성나타냅니다.
또한 콘솔 로그도 이 정보를 표시할 있습니다. 다음 스크린샷을 고려하세요.
알려진 제한 사항
이러한 방식으로 Azure 리소스를 프로비전한 후에는 .NET AspireAzure 리소스를 삭제하는 기본 제공 메커니즘을 제공하지 않으므로 Azure Portal에서 리소스를 수동으로 정리해야 합니다. 이 작업을 수행하는 가장 쉬운 방법은 구성된 리소스 그룹을 삭제하는 것입니다. 이 작업은 Azure 포털 또는 Azure CLI를 사용하여 수행할 수 있습니다.
az group delete --name <ResourceGroupName>
<ResourceGroupName>
삭제하려는 리소스 그룹의 이름으로 바꿉니다. 자세한 내용은 az group delete을 참조하세요.
.NET Aspire