4

我正在尝试设置一个函数,以便在每次将更改推送到 blob 容器时对其进行快照。Azure Functions 中有一些非常简单的功能可以执行此操作,但它仅适用于通用存储帐户。我正在尝试使用仅限 blob 的存储帐户来执行此操作。我对 Azure 很陌生,所以我可能在处理这一切时都错了,但我找不到太多有用的信息。有没有办法做到这一点?

4

2 回答 2

3

正如@joy-wang 提到的,Azure Functions Runtime需要一个通用存储帐户

需要通用存储帐户来配置AzureWebJobsStorageAzureWebJobsDashboard设置(Azure 门户中的local.settings.jsonAppsettings Blade):

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "my general purpose storage account connection string",
    "AzureWebJobsDashboard": "my general purpose storage account connection string",
    "MyOtherStorageAccountConnectionstring": "my blob only storage connection string"
  }
}

如果要创建BlobTrigger Function,可以指定另一个连接字符串并在每次创建/更新 blob 时创建快照:

[FunctionName("Function1")]
public static async Task Run([BlobTrigger("test-container/{name}",
        Connection = "MyOtherStorageAccountConnectionstring")]CloudBlockBlob myBlob,
        string name, TraceWriter log)
{
    log.Info($"C# Blob trigger function Processed blob\n Name:{name}");
    await myBlob.CreateSnapshotAsync();
}
于 2018-05-09T01:24:02.513 回答
0

在 Visual Studio 中:

我试图为名为 的仅限 blob 的存储创建快照 ,失败了。我想你应该在屏幕截图中得到同样的错误。joyblobstorage

在此处输入图像描述

正如错误信息所说Microsoft.Azure.WebJobs.Host: Storage account 'joyblobstorage' is of unsupported type 'Blob-Only/ZRS'. Supported types are 'General Purpose'.

在门户中:

我尝试创建一个Function App使用现有的 Storage,但它找不到我的blob-only storage account。门户中的 Azure 函数设置不应允许我们选择仅 blob 的存储帐户。请参考截图。

在此处输入图像描述

结论

无法为仅Blob 的存储创建快照。在官方文档中,您可以看到Storage account requirements

在应用服务中创建函数应用时,必须创建或链接到支持 Blob、队列和表存储的通用Azure 存储帐户。

此外,在App settings reference中,您可以看到

AzureWebJobsStorage

Azure Functions 运行时将此存储帐户连接字符串用于除 HTTP 触发函数之外的所有函数。存储帐户必须是支持 Blob、队列和表的通用帐户。

AzureWebJobsDashboard

可选的存储帐户连接字符串,用于存储日志并将其显示在门户的“监视器”选项卡中。存储帐户必须是支持 Blob、队列和表的通用帐户。

这是反馈Azure 应用服务团队已经解释了存储帐户的要求,您可以参考它。

于 2018-05-08T02:43:40.370 回答