管理 Azure Functions 在 Azure Container Apps 中

你可以透過 Azure CLI 管理 Azure 容器應用程式中已部署的功能。 以下指令幫助你列出、檢查並與容器化環境中執行的函式互動。

備註

在處理多重修訂情境時,可以在指令中加入 --revision <REVISION_NAME> 參數來鎖定特定版本。

清單函式

查看您的容器應用程式中部署的所有函式:

# List all functions
az containerapp function list \
  --resource-group $RESOURCE_GROUP \
  --name $CONTAINERAPP_NAME

顯示功能細節

獲取特定功能的詳細資訊:

az containerapp function show \
  --resource-group $RESOURCE_GROUP \
  --name $CONTAINERAPP_NAME \
  --function-name <FUNCTIONS_APP_NAME>

監控函式調用

監控你的功能應用程式對於了解其效能並診斷問題至關重要。 以下指令說明如何透過 Azure CLI 取得函式網址、觸發調用,以及查看詳細的遙測與調用摘要。 在呼叫追蹤前,請先使用curl -X POST "fqdn/api/HttpExample"多次調用該函數。

  1. 若要檢視叫用追蹤,請取得函式叫用的詳細追蹤資訊:

    az containerapp function invocations traces \
      --name $CONTAINERAPP_NAME \
      --resource-group $RESOURCE_GROUP \
      --function-name <FUNCTIONS_APP_NAME> \
      --timespan 5h \
      --limit 3
    
  2. 查看祈禱摘要以檢視成功與失敗的祈禱。

    az containerapp function invocations summary \
      --name $CONTAINERAPP_NAME \
      --resource-group $RESOURCE_GROUP \
      --function-name <FUNCTIONS_APP_NAME> \
      --timespan 5h
    

管理函式金鑰

Azure Functions 使用 金鑰來進行認證和授權。 你可以管理以下不同類型的鑰匙:

  • 主機金鑰:存取應用程式中的任何功能
  • 主金鑰:提供管理權限
  • 系統金鑰:Azure 服務使用
  • 功能鍵:存取特定功能

以下指令會教你如何管理主機的金鑰。 要執行同一指令給特定的 Functions 應用程式,請在你的指令中加入該 --function-name <FUNCTIONS_APP_NAME> 參數。

列出金鑰

請使用以下指令列出在容器應用程式中執行的 Azure 函式的主機層級及函式專屬金鑰。

備註

至少要維持一個副本在運作,才能執行以下的金鑰管理指令。

az containerapp function keys list \
  --resource-group $RESOURCE_GROUP \
  --name $CONTAINERAPP_NAME \
  --key-type hostKey

顯示特定鍵

使用以下指令顯示你函式應用程式特定主機層金鑰的值:

az containerapp function keys show \
  --resource-group $RESOURCE_GROUP \
  --name $CONTAINERAPP_NAME \
  --key-name <KEY_NAME> \
  --key-type hostKey

設定一把鑰匙

請使用以下指令為你的函式應用程式設定特定的主機層級金鑰:

az containerapp function keys set \
  --resource-group $RESOURCE_GROUP \
  --name $CONTAINERAPP_NAME \
  --key-name <KEY_NAME> \
  --key-value <KEY_VALUE> \
  --key-type hostKey

Azure Key Vault 的金鑰管理

當你使用 Azure Key Vault 在容器應用程式上儲存 Azure Functions 的秘密時,金鑰產生的運作方式與傳統 Functions 主機不同。

預設情況:

  • Functions 主機在啟動時不會自動在 Key Vault 建立金鑰。

  • 函式主機會擷取並使用金鑰(如果金鑰庫中已存在金鑰)。

  • 函式主機即使沒有鍵也能順利啟動,鍵同步也正常完成。

因此,你的應用程式能正常執行,但主機層級的金鑰不會出現在 Key Vault 中,除非你手動建立它們。

手動產生鍵

要在 Azure Key Vault 中觸發金鑰建立,請使用以下 CLI 指令呼叫函式管理端點。

az containerapp function keys list \
 -n <CONTAINER_APP_NAME> \
 -g <RESOURCE_GROUP> \
 --key-type hostKey