【问题标题】:Serverless: how to remove one function无服务器:如何删除一项功能
【发布时间】:2018-11-25 08:19:36
【问题描述】:

我正在使用无服务器在 AWS 上部署我的 API。

在无服务器中,它允许部署单个功能:

sls deploy -f <function name>

但它不允许删除单个函数:

sls remove // will remove all functions.

有没有什么方法可以去掉不影响其他功能的单个功能?

【问题讨论】:

  • 你不能把它从你的无服务器文件中删除然后进行部署吗?
  • 是的,它奏效了,我怎么没想到呢?
  • 我将结束这个问题。谢谢@justin.m.chase,很高兴问你,你回复得这么快。

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


【解决方案1】:

我知道这个问题已有一年多的历史并且已经关闭,但删除单个函数的正确方法是通过您几乎拥有的名称来指定它:

sls remove -f &lt;function name&gt;

【讨论】:

  • 这是不正确的。 -f 参数不受尊重,整个堆栈被删除。
  • 这个答案应该从这里删除
【解决方案2】:

我知道它有点老了,但无服务器的部署痛苦仍然存在。

我最近开发了一个 cli,可以利用 AWS sam cli(因此 cli 名称:Rocketsam)在 AWS 中构建微服务。

cli 启用每个函数的缓存(如果只更改一个函数代码,则不再完全部署到微服务)。 它还具有其他功能,例如将模板文件拆分为每个函数、跨函数共享代码、获取日志等:)

https://www.npmjs.com/package/rocketsam

目前cli仅支持python 3.6的构建功能,但未来可以根据需要轻松扩展。

【讨论】:

    【解决方案3】:

    正如 Peter Pham 所说,从 serverless.yml 中删除该函数并做一个完整的:

    sls deploy
    

    如果您尝试在 AWS 中手动删除该函数,会引起很多麻烦。

    【讨论】:

      【解决方案4】:

      @justin.m.chase 建议:

      只需删除 serverless.yml 中的函数,然后运行完整部署

      sls deploy
      

      该函数已删除(Lambda + API 网关)。完美!

      【讨论】:

      • -1 这是错误的,如果您从 serverless.yml 中删除函数然后尝试部署,则会出现错误“UPDATE ROLLBACK FAILED”。
      • @Donato 尝试删除 .serverless 文件夹(它在 mac 上不可见,因此您必须使用 command + shift + 点使其可见)
      • 会说我刚刚做了这个。 1) 从 serverless.yml 中删除了函数 2) 删除了 .serverless 3) sls deploy 重新部署花了很长时间,我以为出了点问题,但它最终奏效了,lambda 函数消失了。再次提醒:不要在 AWS GUI 中手动删除,会导致很多问题。
      猜你喜欢
      • 1970-01-01
      • 2017-01-19
      • 1970-01-01
      • 2023-02-14
      • 1970-01-01
      • 2021-05-19
      • 2014-12-03
      • 1970-01-01
      • 2020-09-29
      相关资源
      最近更新 更多