0

Azure 持久实体是 Microsoft Azure 函数提供的有状态组件。它们可以保存一个需要 JSON 序列化的状态,并将存储在可靠的存储中。

我的问题是:

  1. 实体的状态可以有多大?
  2. 实体的定价模型是什么?我是否可以依靠 Azure 门户报告的 GB-s 作为定价模型,或者实体使用的存储也将单独定价?
4

3 回答 3

1

JayakrishnaGunnam-MTs 定价答案对于正常功能是正确的,但天蓝色的持久实体/功能也按照正常的存储帐户成本计费,用于存储和事务到表和队列。https://docs.microsoft.com/en-us/azure/azure-functions/durable/durable-functions-billing

在我能找到的关于单个实体的最大大小的信息中,我能找到的唯一答案是将 blob 的大小作为限制。我无法在 DurableEntityContext 实现中找到另一个限制,但可能会遗漏一些东西。

更新:经过一些测试,似乎持久实体在表存储中存储了 < 64 kb。之后,它们将被移动到一个 blob 中。我只有一个大字符串的简单实体只能存储大约 50-100MB,但在 100 时它开始出现一些问题。有时我收到 OutOfMemoryException。(消费计划)

于 2021-06-16T11:17:32.913 回答
0
  1. 实体的存储大小限制与我们可以放入 Azure 表存储的数据量有关。我认为我们没有使用门槛。
  2. 根据定价模型,Azure 函数根据内存大小、执行时间和每月执行收费。

函数根据观察到的以千兆字节秒 (GB-s) 衡量的资源消耗进行计费。观察到的资源消耗是通过将平均内存大小(以 GB 为单位)乘以执行该函数所需的时间(以毫秒为单位)来计算的。函数使用的内存通过四舍五入到最接近的 128 MB 来测量,最大内存大小为 1,536 MB,执行时间通过四舍五入到最接近的 1 毫秒来计算。单个函数执行的最小执行时间和内存分别为 100 ms 和 128 mb。函数定价包括每月免费授予 400,000 GB-s。

定价计算器链接https://azure.microsoft.com/en-us/pricing/details/functions/

于 2021-06-16T03:52:20.690 回答
0

假设您将尝试读取持久实体(使用ReadEntityStateAsync<T>()),那么您可以将数据存储在持久实体中存在实际限制。

IDurableEntityClient文档ReadEntityStateAsync<T>()说:

Tries to read the current state of an entity. Returns default(<typeparamref name="T" />) if the entity does not
exist, or if the JSON-serialized state of the entity is larger than 16KB.

因此,建议根据您的应用程序仅存储您需要的少量数据,例如计数器、日期等。

于 2021-09-07T05:29:23.477 回答