Amazon Elastic Beanstalk - Изменение часового пояса
Я запускаю экземпляр EC2 с помощью AWS Elastic Beanstalk. К сожалению, у него неправильный часовой пояс - это на 2 часа раньше, чем должно быть, потому что часовой пояс установлен на UTC. Мне нужен GMT + 1.
Есть ли способ настроить конфигурацию .ebextensions, чтобы заставить экземпляр EC2 использовать правильный часовой пояс?
Ответы
Ответ 1
Да, вы можете.
Просто создайте файл /.ebextensions/00-set-timezone.config со следующим содержимым
commands:
set_time_zone:
command: ln -f -s /usr/share/zoneinfo/Australia/Sydney /etc/localtime
Это предполагает, что вы используете образ Amazon Linux AMI по умолчанию. Если вы используете какой-либо другой дистрибутив Linux, просто измените команду на то, что требуется для установки часового пояса в этом Linux.
Ответ 2
Это ответ от службы поддержки aws, и это работает!
---- Исходное сообщение ----
Как я могу изменить часовой пояс окружающей среды или, скорее, экземпляры среды в Elastic Beasntalk до UTC/GMT -3 часа (Буэнос-Айрес, Аргентина)? В настоящее время я использую Amazon Linux 2016.03. Заранее спасибо за вашу помощь. С наилучшими пожеланиями.
---------- Ответ ----------
Здравствуйте, Благодарим вас за обращение в службу поддержки AWS по поводу изменения часового пояса экземпляров Elastic Beanstalk для использования UTC/GMT -3 часа (Буэнос-Айрес, Аргентина). См. ниже инструкции о том, как выполнить эту модификацию.
В приведенном ниже примере показано, как изменить часовой пояс для среды Elastic Beanstalk с использованием .ebextensions для ОС Amazon Linux:
- Создайте папку .ebextensions в корне вашего приложения.
-
Создайте файл .config, например, файл 00-set-timezone.config и добавьте содержимое ниже в формате yaml.
container_commands:
01changePHP:
command: sed -i '/PHP_DATE_TIMEZONE/ s/UTC/America\/Argentina\/Buenos_Aires/' /etc/php.d/environment.ini
01achangePHP:
command: sed -i '/aws.php_date_timezone/ s/UTC/America\/Argentina\/Buenos_Aires/' /etc/php.d/environment.ini
02change_AWS_PHP:
command: sed -i '/PHP_DATE_TIMEZONE/ s/UTC/America\/Argentina\/Buenos_Aires/' /etc/httpd/conf.d/aws_env.conf
03php_ini_set:
command: sed -i '/date.timezone/ s/UTC/America\/Argentina\/Buenos_Aires/' /etc/php.ini
commands:
01remove_local:
command: "rm -rf /etc/localtime"
02link_Buenos_Aires:
command: "ln -s /usr/share/zoneinfo/America/Argentina/Buenos_Aires /etc/localtime"
03restart_http:
command: sudo service httpd restart
-
Разверните приложение на Elastic Beanstalk, в том числе .ebextensions, и часовой пояс изменится в соответствии с приведенным выше.
Я надеюсь, что это поможет
Привет!
Ответ 3
Если вы используете окна в среде eb...
,
создайте папку с именем .ebextensions в корне вашего проекта.
внутри этой папки создайте файл с именем timezone.config
в этом файле добавить следующее:
commands:
set_time_zone:
command: tzutil /s "Central Standard Time"
установить часовой пояс по мере необходимости
скриншот
Ответ 4
Я использую собственный файл .ini в папке php.d вместе с регулярными рекомендациями http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/set-time.html#change_time_zone:
# .ebextensions/02-timezone.config
files:
/etc/php.d/webapp.ini:
mode: "000644"
owner: root
group: root
content: |
date.timezone="Europe/Amsterdam"
commands:
01_set_ams_timezone:
command:
- sed -i 's/UTC/Europe\/Amsterdam/g' /etc/sysconfig/clock
- ln -sf /usr/share/zoneinfo/Europe/Amsterdam /etc/localtime
Ответ 5
Изменение часового пояса EC2 с эластичным бобовым стеком прост:
- Создайте папку
.ebextensions
в корневом каталоге
- Добавить файл с именем файла с .config(
timezone.config
)
Внутри файла
container_commands:
time_zone:
command: ln -f -s /usr/share/zoneinfo/America/Argentina/Buenos_Aires /etc/localtime
Тогда вы это сделали.
Обратите внимание, что container_commands
отличается от commands
, из документа, который он содержит:
commands
запускается до того, как приложение и веб-сервер настроены и файл версии приложения извлекается.
Что причина вашей команды в часовом поясе не работает, потому что сервер еще не запущен.
container_commands
запускается после того, как приложение и веб-сервер были и файл версии приложения был извлечен, но до версия приложения развернута.
Ответ 6
Эти обходные пути устраняют только часовой пояс для приложений. Но когда у вас есть какие-либо системные службы, такие как запуск cron, он смотрит на /etc/sysconfig/clock
и всегда UTC
. Если вы закроете журналы cron или журналы aws-sqsd, то заметите, что временные метки остаются на 2 часа ниже - в моем случае. И изменение настройки часов потребует перезагрузки, чтобы вступить в силу - что не является вариантом для рассмотрения, если у вас есть автомасштабирование на месте или вы хотите использовать ebextensions
для изменения конфигурации системных часов.
Amazon знает об этой проблеме, и я не думаю, что они ее разрешили.
Ответ 7
Подключите AMI (экземпляр amazon linux) через putty или ssh и выполните приведенные ниже команды;
sudo rm /etc/localtime
sudo ln -sf /usr/share/zoneinfo/Europe/Istanbul /etc/localtime
sudo reboot
Объяснение вышеприведенной процедуры просто:
- удалить localtime,
- обновить часовой пояс,
- перезагрузка
Пожалуйста, сообщите, что я изменил свой часовой пояс на местное время в Турции, вы можете найти свой часовой пояс, указав в каталоге zoneinfo следующую команду:
ls /usr/share/zoneinfo
или просто проверить аббревиатуры часовых поясов через wikipedia;
http://en.wikipedia.org/wiki/Category:Tz_database
Вы также можете ознакомиться с соответствующей документацией Amazon AWS;
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/set-time.html
Примечание. Я не уверен, что если это лучшая практика или нет (возможно, нет), однако я применил описанную выше процедуру, и она работает для меня.