我尝试设置一个函数,以便在每次向其推送更改时获取blob容器的快照。 Azure Functions中有一些非常简单的功能可以执行此操作,但它仅适用于通用存储帐户。我尝试使用仅限blob的存储帐户执行此操作。我对Azure非常陌生,所以我可能会接近这一切,但我还没有找到很多有用的信息。有没有办法做到这一点?
答案 0 :(得分:3)
正如@ joy-wang所提到的,Azure Functions Runtime需要general purpose storage account。
在Azure门户中配置 AzureWebJobsStorage 和 AzureWebJobsDashboard 设置(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 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();
}
答案 1 :(得分:0)
在Visual Studio中:
我尝试为 blob-only存储创建快照
名为joyblobstorage
,但失败了。我猜你应该在屏幕截图中得到同样的错误。
错误信息显示为Microsoft.Azure.WebJobs.Host: Storage account 'joyblobstorage' is of unsupported type 'Blob-Only/ZRS'. Supported types are 'General Purpose'.
在门户网站中
我尝试创建功能应用并使用现有存储,但找不到我的仅限blob的存储帐户。门户网站中的Azure功能设置不应允许我们选择仅限blob的存储帐户。请参阅屏幕截图。
<强>结论强>:
为仅限blob的存储创建快照 不可能。在官方文档中,您可以看到Storage account requirements。
在App Service中创建功能应用时,必须创建或链接到支持Blob,队列和表存储的通用 Azure存储帐户。
此外,在App settings reference中,您可以看到
<强> AzureWebJobsStorage 强>
Azure Functions运行时将此存储帐户连接字符串用于除HTTP触发的函数之外的所有函数。存储帐户必须是通用,支持blob,队列和表格。
<强> AzureWebJobsDashboard 强>
可选的存储帐户连接字符串,用于存储日志并在门户的“监控”选项卡中显示它们。存储帐户必须是通用,支持blob,队列和表格。
以下是Feedback, Azure应用服务团队已解释存储帐户的要求,您可以参考它。