azure - 是否有一个选项可以从 Azure 函数的部署中获取输出值处的事件网格触发器 url + 键?

标签 azure azure-devops azure-functions azure-rm-template azure-eventgrid

是否有一个选项可以从 Azure 函数的部署中获取输出值处的事件网格触发器 url + 键?

我们想要做的场景如下: - 我们通过 ARM 在 VSTS 版本中部署功能服务。 - 部署函数服务后,我们部署事件网格订阅。

谢谢, 什拉达·阿格拉瓦尔

最佳答案

是的,有一种方法可以使用 REST API 来获取函数访问代码。步骤如下:

  1. 假设函数名称为 EventGridTrigger2 和 run.csx:

    #r "Newtonsoft.Json"
    
    using Newtonsoft.Json;
    using Newtonsoft.Json.Linq;
    
    public static void Run(JObject eventGridEvent, TraceWriter log)
    {
        log.Info(eventGridEvent.ToString(Formatting.Indented));
    
    }
    

和 function.json 文件:

    {
        "bindings": [
        {
          "type": "eventGridTrigger",
          "name": "eventGridEvent",
          "direction": "in"
        }
       ],
       "disabled": false
    }

如您所见,上述绑定(bind)是无类型的,它将适用于任何输出架构,例如InputEventSchemaEventGridSchema(默认架构)和CloudEventV01Schema em>(修复一些错误后)。

  • 创建的订阅的destination属性如下所示:

    "destination": {
        "properties": {
          "endpointUrl": null,
          "endpointBaseUrl": "https://myFunctionApp.azurewebsites.net/admin/extensions/EventGridExtensionConfig"
        },
        "endpointType": "WebHook"
      },
    
  • 请注意,Azure EventGrid 触发器的完整订阅者 URL 具有以下格式,其中查询字符串包含用于将请求路由到正确函数的参数:

    https://{FunctionApp}.azurewebsites.net/admin/extensions/EventGridExtensionConfig?functionName={FunctionName}&code={masterKey}
    

    为了创建订阅者,我们必须使用包含查询字符串的完整订阅者Url。此时,唯一未知的值是 masterKey。

  • 要获取 Function App(主机)主 key ,我们必须使用管理 REST API 调用:

    https://management.azure.com/subscriptions/{mySubscriptionId}/resourceGroups/{myResGroup}/providers/Microsoft.Web/sites/{myFunctionApp}/functions/admin/masterkey?api-version=2016-08-01
    
  • 响应的格式如下:

        {
           "masterKey": "*************************************************"
        }
    

    请注意,此调用需要身份验证承载 token

    一旦我们有了 FunctionApp(主机)的主 key ,我们就可以将它用于该主机内的任何功能。

    关于azure - 是否有一个选项可以从 Azure 函数的部署中获取输出值处的事件网格触发器 url + 键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50367435/

    相关文章:

    azure - 如何使用 ARM 模板为 Azure 功能配置指定粘性槽设置

    azure - 我可以/应该将 Asp.Net Identity 与组织帐户一起使用吗?

    c# - Azure 移动服务中的同步冲突处理 : ad hoc vs sync handler

    c# - 处理 Azure 认知搜索中的单数和复数搜索词

    azure - 从 Visual Studio Online 部署到 azure 期间出错

    azure - 在 Azure Function App 中配置 Application Insights 的云角色名称

    sql-server - 使用 ADF Pipeline 中的自定义事件从 OnPrem SQL Server 复制到 DocumentDB

    rest - VSTS使用API​​在队列时间设置构建参数

    azure-devops - 在 azure devOps 中,如何在项目中复制仪表板

    python - Azure Function 对同一 Blob 存储事件多次触发