Javascript cloudformation部署后脚本

Javascript cloudformation部署后脚本,javascript,npm,aws-lambda,amazon-cloudformation,Javascript,Npm,Aws Lambda,Amazon Cloudformation,我有一个名为db:migrate的npm脚本,我希望在aws上的每次部署之后运行该脚本。该脚本运行一个名为migrate.js的文件,该文件负责执行数据库迁移 我正在使用aws cloudformation进行部署,但我不确定最好的方法是使用某种形式的部署后脚本来运行该脚本:npm run db:migrate 我认为可能有某种形式的cloudformation部署后钩子可以使用,但我发现的只是cloudformation定制资源。显然,我可以在每次部署后触发lambda函数。问题是我不知道如何

我有一个名为db:migrate的npm脚本,我希望在aws上的每次部署之后运行该脚本。该脚本运行一个名为migrate.js的文件,该文件负责执行数据库迁移

我正在使用aws cloudformation进行部署,但我不确定最好的方法是使用某种形式的部署后脚本来运行该脚本:npm run db:migrate

我认为可能有某种形式的cloudformation部署后钩子可以使用,但我发现的只是cloudformation定制资源。显然,我可以在每次部署后触发lambda函数。问题是我不知道如何从lambda函数访问ECS容器以运行db:migrate脚本


如果您有任何见解,我将不胜感激。

您可以将用户数据添加到模板EC2/启动模板/启动配置中

我可以在fargate ECS集群中使用UserData吗?另外,使用UserData会在每个EC2实例上运行我的npm命令吗?如果我只想运行一次呢?您不能在fargate ECS群集上使用Userdata,因为fargate无法访问您的容器所运行的服务器。您可以使用docker专用命令CMD、ENTRYPOINT执行应用程序所需的任何启动脚本。Userdata将在ASG提供的每个EC2实例上运行。实现脚本幂等取决于您,因为脚本实际上与容器或EC2实例无关。。我不需要为每个EC2实例运行它。。我只需要运行一次部署后脚本。。不幸的是,cloudformation看起来并没有类似于部署后钩子的东西,我可以用它来运行一些东西,只运行一次。