提问者:小点点

如何将仅限 Azure Blob 的存储帐户与 Azure Functions 配合使用 - 尝试创建 Blob 快照


我正在尝试设置一个函数,以便在每次向Blob容器推送更改时对其进行快照。Azure Functions中有一些非常简单的功能可以做到这一点,但它仅适用于通用存储帐户。我正在尝试使用仅限blob的存储帐户来执行此操作。我对Azure很陌生,所以我可能完全错误,但我无法找到很多有用的信息。有什么方法可以做到这一点吗?


共2个答案

匿名用户

正如@joy wang提到的,Azure函数运行时需要一个通用存储帐户。

配置 AzureWebJobsStorage 和 AzureWebJobsDashboard 设置(Azure 门户中的 local.settings.json 或 Appsettings 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函数,可以指定另一个连接字符串,并在每次创建/更新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();
}

匿名用户

在Visual Studio中:

我曾尝试为名为<code>joyblobstorage

正如错误信息所示,Microsoft.Azure.WebJobs.Host:存储帐户“joyblobstorage”是不受支持的类型“Blob-Only/ZRS”。支持的类型为“常规用途”。

在门户中:

我尝试创建一个功能应用程序并使用现有存储,但它找不到我的blob only存储帐户。门户中的Azure功能设置不应允许我们选择仅blob存储帐户。请参阅屏幕截图。

结论:

无法为仅Blob存储创建快照。在官方留档中,您可以看到存储帐户要求。

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

此外,在应用程序设置参考中,您可以看到

AzureWebJobsStorage

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

AzureWebJobsDashboard

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

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