如何在Azure Functions中使用Azure blob-only存储帐户 - 尝试创建blob快照

时间:2018-05-07 20:42:14

标签: azure azure-functions snapshot azure-blob-storage azure-storage-account

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

2 个答案:

答案 0 :(得分:3)

正如@ joy-wang所提到的,Azure Functions Runtime需要general purpose storage account

在Azure门户中配置 AzureWebJobsStorage AzureWebJobsDashboard 设置(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();
}

答案 1 :(得分:0)

在Visual Studio中:

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

enter image description here

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

在门户网站中

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

enter image description here

<强>结论

仅限blob的存储创建快照 不可能。在官方文档中,您可以看到Storage account requirements

  

在App Service中创建功能应用时,必须创建或链接到支持Blob,队列和表存储的通用 Azure存储帐户。

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

  

<强> AzureWebJobsStorage

     

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

     

<强> AzureWebJobsDashboard

     

可选的存储帐户连接字符串,用于存储日志并在门户的“监控”选项卡中显示它们。存储帐户必须通用,支持blob,队列和表格。

以下是Feedback Azure应用服务团队已解释存储帐户的要求,您可以参考它。