gpt4 book ai didi

java - 在 GitLab CICD 中注入(inject) application.properties 值

转载 作者:行者123 更新时间:2023-12-05 09:08:44 25 4
gpt4 key购买 nike

目前我的技术堆栈是 Java、Spring Boot。

我正在使用 application-dev.properties 来保存 AWS 访问 key 和 key 。

在 application-dev.properties 中注入(inject)我拥有的 key :

#This property provide access key details
com.abc.sqs.accesskey = AWS_ACCESS_KEY
#This property provide secret key details
com.abc.sqs.secretkey = AWS_SECRET_KEY

现在从 GitLab CICD .gitlab-ci.yml 文件,当我尝试对应用程序 .jar 进行冒烟测试时,我有这样的东西(阶段是冒烟测试)-

smoke test:
stage: smoke-test
image: openjdk:12-alpine
before_script:
- apk add --update curl && rm -rf /var/cache/apk/*
script:
- ls -la ./app-service/target/
- sed -i "s/AWS_ACCESS_KEY/$AWS_ACCESS_KEY_ID/" ./app-service/src/main/resources/application-dev.properties
- sed -i "s/AWS_SECRET_KEY/$AWS_SECRET_ACCESS_KEY/" ./app-service/src/main/resources/application-dev.properties
- java -jar -Dspring.profiles.active=dev ./app-service/target/app-service.jar &
- sleep 30
- curl http://localhost:5000/actuator/health | grep "UP"
- curl -i -X POST http://localhost:5000/actuator/shutdown

在这里,我从 GitLab CICD 环境变量中引入 $AWS_ACCESS_KEY_ID 和 $AWS_SECRET_ACCESS_KEY 并尝试替换属性文件的 AWS_ACCESS_KEY 和 AWS_SECRET_KEY。但是这样我就无法在服务器启动期间注入(inject)。

在尝试测试 jar 时出现以下异常:

Caused by: com.amazonaws.services.sqs.model.AmazonSQSException: Thesecurity token included in the request is invalid. (Service:AmazonSQS; Status Code: 403; Error Code: InvalidClientTokenId;

需要您的建议。提前致谢。

最佳答案

如果您想覆盖属性文件中的属性,而不是使用 sed,您可以简单地声明一个环境变量或一个具有相似名称的 JVM 变量。它将优先于文件中声明的属性。例如:

com.abc.sqs.accesskey = AWS_ACCESS_KEY

可以用一个 JVM 变量变成:

java -jar -Dspring.profiles.active=dev -Dcom.abc.sqs.accesskey=$AWS_ACCESS_KEY_ID ./app-service/target/app-service.jar

这将覆盖属性文件的值,这将在应用程序启动时可用。

关于java - 在 GitLab CICD 中注入(inject) application.properties 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63114703/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com