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

EventGrid触发器的Azure Spring Cloud Java Function复制Blob抛空指针异常

问题解决思路
  • 首先定位空指针的具体来源
    在TestblobHandler的run方法开头先增加日志输出,分别打印event和content是否为null:
    要是event为null,说明EventGrid触发器反序列化自定义EventSchema类失败,排查方向:
    1. 确认EventSchema类的字段结构、字段名(大小写敏感)和你接收的Event Grid事件 payload 完全匹配,尤其是嵌套的data字段必须有对应的get/set方法,且data下存在url属性
    2. 确认你使用的Event Grid事件架构和类结构匹配:如果是CloudEvent 1.0架构,字段结构和默认Event Grid架构不同,需要调整EventSchema的定义
      要是content为null,说明BlobInput绑定失败,排查方向:
    3. 确认@StorageAccount("AzureWebJobsStorage")对应的连接字符串对源容器container1有读取权限
    4. 确认host.json中的Azure Functions扩展包版本为最新稳定版,旧版本的BlobInput绑定不支持直接通过完整URL绑定Blob
    5. 可以先把path写死为一个存在的Blob路径测试,排除绑定表达式{data.url}的解析问题
  • 检查业务代码的变量初始化
    你TestBlobUpload类中的storageConnectionStringDest变量如果是从配置读取,必须添加@Value注解完成注入,未初始化的变量会直接为空,导致CloudStorageAccount.parse调用时抛出空指针异常
  • 优化实现方案
    无需将Blob全量读取到内存字节数组中,可以直接将@BlobInput的绑定类型改为CloudBlockBlob,拿到源Blob对象后调用startCopy方法直接完成跨容器复制,避免大文件场景下的内存溢出问题,同时性能更高

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 13:15:03