当前位置: 首页 > 知识库问答 >
问题:

Cloud Run、Secret Manager和Spring Boot

解晟
2023-03-14

我想全部加载。从GCP Secret Manager到我的Spring Boot应用程序的属性文件。

Secret在Cloud Run(整个.properties文件,路径为secrets/Secret.properties)中“装载为卷”,但我无法使用Spring将其加载到Spring Boot。配置。导入

我在尝试:

spring.config.import=optional:configtree:/secrets/
spring.config.import=optional:classpath:/secrets/secret.properties
spring.config.import=optional:/secrets/secret.properties

但什么都不管用。值在Spring Boot应用程序中不可见。(java.lang.IllegalArgumentException:无法解析值“${x}”中的占位符“x”)将文件放在资源类路径上时,一切正常。

共有1个答案

金谭三
2023-03-14

这里的设置,我已经测试和工作(不要忘记授予正确的权限)

起重臂配置

...
           <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>com.google.cloud.tools</groupId>
                <artifactId>jib-maven-plugin</artifactId>
                <version>3.1.1</version>
                <configuration>
                    <container>
                        <args>--spring.config.location=file:///secret/my.properties</args>
                    </container>
                    <to>
                        <image>gcr.io/<PROJECT_ID>/springboot</image>
                        <credHelper>gcr</credHelper>
                    </to>
                </configuration>
            </plugin>
...

我的云运行部署

gcloud beta run deploy --image=gcr.io/<PROJECT_ID>/springboot \
 --region=us-central1 --allow-unauthenticated --platform=managed \
 --set-secrets=/secret/my.properties=projects/<PROJECT_Number>/secrets/springboot:1 \
secret-springboot
 类似资料:
  • SecretManager 是密码密码共享工具,允许你存储和分享秘密。

  • 我使用GCP秘密管理器来存储密码使用google-Cloud的客户端库(Java)。客户端库期望环境变量中gcp项目的服务号键(json)文件路径。我可以为单个项目这样做,但是当我试图访问多个GCP项目的秘密管理器时,我不知道如何在环境变量中为不同的项目设置密钥。需要在环境中设置键的帮助,或者有一种方法可以使用java代码设置它。 我正在使用这个maven依赖项 https://cloud.goo

  • 我正在尝试使用 https://github.com/spring-projects/spring-security-oauth2-boot 使用本教程:https://docs.spring.io/spring-security-oauth2-boot/docs/current-SNAPSHOT/reference/htmlsingle/ SpringBoot应用程序 服务器初始化器 用户详细信

  • 当我只保留一个主键--无论是CFO_ID还是LAST_UPDATE_DTS,并完全删除Idclass时,它工作得非常好。这让我认为idclass有问题,但我找不到任何问题。有人能帮忙吗?

  • 我正在寻找集成Hazelcast到我的应用程序... 我的要求是将所有数据加载到缓存并从缓存中提取。。 我有两个选择。 1) Hazelcast IMap 2)因为我使用的是Spring启动,所以我可以使用(@Cacheable/@CacheEvict)。 我能得到一些建议吗... 提前谢谢你。。

  • 我有教育问题: 存在具有windows server 2003(AD)的虚拟机,其中包含用户及其密码。已建立与机器的连接(ip:192.168.56.101:389)。 Web应用程序的目的是使用户能够在AD中更改他的密码。 问题:无法配置到windws server 2003的连接。 我从这个教程开始https://spring.io/guides/gs/authenticating-ldap/

  • 我知道这个问题以前在stackoverflow上被问过。然而,我还没有找到一个答案来实际测试服务,例如使用Postman。 我已经按照留档和我的服务是几乎相同的描述留档: 当我尝试使用Postman加热我的服务时,我得到了以下错误: org.springframework.web.multipart.多部分异常:当前请求不是多部分请求 在《邮递员》杂志上,我得到了如下回报 问题是:是否可以使用邮递

  • 问题内容: 关于它们有很多传说。我想知道真相。以下两个示例之间有什么区别? 问题答案: 不确定从何处获得传说,但: 提交按钮 与: IE6将在标记之间提交此按钮的所有文本,其他浏览器将仅提交值。使用可使您在按钮的设计上享有更大的布局自由度。从各种意图和目的看,它乍一看似乎很棒,但是各种浏览器怪癖使它有时很难使用。 在您的示例中,IE6将发送到服务器,而其他大多数浏览器将不发送任何内容。要使其跨浏览