通过 EventBridge / Crond 在 fargate 容器中调用 ftp 命令
Invoke ftp command in fargate container by EventBridge / Crond
我想做的在aws
上是这样的
- 每小时执行ftp命令并获取sql文件
- 推送文件到RDS。
一开始我的想法是
- 制作包含
crond
和ftp
的容器然后放入fargate
.
然而,无服务器 fargate 由 crond 工作......?
所以第二个想法是
- 制作包含
ftp
的容器,然后在容器中使用 EventBridge
到 运行 ftp
命令。
可能吗?
我想知道我是否可以 运行 fargate
上容器中的命令 EventBridge
??
第一步是编写一个 bash 脚本来执行 FTP 和 SQL 命令。然后创建一个包含 bash 脚本和任何依赖项(例如 mysql
或 psql
)的容器映像。容器镜像将配置为 bash 脚本作为入口点。这意味着每次启动此容器的实例时,它都会执行 FTP 和 SQL 命令,然后退出。
请注意,此时 ftp
和 SQL 之类的所有命令都是如何在映像中完全配置的,不需要像 EventBridge 这样的外部服务将命令本身推送到容器。如果需要传入一些配置,例如 FTP 服务器名称或 RDS 主机名,则应将它们作为环境变量传入容器。
最后,为了 运行 在 ECS Fargate 上每小时执行一次此操作,您将在 ECS 中配置任务定义,然后配置一个 AWS ECS Scheduled Task,它使用 EventBridge,每小时 cron
触发表达式。
我想做的在aws
上是这样的
- 每小时执行ftp命令并获取sql文件
- 推送文件到RDS。
一开始我的想法是
- 制作包含
crond
和ftp
的容器然后放入fargate
.
然而,无服务器 fargate 由 crond 工作......?
所以第二个想法是
- 制作包含
ftp
的容器,然后在容器中使用EventBridge
到 运行ftp
命令。
可能吗?
我想知道我是否可以 运行 fargate
上容器中的命令 EventBridge
??
第一步是编写一个 bash 脚本来执行 FTP 和 SQL 命令。然后创建一个包含 bash 脚本和任何依赖项(例如 mysql
或 psql
)的容器映像。容器镜像将配置为 bash 脚本作为入口点。这意味着每次启动此容器的实例时,它都会执行 FTP 和 SQL 命令,然后退出。
请注意,此时 ftp
和 SQL 之类的所有命令都是如何在映像中完全配置的,不需要像 EventBridge 这样的外部服务将命令本身推送到容器。如果需要传入一些配置,例如 FTP 服务器名称或 RDS 主机名,则应将它们作为环境变量传入容器。
最后,为了 运行 在 ECS Fargate 上每小时执行一次此操作,您将在 ECS 中配置任务定义,然后配置一个 AWS ECS Scheduled Task,它使用 EventBridge,每小时 cron
触发表达式。