我在亚马逊文档中没有找到ECS Fargate任务启动使用的时区。 你有任何建议吗? 我想在任何地方都使用协调世界时。
最好的问候, Maciej。
我在亚马逊文档中没有找到ECS Fargate任务启动使用的时区。 你有任何建议吗? 我想在任何地方都使用协调世界时。
最好的问候, Maciej。
我希望任务默认使用 UTC 时区,但这只是我的猜测。在 Fargate 环境中,我们不需要担心任务启动的时区,因为基础计算或主机机器的时区将不会被 Docker 所采用。Docker 容器所采用的时区是独立于主机机器配置的。
要在容器中设置所需的时区,可以在 Dockerfile 中使用 tzdata
设置时区并创建新的镜像。
RUN apt-get install -y tzdata
在启动ECS任务时,需要在任务定义中向容器传递TZ
环境变量。
rate(1 minute)
或rate(1 hour)
使用以下命令在CloudWatch中创建规则:SCHEDULE_EXPRESSION='cron(30 9 * * ? *)'
aws events put-rule \
--name events-rule-tasks-name\
--schedule-expression "${SCHEDULE_EXPRESSION}" \
--description "Run every day at 09:30 UTC" \
--state "ENABLED" \
;
TaskDefinitionArn
值设置为调用fargate任务,并指定启动类型(FARGATE
)以及其他网络配置设置。 aws events put-targets \
--rule events-rule-tasks-${TASK_NAME} \
--targets '{"Arn":"arn:aws:ecs:'${AWS_REGION}':'${AWS_ACCOUNT_ID}':cluster/'${CLUSTER_NAME}'","EcsParameters":{"LaunchType":"FARGATE","NetworkConfiguration":'${NETWORK_CONFIGURATION}',"TaskCount": 1,"TaskDefinitionArn": "arn:aws:ecs:'${AWS_REGION}':'${AWS_ACCOUNT_ID}':task-definition/ecs-task-'${TASK_NAME}'"},"Id": "ecs-targets-'${TASK_NAME}'","RoleArn": "arn:aws:iam::'${AWS_ACCOUNT_ID}':role/ecsEventsRole"}' \
;