首页 > 解决方案 > 是否可以创建具有特定文件名的 blob 触发 azure 函数?

问题描述

我正在使用 C# 创建触发器,所以我没有明确的 function.json 文件

   [FunctionName("Function1")]
        public static void Run([BlobTrigger("dev/{name}", Connection = "AzureWebJobsStorage")]Stream myBlob, string name, ILogger log)
        {
            log.LogInformation($"C# Blob trigger function Processed blob\n Name:{name} \n Size: {myBlob.Length} Bytes");

            if (name=="Test1.xlsx")
            {
                // Any Task that I need to do
            }      

        }

这对我来说成功运行,但我不确定这是正确的方法,这种方法会导致为每个文件触发函数,然后检查它是否符合条件。

标签: c#azureazure-functionsazure-blob-storage

解决方案


是的,您可以将某个文件与该文件绑定,它将过滤所有文件,只有指定名称的文件才会触发该功能。下面是我的测试:

{
  "bindings": [
    {
      "name": "myBlob",
      "type": "blobTrigger",
      "direction": "in",
      "path": "test/abc123.txt",
      "connection": "AzureWebJobsStorage"
    }
  ]
}

我上传了一些文件文件,只有这个会触发该功能,所以如果您还有其他错误或问题,请提供更多详细信息或分享您的代码。

在此处输入图像描述

更新

[FunctionName("Function1")]
        public static void Run([BlobTrigger("test/123.txt", Connection = "AzureWebJobsStorage")]Stream myBlob, ILogger log)
        {
            log.LogInformation($"C# Blob trigger function Processed blob \n Size: {myBlob.Length} Bytes");
        }

推荐阅读