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

如何在AsyncAPI文件中正确引用Confluent Schema Registry的Avro Schema

正确引用Confluent Schema Registry中Avro Schema的AsyncAPI语法

从错误日志能看到,你的URL出现了重复的https://前缀,这是Schema无法下载的直接原因。另外,直接在$ref的URL里嵌入Registry密钥的方式不仅不安全,还可能被AsyncAPI工具解析异常。

下面是两种正确的实现方式:

方式1:使用AsyncAPI安全配置(推荐)

通过定义安全方案处理认证,避免明文暴露密钥:

asyncapi: 2.6.0
info:
  title: Person Kafka API
  version: 1.0.0

# 定义Schema Registry的Basic Auth安全方案
securitySchemes:
  schemaRegistryBasicAuth:
    type: http
    scheme: basic

# 全局启用该安全认证
security:
  - schemaRegistryBasicAuth: []

channels:
  person:    
    publish: 
      message:
        name: personupload
        schemaFormat: 'application/vnd.apache.avro;version=1.9.0'                    
        payload:
          # 使用正确的Schema端点URL,无需在URL中嵌入密钥
          $ref: 'https://pkdx-rmu1p.eu-central-1.aws.confluent.cloud/subjects/person-value/versions/9/schema'

配置完成后,在VS Code的AsyncAPI插件设置里添加Registry的key和secret作为Basic Auth凭证,工具就能正常认证并下载Schema。

方式2:修正URL格式(仅本地测试用,不推荐)

如果只是临时测试,先修正URL的格式问题(去掉重复的https://):

channels:
  person:    
    publish: 
      message:
        name: personupload
        schemaFormat: 'application/vnd.apache.avro;version=1.9.0'                    
        payload:
          # 确保URL没有重复的协议前缀
          $ref: 'https://registryKey:registrySecret@pkdx-rmu1p.eu-central-1.aws.confluent.cloud/subjects/person-value/versions/9/schema'

这种方式会明文暴露密钥,存在安全风险,只适合本地临时验证使用。

额外提示

  • 确认schemaFormat设置正确,你当前的application/vnd.apache.avro;version=1.9.0是符合要求的。
  • 保持VS Code的AsyncAPI插件为最新版本,旧版本可能存在URL解析或认证的兼容性问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 05:45:13