다음을 통해 공유


.NET Aspire Azure 함수 통합 기능 (미리 보기)

포함:호스팅 통합 포함 안 되는 Client

중요하다

.NET Aspire Azure Functions 통합은 현재 미리 보기로 제공되며 변경될 수 있습니다.

Azure Functions 코드를 적게 작성하고, 인프라를 적게 유지하고, 비용을 절감할 수 있는 서버리스 솔루션입니다. .NET Aspire Azure Functions 통합을 사용하면 앱 호스트의 일부로 Azure Functions .NET 프로젝트를 개발, 디버그 및 오케스트레이션할 수 있습니다.

필요한 Azure 도구를 설치한 것으로 예상됩니다.

지원되는 시나리오

.NET Aspire Azure Functions 통합에는 지원되는 몇 가지 주요 시나리오가 있습니다. 이 섹션에서는 시나리오를 간략하게 설명하고 각 방법의 구현과 관련된 세부 정보를 제공합니다.

지원되는 트리거

다음 표에서는 .NET Aspire 통합에서 Azure Functions에 대해 지원되는 트리거를 나열합니다.

트리거 속성 세부 정보
Azure Event Hubs 트리거 EventHubTrigger 📦 Aspire. 호스팅.Azure. EventHubs
Azure Service Bus 트리거 ServiceBusTrigger 📦 Aspire. 호스팅.Azure. ServiceBus
Azure 블록 저장소 트리거 BlobTrigger 📦 Aspire. 호스팅.Azure. 스토리지
Azure Storage Queues 트리거 QueueTrigger 📦 Aspire. 호스팅.Azure. 스토리지
HTTP 트리거 HttpTrigger 추가 리소스 종속성 없이 지원합니다.
타이머 트리거 TimerTrigger 추가 리소스 종속성 없이 지원되며 암시적 호스트 스토리지에 의존합니다.

중요하다

다른 Azure Functions 트리거 및 바인딩은 현재 .NET AspireAzure Functions 통합에서 지원되지 않습니다.

전개

현재 배포는 Microsoft.Azure.Functions.Worker.Sdk의 SDK 컨테이너 게시 함수를 사용하여 ACA(Azure Container Apps)의 컨테이너에만 가능합니다. 이 배포 방법론은 현재 KEDA 기반 자동 크기 조정을 지원하지 않습니다.

외부 HTTP 엔드포인트 구성

HTTP 트리거에 공개적으로 액세스할 수 있도록 하려면 AzureFunctionsProjectResourceWithExternalHttpEndpoints API를 호출합니다. 자세한 내용은 Azure Functions 리소스추가를 참조하세요.

Azure 함수 프로젝트 제약 조건

.NET Aspire Azure Functions 통합에는 다음과 같은 프로젝트 제약 조건이 있습니다.

다음과 같이 Azure Functions 프로젝트에 문제가 발생하는 경우:

프로젝트에 지정된 버전과 일치하는 함수 런타임을 사용할 수 없습니다.

Visual Studio에서 Azure Functions 도구의 업데이트를 시도해 보세요. 옵션 대화 상자를 열고 프로젝트 및 솔루션이동한 다음 Azure 함수선택합니다. 업데이트 확인 단추를 선택하여 최신 버전의 Azure Functions 도구가 있는지 확인합니다.

Visual Studio: 옵션 / 프로젝트 및 솔루션 / Azure 함수.

호스팅 통합

통합을 호스팅하는 Azure Functions는 Azure Functions 리소스를 AzureFunctionsProjectResource(ProjectResource하위 형식) 형식으로 모델화합니다. 이 형식 및 앱 호스트와 이를 추가할 수 있는 API에 액세스하려면, 프로젝트에 📦Aspire.Hosting.Azure.Functions NuGet 패키지를 설치하세요.

dotnet add package Aspire.Hosting.Azure.Functions --prerelease

자세한 내용은 dotnet add package 또는 manage package dependencies in .NET applications.

Azure Functions 리소스 추가

앱 호스트 프로젝트에서 builder 인스턴스에서 AddAzureFunctionsProject 호출하여 Azure Functions 리소스를 추가합니다.

var builder = DistributedApplication.CreateBuilder(args);

var functions = builder.AddAzureFunctionsProject<Projects.ExampleFunctions>("functions")
                       .WithExternalHttpEndpoints();

builder.AddProject<Projects.ExampleProject>()
       .WithReference(functions)
       .WaitFor(functions);

// After adding all resources, run the app...

.NET Aspire 앱 호스트에 Azure Functions 프로젝트 리소스를 추가하면, 앞의 예와 같이 다른 프로젝트 리소스에서 functions 리소스를 참조할 수 있습니다. WithReference 메서드는 ExampleProject에 있는 "functions"라는 연결을 구성합니다. Azure 리소스가 배포되었고 HTTP 트리거가 노출된 경우, WithExternalHttpEndpoints호출로 인해 해당 엔드포인트는 외부에 있게 됩니다. 자세한 내용은 참조 리소스참조하세요.

호스트 스토리지를 사용하여 Azure Functions 리소스 추가

Azure Functions 호스트에서 사용하는 기본 호스트 스토리지 계정을 수정하려면 Azure Functions 프로젝트 리소스에서 WithHostStorage 메서드를 호출합니다.

var builder = DistributedApplication.CreateBuilder(args);

var storage = builder.AddAzureStorage("storage")
                     .RunAsEmulator();

var functions = builder.AddAzureFunctionsProject<Projects.ExampleFunctions>("functions")
                       .WithHostStorage(storage);

builder.AddProject<Projects.ExampleProject>()
       .WithReference(functions)
       .WaitFor(functions);

// After adding all resources, run the app...

코드는 📦Aspire.Hosting.Azure.Storage NuGet 패키지에 의존하여 에뮬레이터로 실행되는 Azure Storage 리소스를 추가합니다. 그런 다음 storage 리소스가 WithHostStorage API에 전달되어 호스트 스토리지를 에뮬레이트된 리소스로 명시적으로 설정합니다.

메모

암시적 호스트 스토리지를 사용하지 않는 경우 배포된 인스턴스의 리소스에 StorageAccountContributor 역할을 수동으로 할당해야 합니다. 이 역할은 암시적으로 생성된 호스트 스토리지에 대해 자동으로 할당됩니다.

Azure Functions의 참조 리소스

다른 Azure 리소스를 Azure Functions 프로젝트에서 참조하려면, Azure Functions 프로젝트 리소스에 대한 WithReference 호출을 연결하고 참조할 리소스를 지정합니다.

var builder = DistributedApplication.CreateBuilder(args);

var storage = builder.AddAzureStorage("storage").RunAsEmulator();
var blobs = storage.AddBlobs("blobs");

builder.AddAzureFunctionsProject<Projects.ExampleFunctions>("functions")
       .WithHostStorage(storage)
       .WithReference(blobs);

builder.Build().Run();

앞의 코드는 앱 호스트에 Azure Storage 리소스를 추가하고 Azure Functions 프로젝트에서 이를 참조합니다. blobs 리소스는 storage 리소스에 추가된 다음 functions 리소스에서 참조됩니다. blobs 리소스에 연결하는 데 필요한 연결 정보는 Azure Functions 프로젝트에 자동으로 삽입됩니다. 이로 인해 프로젝트에서 blobs 리소스에 의존하는 BlobTrigger를 정의할 수 있습니다.

참고 항목