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

Micronaut 3集成Google Secret Manager初始化报错解决方案咨询

问题根因

该报错是版本不兼容导致:Micronaut 3.x的核心Bean初始化逻辑和2.x版本有差异,你沿用了适配2.x的micronaut-gcp 3.5.0版本,同时io.micronaut.library 2.0.4插件默认拉取的gRPC依赖和Secret Manager客户端要求的版本不匹配,才会触发getTransportChannel() called when needsExecutor() is true异常。

具体解决步骤

1. 修正依赖版本匹配

在Kotlin DSL的build.gradle.kts中显式指定适配Micronaut 3.0.1的micronaut-gcp版本,强制引入对应BOM对齐所有子依赖:

plugins {
    id("io.micronaut.library") version "2.0.4"
    // 其余原有插件保持不变
}

micronaut {
    version("3.0.1")
    // 显式导入适配Micronaut 3.x的gcp模块BOM
    importBom("io.micronaut.gcp:micronaut-gcp-bom:4.0.0")
    runtime("netty")
    testRuntime("junit5")
}

dependencies {
    implementation("io.micronaut.gcp:micronaut-gcp-secret-manager")
    // 其余原有依赖保持不变
}

2. 补全bootstrap.yml配置

Micronaut 3.x的Secret Manager模块需要显式开启开关,调整bootstrap.yml配置如下:

micronaut:
    config-client:
        enabled: true
gcp:
    secret-manager:
      enabled: true
      keys:
        - MY_SECRET

3. 本地测试适配

如果是本地运行测试,需要先通过gcloud命令获取默认身份凭证,确保有权限访问对应Google Cloud项目的Secret Manager:

gcloud auth application-default login

调整完成后重新运行测试,原有@Value注入密钥的原生逻辑即可正常运行,不需要使用环境变量注入的临时方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 10:48:02