AWS Lambda의 시간대 변경(코드의 변경 내용은 반영되지 않음)

람다의 시간대



AWS Lambda에서는 도쿄(ap-northeast-1) 리전에서도 타임존은 UTC가 됩니다.

시간대와 시간을 표시하는 예
import datetime
import os


def lambda_handler(event, context):
    now_dt = datetime.datetime.now()

    print("TZ: {}".format(os.environ['TZ']))
    print("now: {}".format(now_dt))
    print("now_timestamp: {}".format(now_dt.timestamp()))

    return 'Hello from Lambda'

TZ: :UTC
now: 2018-10-19 14:13:02.141871
now_timestamp: 1539958382.141871

시간대 변경 방법



Lambda 함수 설정에서 "환경 변수"에서 변경할 수 있습니다.

키에 TZ, 값에 Asia/Tokyo를 입력합니다.


동일한 스크립트를 실행하면 다음과 같이 시간대 변경 사항이 반영됩니다.

TZ: Asia/Tokyo
now: 2018-10-19 23:13:46.994964
now_timestamp: 1539958426.994964

코드에서 TZ 환경 변수를 변경해도 변경 사항은 반영되지 않습니다.



'환경 변수'로 Python os.environ를 다시 작성해 보았지만 시간대 변경이 반영되지 않았습니다.

Lambda 함수의 「환경 변수」의 설정을 잊었을 때의 대책으로서 다른 방법을 생각하는 것이 좋을 것입니다.

코드 내에서 시간대 변경이 반영되지 않음
import datetime
import os


def lambda_handler(event, context):
    default_tz = 'Asia/Tokyo'
    if os.getenv('TZ', '') != default_tz:
        os.environ['TZ'] = default_tz
    now_dt = datetime.datetime.now()

    print("TZ: {}".format(os.environ['TZ']))
    print("now: {}".format(now_dt))
    print("now_timestamp: {}".format(now_dt.timestamp()))

    return 'Hello from Lambda'

실행 결과를 보면 TZ만이 "Asia/Tokyo"로 되어 있습니다.

TZ: Asia/Tokyo
now: 2018-10-19 14:15:45.675777
now_timestamp: 1539958545.675777

참고



AWS Lambda 시간대 변경 - Qiita
htps : // 코 m / 누치 앙 / ms / 39에 cf1f6d0194b72에 8에 6

Python에서 환경 변수 검색 및 추가 | TM Life
ht tp // tm ぃふぇ. 네 t/p로g 라민 g/py 텐/py 텐-엔ゔぃロン. HTML

16.1. os — 잡다한 운영 체제 인터페이스 — Python 3.6.4 문서
htps : // / cs. py 응. jp/3/ぃb 등 ry/오. HTML # 오. 푸텐 v

좋은 웹페이지 즐겨찾기