【问题标题】:Automatically trigger the snapshot when file has modified in blob storage当文件在 Blob 存储中被修改时自动触发快照
【发布时间】:2021-01-07 14:58:34
【问题描述】:

我使用 Azure blob 存储来备份数据。备份由从 CosmosDB 中提取的 Azure 数据工厂完成。存储备份数据的结构是:数据存储帐户->容器->我每天保存的 JSON 文件。但是,备份只是覆盖,我将无法下载以前的数据。

我意识到有一个 创建快照 按钮,当我选择 JSON 文件(Blob)并单击该按钮时,我可以获得 JSON 文件的快照,如何生成快照当这些 JSON 文件的时间戳发生更改时自动?换句话说,一旦数据工厂打包了今天的数据,就会创建今天的快照。

【问题讨论】:

  • 您好,如果您的回答对您有帮助,您可以采纳吗?谢谢。

标签: azure-blob-storage snapshot


【解决方案1】:

您可以创建一个azure function with blob trigger。如果文件被修改,函数会被执行,你应该把快照逻辑放在函数中。

示例代码如下(注意:对于第一个参数myBlob,将类型改为CloudBlockBlob):

public static class Function1
{
    [FunctionName("Function1")]
    public static void Run([BlobTrigger("images/{name}", Connection = "AzureWebJobsStorage")]CloudBlockBlob myBlob, string name, ILogger log)
    {
        log.LogInformation($"C# Blob trigger function Processed blob\n Name:{name}");
        log.LogInformation("take snapshots for blob: " + name);
        myBlob.SnapshotAsync().Wait();
    }
}

这是local.settings.json中的设置:

{
    "IsEncrypted": false,
    "Values": {
        "AzureWebJobsStorage": "connection string of the azure storage account",
        "FUNCTIONS_WORKER_RUNTIME": "dotnet"
    }
}

【讨论】:

  • 有没有不写代码的设置? aka,这可以手动设置吗?
  • @SLN,不,没有通过 UI 进行的此类设置。我们只能通过代码来实现。
  • @SLN,因为这是修改文件时拍摄快照的唯一方法,您能接受它作为答案吗?谢谢。
猜你喜欢
  • 2020-09-15
  • 1970-01-01
  • 2021-07-15
  • 2015-06-30
  • 2017-06-28
  • 2019-10-08
  • 1970-01-01
  • 1970-01-01
  • 2021-08-08
相关资源
最近更新 更多