gpt4 book ai didi

azure - Azure 函数绑定(bind)是否按顺序执行?

转载 作者:行者123 更新时间:2023-12-03 01:45:29 24 4
gpt4 key购买 nike

在给定的 Azure 函数中,我可以有 1 个或多个输出绑定(bind)。例如,我可能有一个 blob 存储输出(将文件 blob 写入存储)和一个队列输出(将消息推送到队列中)。

例如,如果我有这个非常简单的 Azure 函数(用 Node.js 编写)...

module.exports = function (context, req) {
context.log('START: Multi-output function.');

context.bindings.outputBlob = "blob-contents";
context.bindings.outputQueueItem = "{'message': 'hello!'}";

context.done();
};

...在 function.json 中设置输出绑定(bind)如下...

{
"bindings": [
{
"authLevel": "function",
"type": "httpTrigger",
"direction": "in",
"name": "req"
},
{
"type": "http",
"direction": "out",
"name": "res"
},
{
"type": "blob",
"name": "outputBlob",
"path": "outcontainer/{rand-guid}",
"connection": "AzureWebJobsDashboard",
"direction": "out"
},
{
"type": "queue",
"name": "outputQueueItem",
"queueName": "outqueue",
"connection": "AzureWebJobsDashboard",
"direction": "out"
}
],
"disabled": false
}

...两个输出绑定(bind)何时实际触发,以及按什么顺序?

对于问题的何时部分:

  1. 它们是否在函数设置输出绑定(bind)的地方触发? (例如设置 context.bindings.outputBlob 的代码行)
  2. 它们会在 context.done() 时/之后触发吗?

对于问题的顺序部分:

  • 它们是否按照代码中看到的顺序触发?
  • 它们是否按照在 function.json 中看到的顺序触发?
  • 最佳答案

    输出绑定(bind)在函数执行完成后触发 - 在 context.done() 之后。

    您在代码中设置它们的顺序不会影响绑定(bind)执行。

    如果可以的话,将实际执行顺序视为实现细节并且不要依赖它。话虽如此,如果我没有记错的话,实际的顺序是:

    • 按照function.json的顺序执行所有非队列绑定(bind)
    • 然后,按照function.json的顺序执行所有队列绑定(bind)

    更新:基于this issuethis issue我的结论是,目前无法保证订单。

    关于azure - Azure 函数绑定(bind)是否按顺序执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47388918/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com