你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。

在 Azure 容器应用中管理 Azure Functions

可以使用 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 检索函数 URL、触发调用以及查看详细的遥测和调用摘要。 调用跟踪之前,请使用 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 Functions 的主机级和特定于函数的密钥。

注释

请至少运行一个副本,以便运行以下密钥管理命令。

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 时不会自动在密钥保管库中创建密钥。

  • Functions 主机检索和使用密钥(如果密钥保管库中已存在密钥)。

  • 即使没有密钥,Functions 主机也会成功启动,并且密钥同步正常完成。

因此,应用程序运行正确,但主机级密钥不会显示在 Key Vault 中,除非手动创建它们。

手动生成密钥

若要在 Azure Key Vault 中触发密钥创建,请使用以下 CLI 命令调用 Functions 管理终结点。

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