You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure函数Blob触发器中创建Blob快照并设置为Cool存储层?

实现Blob触发器自动创建快照并设置为Cool存储层

完全可以在Blob触发器中实现这个需求,核心是捕获创建快照后返回的快照对象,直接修改它的存储层属性即可。另外建议把同步阻塞的调用改成异步模式,避免线程问题。

以下是修正并补充完整的代码:

[FunctionName("CreateSnapshotAndCool")]
public static async Task 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($"Taking snapshot for blob: {name}");

    // 创建快照并获取对应的快照Blob实例
    var snapshotBlob = await myBlob.SnapshotAsync();
    
    // 将刚创建的快照设置为Cool存储层
    await snapshotBlob.SetStandardBlobTierAsync(StandardBlobTier.Cool);
    
    log.LogInformation($"Successfully created snapshot and set to Cool tier for blob: {name}");
}

关键说明:

  • SnapshotAsync()方法会直接返回新生成的快照对应的CloudBlockBlob对象,无需额外查询
  • SetStandardBlobTierAsync(StandardBlobTier.Cool)仅修改该快照的存储层,原Blob和存储账户的Hot层设置不受影响
  • 改用async/await替代.Wait(),避免线程阻塞和潜在的死锁风险

内容的提问来源于stack exchange,提问作者andrelange91

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 18:43:12