gcloud秘密在spring属性中未解析

oiopk7p5  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(352)

热释光;dr:gcp机密不会在引导文件中解析,但是sqlstarter在引导文件中需要示例连接名和数据库名
我正在尝试将gcpsecretmanager合并到一个spring引导应用程序中,该应用程序运行在googleappengine上,并使用gcpsql。
然而 ${sm:// 前缀似乎在引导时没有解析。
作为参考,这是我的pom的一部分(我正在使用com.google.cloud dependencies)并启用spring概要文件“gcp”

<parent>
    <artifactId>spring-boot-starter-parent</artifactId>
    <groupId>org.springframework.boot</groupId>
    <relativePath/>
    <version>2.4.2</version> <!-- lookup parent from repository -->
  </parent>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>com.google.cloud</groupId>
        <artifactId>spring-cloud-gcp-dependencies</artifactId>
        <version>2.0.1</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

<!-- ... -->
    <!-- cloud -->
    <dependency>
      <groupId>com.google.cloud</groupId>
      <artifactId>spring-cloud-gcp-starter</artifactId>
    </dependency>
    <dependency>
      <groupId>com.google.cloud</groupId>
      <artifactId>spring-cloud-gcp-starter-sql-postgresql</artifactId>
    </dependency>
    <dependency>
      <groupId>com.google.cloud</groupId>
      <artifactId>spring-cloud-gcp-starter-secretmanager</artifactId>
    </dependency>

在我的引导程序中(例如)

spring:
  cloud:
    gcp:
      sql:
        database-name: ${sm://some-fancy-db-secret}
        instance-connection-name: ${sm://some-cool-connection-name}

在部署时,我得到一个异常,说明需要定义一个数据库名称。
如果我填写普通属性,它就可以正常工作。即使是 ${sm://db-username} 在我的身体里工作 application-gcp.yml 文件。
当我从引导文件中移动属性时,它也会失败。它似乎需要连接时,引导(我对此有点茫然)
没有什么花哨的多项目在进行,是的,秘密是存在的。
我有一种感觉,我错过了一些愚蠢的东西在这里或有一个版本不匹配的地方(代码实验室似乎没有提到任何特别的东西。)
我也检查了这个问题。然而,提议的答案似乎不再有效。这个 com.google.cloud.spring.autoconfigure.secretmanager.GcpSecretManagerProperties 甚至不包含前缀属性,而且它在我的普通属性文件中工作得很好。

相关问题