You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Visual Studio开发的只读Azure Function创建Function Key

解决只读状态下Azure Function Key的创建问题

我完全懂你现在的麻烦:本地用Visual Studio开发Azure Function导致门户里的Function管理变成只读,现在要把通用webhook连到Event Grid,还得处理SubscriptionValidationEvent,要求webhook URL里的code必须是Function Key,试过Kudu的PowerShell方法又没奏效,还没法用预发布的EventGrid绑定。下面给你两个可行的方案:

方案一:用Azure CLI直接创建Function Key

这是官方支持的稳定方法,步骤很清晰:

  1. 先登录Azure CLI:
    az login
    
  2. 如果你有多个Azure订阅,切换到Function App所在的订阅:
    az account set --subscription <你的订阅ID/名称>
    
  3. 为目标Function生成密钥,把占位符换成你的实际信息:
    az functionapp function keys set --name <Function App名称> --resource-group <资源组名称> --function-name <具体Function的名称> --key-name <自定义密钥名,比如eventgrid-validation> --key-value <可选:自己指定密钥值,不填会自动生成安全的随机值>
    
    执行完这条命令后,CLI会返回生成的密钥,直接把它放到webhook URL的code参数里就行。

方案二:手动在Kudu中创建secrets文件

如果CLI访问受限,也可以通过Kudu的文件系统手动添加密钥:

  1. 打开你的Function App的Kudu控制台:https://<Function App名称>.scm.azurewebsites.net,用发布凭据登录进去。
  2. 导航到site/wwwroot/<你的Function所在文件夹>/secrets路径——如果secrets文件夹不存在,自己新建一个。
  3. 创建一个名为<你的Function名称>.json的文件,内容按下面的格式写:
    {
      "keys": {
        "eventgrid-validation": "<你自己设置的复杂密钥字符串>"
      },
      "lastModified": "<当前UTC时间,比如2024-05-20T14:20:00Z>"
    }
    
  4. 保存文件后,Function App会自动加载这个密钥,你就可以用它来配置Event Grid的webhook了。

小提醒

  • 手动设置密钥时,尽量用复杂的字符串(至少16位,混合大小写、数字和符号),避免安全风险。
  • 验证完成后,这个密钥要保留好,后续Event Grid推送事件都会用它来校验请求的合法性。

内容的提问来源于stack exchange,提问作者ThatCreole

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 04:26:35