【问题标题】:Deploying lambda function using serverless framework使用无服务器框架部署 lambda 函数
【发布时间】:2021-10-07 10:03:15
【问题描述】:

我已经使用无服务器框架成功部署了我的 lambda 函数(在 Nodejs 运行时中)
问题是serverless deploy 还创建了一堆我不想要的 AWS 服务,例如:

  • API 网关 - 我没有,因为我已经有自己的 API 网关了
  • S3 存储桶 - 我不需要查看任何输出日志
  • Cloudwatch - 我不需要查看任何日志,因为我们有日志基础架构

问:有没有办法告诉 serverless 只部署 lambda 函数? (或者至少避免 API 网关)

【问题讨论】:

  • 如果您不创建任何 http 端点,则不会创建 api 网关。可能有一种方法可以为日志禁用 s3 和 cloudwatch
  • 如果你真的只想要lambda函数,你可以做serverless deploy function
  • 对于 S3,您说的是 sls 创建的用于托管打包资产(包括 Lambda 函数)的 S3 存储桶吗?如果是这样,请参阅Artifacts hosted on S3

标签: amazon-web-services serverless-framework serverless


【解决方案1】:

无服务器框架创建了一个 S3 存储桶,作为将您的服务引入 AWS 的一种方式。它没有尝试直接推送到 Lambda 服务,而是将其打包成一个 zip,上传到 S3,然后指向该 S3 存储桶,以便部署过程知道在哪里可以找到东西。您可以指定自己的 S3 存储桶,用于存储所有部署工件。嵌套在 provider 下的 deploymentBucket 配置可以让你例如设置此存储桶的名称或 serverSideEncryption 方法。如果您不提供自己的存储桶,Serverless 将创建一个使用默认 AES256 加密的存储桶。

对于 API 网关,如果您想使用现有的 API 网关资源(实际上不需要,因为除非有流量通过它们,否则它们不会花费任何成本),您可以通过引用在多个项目之间共享同一个 API 网关serverless.yml 中的 REST API ID 和 Root Resource ID 如下:

service: service-name
provider:
  name: aws
  apiGateway:
    restApiId: xxxxxxxxxx # REST API resource ID. Default is generated by the framework
    restApiRootResourceId: xxxxxxxxxx # Root resource, represent as / path
    websocketApiId: xxxxxxxxxx # Websocket API resource ID. Default is generated by the framework
    description: Some Description # optional - description of deployment history

functions: ...

您应该至少在基本层面重新考虑使用 CloudWatch。这是您从函数中获取输出的唯一方法,除非您绑定一个发出 API 请求的服务,这会增加您的服务的延迟。 CloudWatch 不会增加延迟(或至少小到可以忽略不计)。但是,如果您确实必须关闭 CloudWatch,您无法阻止它在 ClouWatch 中创建日志组,但您可以将日志的生存时间限制为 0 天或少数天:

provider:
  logRetentionInDays: 0

【讨论】:

  • 感谢您提供重要信息。作为无服务器用户,我非常希望能够完全控制和灵活地确定我部署哪些 AWS 服务——我希望无服务器在未来允许模板选项禁用 S3/Cloudwatch/APIGateway(不提供现有的)——这个这样我就能更好地控制我的 aws 资源。
  • 有很多用例需要考虑 - 如果我们的项目将 lambda 工件存储在我们自己的 Artifactory 注册表中 - 我们不需要 s3。恕我直言,让用户能够完全控制所创建的资源是必须的。再次 - 非常感谢您的有用回答
猜你喜欢
  • 1970-01-01
  • 2019-03-02
  • 2020-07-19
  • 2017-12-15
  • 1970-01-01
  • 2021-02-27
  • 1970-01-01
  • 1970-01-01
  • 2019-07-23
相关资源
最近更新 更多