gpt4 book ai didi

spring - 如何使用 AWS CodeDeploy 和/或 CloudFormation 配置 application.properties?

转载 作者:行者123 更新时间:2023-12-03 07:24:52 28 4
gpt4 key购买 nike

我在 Elastic Beanstalk 上部署了 Spring Web 服务。我使用 AWS CloudFormation 作为基础设施,并使用 AWS CodePipeline 自动将 Web 服务从合并部署到主分支。

最近我添加了 DynamoDB 集成,并且需要在 application.properties 中配置一些内容。我尝试使用环境变量来配置 application.properties,但在尝试从 CodeDeploy 设置环境变量时遇到了困难。

这是我的应用程序属性

amazon.dynamodb.endpoint=${DYNAMODB_ENDPOINT:http://localhost:8000}
amazon.dynamodb.region=${AWS_REGION:default-region}
amazon.dynamodb.accesskey=${DYNAMODB_ACCESS_KEY:TestAccessKey}
amazon.dynamodb.secretkey=${DYNAMODB_SECRET_KEY:TestSecretKey}

spring.data.dynamodb.entity2ddl.auto = create-drop
spring.data.dynamodb.entity2ddl.gsiProjectionType = ALL
spring.data.dynamodb.entity2ddl.readCapacity = 10
spring.data.dynamodb.entity2ddl.writeCapacity = 1

默认值适用于我运行本地 DynamoDB 实例并且它们工作正常的情况。但是,我不知道如何让 CodeDeploy 为我设置环境变量,我也考虑过让 CloudFormation 设置环境变量,但也找不到如何做到这一点。我尝试在 EC2 实例中手动设置环境变量,但这不起作用,也不是我正在寻找的解决方案,因为我正在使用 EB 并且希望该项目使用完全自动化的部署。请告诉我这是否可行、配置 Web 服务的行业标准是什么以及我是否误解了 CodeDeploy 或 CloudFormation。

最佳答案

一般来说,在任何类型的文件或部署自动化中包含访问 key 和 key 都是不好的做法。

部署应用程序的实例应附加一个实例配置文件(即 IAM 角色),该配置文件应具有您所需的适当 DynamoDB 权限。

如果您附加了该实例配置文件,SDK 应该能够自动检测需要与之通信的凭据、区域和端点。

您可能需要更新创建 DynamoDB 客户端的方式以仅使用默认值。

要以 AWS 开发工具包可以检索这些属性的方式设置您的开发计算机,而无需显式将它们放入属性文件中,您可以运行 AWS CLI 的 aws configure 命令,该命令应设置您的开发计算机~/.aws/ 文件夹,其中包含有关您的区域和在开发计算机上使用的凭据的信息。

关于spring - 如何使用 AWS CodeDeploy 和/或 CloudFormation 配置 application.properties?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56069298/

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