Как запустить скрипт оболочки при запуске экземпляра среды aws эластичного beanstalk
Я использую скрипт Terraform для создания среды aws эластичного beanstalk, мне нужно запустить скрипт оболочки при запуске экземпляра
Я уже попробовал следующее
resource "aws_elastic_beanstalk_environment" "Environment" {
name = "${var.ebs_env_name}"
application = "${var.ebs_app_name}"
---
---
---
setting = {
namespace = "aws:autoscaling:launchconfiguration"
name = "user_data"
value = "${file("user-data.sh")}"
}
}
Это ошибка
Ошибка применения плана:
1 ошибка (ы) произошла:
aws_elastic_beanstalk_environment.Environment: ConfigurationValidationException: исключение проверки конфигурации: недопустимая спецификация параметра (Пространство имен: 'aws: автоматическое масштабирование:launchconfiguration', OptionName: 'user_data'): неизвестный параметр конфигурации. код состояния: 400, идентификатор запроса: xxxxx-xxxxxx
Пожалуйста помоги
2 ответа
Спасибо за ответ, я нашел решение
Я создал папку.ebextensions и создал файл внутри папки с именем 99delayed_job.config (вы можете дать любое имя)
commands:
create_post_dir:
command: "mkdir /opt/elasticbeanstalk/hooks/appdeploy/pre"
ignoreErrors: true
files:
/opt/elasticbeanstalk/hooks/appdeploy/pre/99_restart_delayed_job.sh:
group: root
mode: "000755"
owner: root
content: |-
#!/usr/bin/env bash
<My shell script here>
A и заархивировал 'Dockerrun.aws.json' этот zip, который я отправляю на s3 и использовал для развертывания.
Работает нормально:)
Я не смог найти какую-либо информацию о сервисе AWS Elastic Beanstalk, в которой представлены средства для изменения user_data
в случаях. Однако вы можете настроить используемый AMI, чтобы вы могли использовать такой инструмент, как Packer, для создания собственного AMI, который включает user_data
в этом.