繁体   English   中英

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

[英]How can I configure application.properties using AWS CodeDeploy and/or CloudFormation?

我在Elastic Beanstalk上部署了Spring Web Service。 我将AWS CloudFormation用于基础架构,并使用AWS CodePipeline将Web服务从合并自动部署到master分支。

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

这是我的application.properties

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。

通常,将访问和密钥包含在任何类型的文件中或部署自动化中都是不好的做法。

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM