어제 "Azure 컨테이너 앱에 Java Azure 함수 배포"라는 제목의 기사를 썼습니다.
해당 항목에서 Azure의 통합 관리 기능을 사용하는 것에 대해 언급했으며 이 문서의 의미와 이전 방법과의 차이점을 명확히 하고 싶습니다.
Azure 컨테이너 앱은 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 Container Apps가 통합되어 연결된 Azure Functions 관리 인터페이스가 있는 컨테이너 환경을 제공합니다.
일부 고객이 AKS(Azure Kubernetes Service)에서 Azure Functions 컨테이너를 운영하는 것으로 알고 있습니다. 이전에는 전용 관리 인터페이스가 부족했습니다. 그러나 Azure Container Apps에 배포하면 이제 AKS에서 작업을 관리하는 것과 비교하여 Azure Container Apps를 관리하는 단순성을 즐기면서 Azure Functions 관리를 사용할 수 있습니다.
Azure Container Apps에 Azure Functions를 배포하는 방법은 더욱 발전할 가능성이 높습니다. 이것이 어떻게 발전할지 기대됩니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3