かずきち。の日記

サーバサイドエンジニアのつぶやき

GASのマニフェストファイルって何?マニフェストファイルの表示でわかることとは?

人と話すときに相手がどこにいるか気にしますか?

f:id:kazukichi_0914:20210829154150j:plain
引用:
https://line-howtouse.net/line_talk_basis.php

昔は「夜中は電話をしてはいけません」みたいな風習がありました。
それは夜中に電話したら迷惑ですからね。
でもそれは暗黙のうちに「相手が日本にいる」って自分が決めつけているだけです。
今はIP電話やLINEが普及して、決して電話先が同じタイムゾーンにいる人とは限りません。
ドメスティックな会社は「15:00〜会議ね」みたいなことがありますが、
人間なら「あ、日本人の上司が言ってることだから、日本時間の15:00~会議なんだな」
とわかります。

プログラミング言語の場合「12:00~」って言われたらわからない

f:id:kazukichi_0914:20210829155151g:plain

Googleカレンダーの場合も表示のタイムゾーン日本標準時に設定することができ、また2つめのタイムゾーンも設定することができます。

f:id:kazukichi_0914:20210829154002g:plain

プログラミング言語も同様でマニフェストファイルでタイムゾーンを「Asia/Tokyo」と宣言する必要があるわけです。
じゃないと日本時間として実行されません。

AmazonEC2のサーバは世界中に点在

f:id:kazukichi_0914:20210829155537g:plain
引用:
https://xn--o9j8h1c9hb5756dt0ua226amc1a.com/?p=1268

例えば、AmazonEC2のサーバは世界中にあって、人が寝ている間などにサーバは空きになるので、稼働にかかる料金が安くなります。
なので日本が動いている時に、ブラジルリージョンのサーバの料金は安くなります。

そうするとコードは日本人が書く・実行はブラジルサーバで走らせるみたいなことが頻繁に発生します。

海外旅行に行った時に現地で時計を合わせるみたいなことしませんか?

f:id:kazukichi_0914:20210829155938g:plain
引用:
https://www.paopao.org/post-3236/

人間は旅行に行って時計をずらして、帰ってきた時にまた時計を戻せばいいんですが
データの場合、そうも行きません。

アメリカに行ったり、ヨーロッパに行ったり、日本に行ったり、データが飛びまくりますので
タイムゾーンの管理が煩雑になるんですね。

なので、このコードはAsia/Tokyo向けに書かれたコードだよということを明示して上げる必要があります。
それと同じことをGASでも明記する必要があるんですね。
Googleもこのユーザが日本向けにスクリプトを書いたのか、アメリカ向けにスクリプトを書いたのかわかりませんからね。
プログラミング言語は日本人が書いても、アメリカ人が書いても同じ記法になります。
タイムゾーンをまたいだ開発をしようと思っている方はこの辺の設定がもろに効いてきますのでぜひ意識的に見てみてください。