微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 blob 存储中修改文件时自动触发快照

如何解决在 blob 存储中修改文件时自动触发快照

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

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

解决方法

您可以创建一个 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"
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。