Подтвердить что ты не робот

Amazon Elastic Beanstalk - Изменение часового пояса

Я запускаю экземпляр EC2 с помощью AWS Elastic Beanstalk. К сожалению, у него неправильный часовой пояс - это на 2 часа раньше, чем должно быть, потому что часовой пояс установлен на UTC. Мне нужен GMT + 1.

Есть ли способ настроить конфигурацию .ebextensions, чтобы заставить экземпляр EC2 использовать правильный часовой пояс?

4b9b3361

Ответ 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

Примечание. Я не уверен, что если это лучшая практика или нет (возможно, нет), однако я применил описанную выше процедуру, и она работает для меня.