我正在尝试设置一个函数,以便在每次向Blob容器推送更改时对其进行快照。Azure Functions中有一些非常简单的功能可以做到这一点,但它仅适用于通用存储帐户。我正在尝试使用仅限blob的存储帐户来执行此操作。我对Azure很陌生,所以我可能完全错误,但我无法找到很多有用的信息。有什么方法可以做到这一点吗?
正如@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应用程序服务团队已经解释了存储帐户的要求,您可以参考。