昨天,我寫了一篇題為「在 Azure 容器應用程式上部署 Java Azure Function」的文章。
在那篇文章中,我提到使用 Azure 的整合管理功能,我想澄清這意味著什麼以及它與本文中先前的方法有何不同。
Azure 容器應用程式是 Azure 的容器執行環境之一,可讓你執行任何容器化服務。以前,如果您想在 Azure 容器應用程式中執行 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/
然後您可以使用curl 指令連接到您的Azure Functions 服務:
curl https://general-container-app.niceocean-********.eastus.azurecontainerapps.io/api/httpexample?name=World
存取 Azure 容器應用程式環境後,您會看到 General-container-app 被建立為容器應用程序,並且此管理介面可用於任何已部署的容器化應用程式。
https://raw.githubusercontent.com/yoshioterada/Azure-Functions-Deploy-To-Azure-Container-Apps/main/images/ACA-Instance-for-Azure-Functions.png
新方法可讓您使用 az functionapp create 指令而不是 az containerapp create 在 Azure 容器應用程式中建立 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中創建,並且管理介面將清楚地顯示它是一個Function App。
這意味著現在可以透過專用的 Azure Functions 管理介面來管理 Azure Functions,這使其與其他容器應用程式不同。
但是,Azure 應用程式服務中提供的管理功能與容器應用程式上的 Azure Functions 提供的管理功能之間存在一些差異。例如,診斷工具、部署功能等某些功能可能無法使用。
為了進行比較,這裡是部署在 Azure 應用程式服務上的 Azure Functions 的管理介面。
應用程式服務和 Azure 容器應用程式之間的管理功能差異可能包括:
- 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 容器應用程式介面單獨管理。
使用 az functionapp create 指令在 Azure 容器應用程式上建立 Azure Functions 執行個體時,會自動建立一個新的資源組來容納該容器執行個體。
在我的環境中,資源組名稱遵循以下約定:
$CONTAINER_ENVIRONMENT_FunctionApps_$UUID
您將看到已產生以您指定的 $AZURE_FUNCTION_NAME 命名的 Azure 容器應用程式實例。
當您按一下此執行個體時,您將被導向到特定於 Azure 容器應用程式的管理介面,其中 Azure Functions 會作為容器執行個體執行。
Azure 容器應用程式提供了與 Azure 應用程式服務不同的 CI/CD 和部署方法。它還允許在容器層級提供的功能,例如可以利用的 Dapr 和 Service Connector。
以前は、Azure Functions をコンテナー実行環境でコンテナ化することで実行できましたが、Azure Functions 専用の管理インターフェイスがありませんでした。
この新しい方法により、Azure Functions と Azure Container Apps が統合され、関連する Azure Functions 管理インターフェイスを備えたコンテナー環境が提供されます。
一部のお客様は Azure Kubernetes Service (AKS) 上で Azure Functions Container を運用していると思います。以前は、専用の管理インターフェイスがありませんでした。ただし、Azure Container Apps にデプロイすることで、AKS での操作の管理と比較して Azure Container Apps の管理の簡素化を享受しながら、Azure Functions 管理を使用できるようになります。
Azure Functions を Azure Container Apps にデプロイする方法は、さらに進化する可能性があります。これがどのように発展するのか楽しみです。
以上是將 Azure Functions 部署到 Azure 容器應用程式的兩種方法的比較的詳細內容。更多資訊請關注PHP中文網其他相關文章!