Amazon Elastic Beanstalk-Changer Le Fuseau Horaire

J'exécute une instance EC2 à travers AWS Elastic Beanstalk. Malheureusement, il a le mauvais fuseau horaire - ses 2 heures plus tôt qu'il ne devrait l'être, parce que le fuseau horaire est réglé sur UTC. Ce dont j'ai besoin est GMT+1.

Est-il un moyen de configurer le .la configuration ebextensions, afin de forcer L'instance EC2 à utiliser le bon fuseau horaire?

23
demandé sur tomraithel 2014-08-20 12:05:30

7 réponses

Oui, vous le pouvez.

il suffit de créer un fichier /.ebextensions/00-set-timezone.config avec le contenu suivant

commands:
  set_time_zone:
    command: ln -f -s /usr/share/zoneinfo/Australia/Sydney /etc/localtime

ceci suppose que vous utilisez Amazon Linux AMI image par défaut. Si vous utilisez une autre distribution Linux, changez simplement la commande en ce qu'elle nécessite pour définir le fuseau horaire dans ce Linux.

27
répondu xwk 2015-02-10 23:46:58

Il s'agit d'une réponse de l'entreprise de soutien aws et cela fonctionne!

---- message d'Origine ----

Comment puis-je changer le fuseau horaire d'un environnement ou plutôt aux instances de l'environnement dans Elastic Beasntalk à UTC/GMT -3 heures (Buenos Aires, Argentina)? Im utilise actuellement Amazon Linux 2016.03. Merci d'avance pour votre aide. Égard.

---------- Réponse ----------

Bonjour, Merci D'avoir contacté Support AWS concernant la modification de votre fuseau horaire D'instances de haricot élastique pour utiliser UTC / GMT -3 heures (Buenos Aires, Argentina), voir ci-dessous les étapes sur la façon d'effectuer cette modification.

l'exemple ci-dessous montre comment modifier le fuseau horaire de L'environnement élastique en utilisant .ebextensions for Amazon Linux OS:

  1. Créer .dossier ebextensions à la racine de votre application
  2. Créer un .fichier de configuration par exemple 00-set-timezone.config Enregistrez et ajoutez le contenu ci-dessous dans le formatage 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
    
  3. déployer l'application à la tige de haricot élastique y compris le .ebextensions et le fuseau horaire changeront comme indiqué ci-dessus.

j'espère que ça aide

salutations!

13
répondu Jesús Díaz 2016-05-10 16:59:49

si vous utilisez windows dans votre environnement eb... .

créer un dossier nommé .ebextensions à la racine de votre projet..

à l'intérieur de ce dossier Créer un fichier nommé timezone.config

dans ce fichier ajouter ce qui suit:

commands:
    set_time_zone:
        command: tzutil /s "Central Standard Time"

définir le fuseau horaire au besoin

capture d'écran

3
répondu Adam Zeffer 2016-11-08 00:31:23

j'utilise la coutume .fichier ini en php.le dossier ainsi que les recommandations régulières de 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
2
répondu Roman Zhuzha 2017-03-15 14:58:03

changer le fuseau horaire D'EC2 avec du haricot élastique est simple:

  1. Créer un .ebextensions dossier dans la racine
  2. Ajouter un fichier avec nom de fichier fin .config (timezone.config)

dans le fichier

container_commands:
  time_zone:
    command: ln -f -s /usr/share/zoneinfo/America/Argentina/Buenos_Aires /etc/localtime

Alors vous avez fait. Notez que l' container_commands est différent de commands du document, il est indiqué:

commands exécutez avant que l'application et le serveur web soient configurés et la version d'application le fichier est extrait.

C'est la raison pour laquelle votre commande de fuseau horaire ne fonctionne pas car le serveur n'a pas encore démarré.

container_commands exécuter après que l'application et le serveur web ont été mise en place et le fichier de version de la demande a été extrait, mais avant la version de l'application est déployée.

1
répondu nobody 2016-06-24 04:31:30

ces solutions de contournement ne corrigent que le fuseau horaire des applications. Mais quand vous avez n'importe quels services de système comme un cron exécuter il regarde le /etc/sysconfig/clock et c'est toujours UTC. Si vous suivez les logs cron ou aws-sqsd, vous remarquerez que les horodateurs sont toujours à 2h derrière - dans mon cas. Et un changement dans le réglage de l'horloge aurait besoin d'un redémarrage pour prendre effet - ce qui n'est pas une option à considérer si vous avez l'autoscaling en place ou si vous voulez utiliser ebextensions pour changer le système l'horloge de la config.

Amazon est au courant de ce problème et je ne pense pas qu'ils l'aient résolu encore.

0
répondu Dele 2016-09-18 15:59:46

se Connecter AMI (amazon instance de linux) à l'aide de mastic ou ssh et exécuter les commandes ci-dessous;

sudo rm /etc/localtime
sudo ln -sf /usr/share/zoneinfo/Europe/Istanbul /etc/localtime
sudo reboot

Explication de la procédure ci-dessus est tout simplement;

  1. supprimer localtime,
  2. mise à jour du fuseau horaire,
  3. reboot

veuillez noter que j'ai changé mon fuseau horaire en heure locale de la Turquie, vous pouvez trouver votre fuseau horaire en inscrivant le répertoire zoneinfo avec la commande ci-dessous;

ls /usr/share/zoneinfo

ou tout simplement vérifier le fuseau horaire abbrevetaions via wikipédia;

http://en.wikipedia.org/wiki/Category:Tz_database

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/set-time.html

Note: je ne suis pas sûr que si c'est la meilleure pratique ou pas (probablement pas), mais j'ai appliqué la procédure que j'ai écrit ci-dessus et ça marche pour moi.

-2
répondu Levent Divilioglu 2014-10-28 07:45:23