azure - 在 Azure Functions 中,使用 Bash 脚本,是否可以从队列消息触发器访问属性?

标签 azure azure-functions

使用 Azure Functions,我想使用出队消息中的属性作为我的 Bash 脚本中的参数。这可能吗?如果是这样,如何?似乎有关 Bash azure 函数的文档有点稀少。

我看过:

  • This documentation关于绑定(bind)到自定义输入属性。它提供了 C#/Javascript 示例,但没有 bash 示例。
  • 还有这个 GitHub sample具有类似的批处理功能。
    但是,在尝试将类似的概念应用于我的函数之后,我得出了结论。

  • 这是我的设置:

    函数.json
    {
      "bindings": [
        {
          "name": "inputMessage",
          "type": "queueTrigger",
          "direction": "in",
          "queueName": "some-queue",
          "connection": "AzureWebJobsStorage"
        }
      ],
      "disabled": false
    }
    

    运行文件
    echo "My name is $FirstName $LastName"
    

    示例队列消息
    { 
        "FirstName": "John",
        "LastName": "Doe"
    }
    

    实际结果
    My name is:
    

    我所希望的
    My name is: John Doe
    

    关于如何实现这一点的任何想法,或者通过更新 Functions.jsonRun.sh ?

    最佳答案

    对于 bash 队列触发器队列消息以字符串形式返回,您需要在 run.sh 中自己解析 JSON。注意 bash 队列触发器是实验性的。我认为实现 bash json 解析器并不容易,因为你不能安装像 jq 这样的第三方库。在功能应用沙箱中。

    您可以使用其他语言(JS/C#/Powershell)轻松地从队列消息中提取 json 对象

    关于azure - 在 Azure Functions 中,使用 Bash 脚本,是否可以从队列消息触发器访问属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45644589/

    相关文章:

    c# - 如何在 Azure Function App 运行时更新应用程序设置中的单个值

    java - Azure Android Java 客户端

    azure-functions - 如何从 Azure 函数访问 Azure 存储 "(Classic)"

    c# - 如何在Azure中从一个csx文件调用函数到另一个csx文件?

    azure-functions - 有没有办法告诉 azure 函数的最后发布日期?

    azure - 在 Azure 存储上打开我的静态网站时,我会看到一个下载屏幕

    java - java.lang.NoClassDefFoundError:AmqpProviderFactory.createProvider中的org/apache/qpid/proton/engine/Collector

    node.js - 尝试连接调试器时 Azure Functions 崩溃,导致 nodemon 永久重新加载

    Azure CosmosDB - 将集合中的所有文档下载到本地目录

    azure - 以编程方式停止 azure 函数