【问题标题】:Node module deleted from npm during autoscaling trigger. How to handle this?在自动缩放触发期间从 npm 中删除节点模块。如何处理?
【发布时间】:2017-08-31 05:37:59
【问题描述】:

我正在通过 Elasticbeanstalk 使用 AWS 自动缩放。

我已经在 S3 上上传了我的节点应用程序并在 package.json 中提到了在安装过程中要安装的所有必需模块

当自动缩放触发器启动新实例时,它将从 S3 下载应用程序并开始安装 package.json 中提到的模块

如果在此期间某些模块已从 npm 中删除,而我的 package.json 正在引用它们怎么办。在这种情况下,我的实例将无法正确启动,并且我的自动缩放目的将无效。

如何确保在每次自动缩放期间节点模块已经可供应用使用?

我想制作自定义 AMI,在其中全局安装我的所有模块。所以在自动缩放期间,我的应用程序可以直接引用它们。但是在更新过程中,如果我使用了额外的模块,那么现有实例将如何在它们上部署应用程序时安装它们。

请提出更好的方法来处理这种情况

【问题讨论】:

    标签: node.js amazon-web-services autoscaling


    【解决方案1】:

    您应该在发布应用的新版本时安装依赖项。即,您应该将依赖项与您的应用一起安装到 S3 中,以便自动缩放不依赖于 NPM。

    我不确定 ElasticBeanstalk 是否支持这一点,但您可能只需将您的依赖项放入源包中的 node_modules 子目录中,这样它们就可以在本地应用程序使用,并且如果它自动缩放则不需要安装。

    【讨论】:

    • 即使我是这么认为的...所有软件包可能大约为 50MB,因此在自动缩放配置中需要考虑部署时间不是吗...感谢您的回答
    猜你喜欢
    • 1970-01-01
    • 2021-07-10
    • 2016-09-04
    • 1970-01-01
    • 2021-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多