Azure函数正在处理blob中的所有文件

wj8zmpe1  于 2023-04-22  发布在  其他
关注(0)|答案(1)|浏览(148)

我试图触发一个webjob时,一个新的文件被放置在java中的blob,我已经开始使用blob触发azure函数,但不是处理新添加或更新的文件,而是处理blob中的所有文件。下面是代码片段

public class BlobTriggerFunction {
/**
 * This function will be invoked when a new or updated blob is detected at the specified path. The blob contents are provided as input to this function.
 */
@FunctionName("BlobTrigger-Java")
@StorageAccount("AzureWebJobsStorage")
public void run(
    @BlobTrigger(name = "content", path = "snowflake/assets_group/{name}", dataType = "binary") byte[] content,
    @BindingName("name") String name,
    final ExecutionContext context
) {
    context.getLogger().info("Java Blob trigger function processed a blob. Name: " + name + "\n  Size: " + content.length + " Bytes");
}

下面是正在处理所有文件

的控制台

y3bcpkx1

y3bcpkx11#

我已经开始使用blob触发器azure函数,但它不是处理新添加或更新的文件,而是处理blob中的所有文件。
Azure Functions运行时或Blob Storage SDK中可能存在导致函数处理容器中所有文件的错误。
尝试更新到最新版本的Azure Functions运行时或Blob Storage SDK,以查看是否解决了问题。
另外,创建一个新的blob触发器azure函数,并再次检查它是否仍在发生。因为,根据我的观察,它只会处理blob中新添加的文件。

  • 我已经在我的环境中尝试了相同的方法,并且可以处理容器中新添加的文件。*
    代码段:
import com.microsoft.azure.functions.annotation.*;
import com.microsoft.azure.functions.*;

public class BlobTriggerJava1 {
   
    @FunctionName("BlobTriggerJava1")
    @StorageAccount("AzureWebJobsStorage")
    public void run(
        @BlobTrigger(name = "content", path = "samples-workitems/access_files/{name}", dataType = "binary") byte[] content,
        @BindingName("name") String name,
        final ExecutionContext context
    ) {
        context.getLogger().info("Java Blob trigger function processed a blob. Name: " + name + "\n  Size: " + content.length + " Bytes");
    }
}
  • Blob中上传的文件 *:

  • 添加文件后控制台输出:*

  • 向现有容器(其中有文件)添加新文件后的输出:*

相关问题