我正在尝试估算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函数的时间? 换句话说,我们是否也支付了在我们离开功能块之后发生的事情,但是由函数触发了什么?
答案 0 :(得分:1)
从“功能已启动”消息到您在日志中看到的“功能已完成”消息时,您需要付费。这包括处理输入和输出绑定的时间。为了估计您需要支付多少费用,您可以使用Azure监控仪表进行持续时间(这是跨时间,跨功能聚合的,因此不是非常精细)。如果您需要更精细的洞察力,请为您的功能应用启用App Insights,并使用duration
表上的requests
属性。