어제 "Azure 컨테이너 앱에 Java Azure 함수 배포"라는 제목의 기사를 썼습니다.
해당 항목에서 Azure의 통합 관리 기능을 사용한다고 언급했는데 이 문서에서는 이것이 무엇을 의미하며 이전 방법과 어떻게 다른지 명확히 하고 싶습니다.
Azure Container Apps는 Azure의 컨테이너 실행 환경 중 하나이며, 이를 통해 모든 컨테이너화된 서비스를 실행할 수 있습니다. 이전에는 Azure Container Apps에서 Azure Functions를 실행하려면 다음 명령을 사용하여 인스턴스를 생성했습니다.
az containerapp create \ --name general-container-app \ --resource-group $RESOURCE_GROUP_NAME \ --environment $CONTAINER_ENVIRONMENT \ --registry-server $CONTAINER_REGISTRY_SERVER \ --image $CONTAINER_REGISTRY_SERVER/$C_IMAGE_NAME:$C_IMAGE_TAG \ --target-port 80 \ --ingress external \ --query properties.configuration.ingress.fqdn
명령을 실행하면 다음과 같은 메시지가 표시됩니다.
Container app created. Access your app at https://general-container-app.niceocean-********.eastus.azurecontainerapps.io/
그런 다음 컬 명령을 사용하여 Azure Functions 서비스에 연결할 수 있습니다.
curl https://general-container-app.niceocean-********.eastus.azurecontainerapps.io/api/httpexample?name=World
Azure 컨테이너 앱 환경에 액세스하면 일반 컨테이너 앱이 컨테이너 앱으로 생성되고 이 관리 인터페이스를 배포된 모든 컨테이너화된 애플리케이션에 사용할 수 있는 것을 볼 수 있습니다.
https://raw.githubusercontent.com/yoshioterada/Azure-Functions-Deploy-To-Azure-Container-Apps/main/images/ACA-Instance-for-Azure-Functions.png
새로운 방법을 사용하면 az Containerapp create 대신 az functionapp create 명령을 사용하여 Azure Container Apps에서 Azure Functions를 만들 수 있습니다.
az functionapp create \ --name $AZURE_FUNCTION_NAME \ --resource-group $RESOURCE_GROUP_NAME \ --environment $CONTAINER_ENVIRONMENT \ --storage-account $STORAGE_NAME \ --workload-profile-name "Consumption" \ --max-replicas 15 \ --min-replicas 1 \ --functions-version 4 \ --runtime java \ --image $CONTAINER_REGISTRY_SERVER/$C_IMAGE_NAME:$C_IMAGE_TAG \ --assign-identity
이 명령을 사용하면 Azure Functions가 Azure Container Apps에 생성되고 관리 인터페이스에 함수 앱임을 명확하게 표시합니다.
이제 Azure Functions를 전용 Azure Functions 관리 인터페이스를 통해 관리할 수 있어 다른 컨테이너 애플리케이션과 차별화됩니다.
그러나 Azure App Service에서 제공되는 관리 기능과 컨테이너 앱의 Azure Functions에서 사용할 수 있는 관리 기능에는 몇 가지 차이점이 있습니다. 예를 들어 진단 도구, 배포 기능 등과 같은 특정 기능을 사용하지 못할 수도 있습니다.
비교를 위해 Azure App Service에 배포된 Azure Functions의 관리 인터페이스는 다음과 같습니다.
App Service와 Azure Container Apps 간 관리 기능의 차이점은 다음과 같습니다.
- Diagnose and solve problems - Microsoft Defender for Cloud - Events (preview) - Log stream - Deployment - App Service plan - Development Tools - Monitoring - Support + troubleshooting
일부는 특정 기능이 부족하면 기능이 누락되었다고 생각할 수도 있습니다.
그러나 Azure Container Apps에 배포할 경우 운영 환경이 컨테이너 기반이므로 배포 및 관리 방법이 변경됩니다. Azure Functions 관리 인터페이스에 포함되지 않은 기능은 Azure Container Apps 인터페이스를 통해 별도로 관리해야 합니다.
az functionapp create 명령을 사용하여 Azure Container Apps에서 Azure Functions 인스턴스를 만들면 컨테이너 인스턴스를 수용하는 새 리소스 그룹이 자동으로 생성됩니다.
제 환경에서는 리소스 그룹 이름이 다음 규칙을 따릅니다.
$CONTAINER_ENVIRONMENT_FunctionApps_$UUID
지정된 $AZURE_FUNCTION_NAME 이름을 딴 Azure Container Apps 인스턴스가 생성된 것을 볼 수 있습니다.
이 인스턴스를 클릭하면 Azure Functions가 컨테이너 인스턴스로 실행되는 Azure Container Apps 관련 관리 인터페이스로 이동됩니다.
Azure Container Apps는 Azure App Service와 다른 CI/CD 및 배포 방법을 제공합니다. 또한 Dapr 및 Service Connector와 같이 컨테이너 수준에서 제공되는 기능을 활용할 수 있습니다.
以前,可以透過將 Azure Functions 容器化在容器執行環境中來執行 Azure Functions,但 Azure Functions 沒有專用的管理介面。
透過這種新方法,Azure Functions 和 Azure 容器應用程式已集成,提供具有關聯的 Azure Functions 管理介面的容器環境。
我知道有些客戶在 Azure Kubernetes 服務 (AKS) 上執行 Azure Functions 容器。以前,他們缺乏專門的管理介面。但是,透過部署到 Azure 容器應用程序,他們現在可以使用 Azure Functions 管理,同時享受與在 AKS 上管理操作相比管理 Azure 容器應用程式的簡單性。
將 Azure Functions 部署到 Azure 容器應用程式的方法可能會進一步發展。我期待看到事情如何發展。
위 내용은 Azure 컨테이너 앱에 Azure Functions를 배포하는 두 가지 방법 비교의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!