У меня есть Spring Web Service, развернутая на Elastic Beanstalk. Я использую AWS CloudFormation для инфраструктуры и использую AWS CodePipeline для автоматического развертывания веб-службы от слияний до главной ветви.
Недавно я добавил интеграцию с 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 и хочу, чтобы этот проект использовал полностью автоматизированное развертывание. Пожалуйста, дайте мне знать, если это возможно, каков отраслевой стандарт для настройки веб-сервисов, и если я неправильно понимаю CodeDeploy или CloudFormation.