Azure功能成本 - 由功能触发的操作是否也算作功能执行时间?

时间:2017-11-23 09:04:32

标签: azure azure-functions

我正在尝试估算Azure功能的成本。我不清楚的一件事是如何测量函数的执行时间。 我的意思是这里的Azure功能使用一些绑定,例如Azure Cosmos DB绑定或文件存储绑定。

例如,我有一个带有outputBinding的node.js azure函数:

module.exports = function (context) {

  context.bindings.employeeDocument = JSON.stringify({ 
    id: context.bindings.myQueueItem.name + "-" + context.bindings.myQueueItem.employeeId,
    name: context.bindings.myQueueItem.name,
    employeeId: context.bindings.myQueueItem.employeeId,
    address: context.bindings.myQueueItem.address
  });

  context.done();
};

我们将输出绑定设置为属性“employeeDocument”,并在函数返回后将数据保存到DB中。 问题是:在上面的代码块之后会发生什么(保存到DB,可能在某个事务中,也许是DB保存所需的其他操作)是否也算作执行azure函数的时间? 换句话说,我们是否也支付了在我们离开功能块之后发生的事情,但是由函数触发了什么?

1 个答案:

答案 0 :(得分:1)

从“功能已启动”消息到您在日志中看到的“功能已完成”消息时,您需要付费。这包括处理输入和输出绑定的时间。为了估计您需要支付多少费用,您可以使用Azure监控仪表进行持续时间(这是跨时间,跨功能聚合的,因此不是非常精细)。如果您需要更精细的洞察力,请为您的功能应用启用App Insights,并使用duration表上的requests属性。