Маркировка является наиболее широко поддерживаемым методом.
Однако в каждом типе среды есть более встроенные методы.
В ElasticBeanstalk вы можете установить свойства среды для среды приложения, которые можно прочитать изWeb.config appSettings в приложении .NET.
ElasticBeanstalk> [Имя приложения]> [Имя среды]> Конфигурация> Программное обеспечение
Добавить свойство приложения с помощью Name
и Value
, например:
- Name = ReleaseEnvironment;Значение = Staging
- Name = EnvironmentSecretKey;Значение = SomeSecureKeyThatGainsAccessToASecureParameterStore
Когда Elastic Beanstalk развертывает Приложение в экземплярах, оно добавляет его в файл Web.config в разделе <appSettings>
.
Поэтому в Приложении используетсяследующий код, чтобы прочитать значение:
var environmentName = ConfigurationManager.AppSettings["ReleaseEnvironment"];
Затем вы можете получить свойства вашей среды из вашего хранилища параметров, используя это значение.Таким образом, вы также можете передать множество значений и избежать хранилища параметров, если оно более уместно.
Другие языки, развернутые в EB, также поддерживаются с помощью переменных среды: https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/environments-cfg-softwaresettings.html
В Lambda вы можете установить переменные среды в конфигурации и прочитать их в лямбда-контейнере: https://docs.aws.amazon.com/lambda/latest/dg/env_variables.html
В ECS / Fargate вы можете передать средусвойств и считайте их в контейнере, используя description-task-definition .
В EC2 вам необходимо использовать службу метаданных для чтения пользовательских данных.данные:
user_data=`curl http://169.254.169.254/latest/user-data/`
См .: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html