首頁  >  文章  >  Java  >  將 Azure Functions 部署到 Azure 容器應用程式的兩種方法的比較

將 Azure Functions 部署到 Azure 容器應用程式的兩種方法的比較

王林
王林原創
2024-09-11 06:43:061167瀏覽

昨天,我寫了一篇題為「在 Azure 容器應用程式上部署 Java Azure Function」的文章。

在那篇文章中,我提到使用 Azure 的整合管理功能,我想澄清這意味著什麼以及它與本文中先前的方法有何不同。

舊方法:使用 az containerapp create 創建

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 被建立為容器應用程序,並且此管理介面可用於任何已部署的容器化應用程式。

Comparison of Two Methods for Deploying Azure Functions to Azure Container Apps

https://raw.githubusercontent.com/yoshioterada/Azure-Functions-Deploy-To-Azure-Container-Apps/main/images/ACA-Instance-for-Azure-Functions.png

新方法:使用 az functionapp create 建立

新方法可讓您使用 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。

Comparison of Two Methods for Deploying Azure Functions to Azure Container Apps

這意味著現在可以透過專用的 Azure Functions 管理介面來管理 Azure Functions,這使其與其他容器應用程式不同。

但是,Azure 應用程式服務中提供的管理功能與容器應用程式上的 Azure Functions 提供的管理功能之間存在一些差異。例如,診斷工具、部署功能等某些功能可能無法使用。

Comparison of Two Methods for Deploying Azure Functions to Azure Container Apps

參考:應用程式服務上的 Azure Functions(入口網站)

為了進行比較,這裡是部署在 Azure 應用程式服務上的 Azure Functions 的管理介面。

Comparison of Two Methods for Deploying Azure Functions to Azure Container Apps

應用程式服務和 Azure 容器應用程式之間的管理功能差異可能包括:

Comparison of Two Methods for Deploying Azure Functions to 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 容器應用程式介面單獨管理。

Azure 容器應用程式中容器的管理

使用 az functionapp create 指令在 Azure 容器應用程式上建立 Azure Functions 執行個體時,會自動建立一個新的資源組來容納該容器執行個體。

Comparison of Two Methods for Deploying Azure Functions to Azure Container Apps

在我的環境中,資源組名稱遵循以下約定:

$CONTAINER_ENVIRONMENT_FunctionApps_$UUID

您將看到已產生以您指定的 $AZURE_FUNCTION_NAME 命名的 Azure 容器應用程式實例。

當您按一下此執行個體時,您將被導向到特定於 Azure 容器應用程式的管理介面,其中 Azure Functions 會作為容器執行個體執行。

Comparison of Two Methods for Deploying Azure Functions to Azure Container Apps

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn