【问题标题】:Serverless - Local path and Lambda Path无服务器 - 本地路径和 Lambda 路径
【发布时间】:2019-05-17 22:32:02
【问题描述】:

我想知道如何强制本地无服务器部署模仿我将其部署到 AWS 时发生的情况。

这是我的无服务器 yaml 文件:

service: payment # NOTE: update this with your service name

# You can pin your service to only deploy with a specific Serverless version
# Check out our docs for more details
# frameworkVersion: "=X.X.X"
environment:
SLS_DEBUG: "*"

provider:
name: aws
runtime: nodejs8.10
stage: production
region: ca-central-1
timeout: 60
role: ${file(../config/prod.env.json):ROLE}
vpc:
    securityGroupIds:
    - ${file(../config/prod.env.json):SECURITY_GROUP}
    subnetIds:
    - ${file(../config/prod.env.json):SUBNET}
apiGateway:
    apiKeySourceType: HEADER
apiKeys:
    - ${file(../config/prod.env.json):APIKEY}

package:
include:
    - ../lib/**

functions:
- '${file(src/handlers/payment.serverless.yml)}'

plugins:
- serverless-offline

我的文件结构如下:

root
--- node_modules
--- lib
    - models
--- payment
    - serverless.yml

当我将它部署到 AWS 时,lib 文件夹会被放入 lambda 函数的文件夹中,但在本地我需要定义它的路径,通常是 ../.../../

我怎样才能使它在本地或部署时不必更改路径?

【问题讨论】:

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


    【解决方案1】:

    有一个非常接近 aws lambda 的 docker 容器。您可以将无服务器部署到容器上,并根据您的需要进行反复试验。 您还可以通过这种方式创建无服务器支持的 lambda 层。

    【讨论】:

    • 问题在于无服务器如何部署代码。当您在本地运行它时,它的执行方式与部署时不同。
    • 无服务器,类似于 terraform,尝试在部署时并行运行所有依赖项。执行资源评估顺序的唯一方法是在它们之间创建依赖关系。我建议创建该 docker 容器并在那里测试您的部署并在您的资源之间创建依赖关系,以便创建订单。据我所知,由于无服务器的工作方式,这是唯一的方法。
    猜你喜欢
    • 2016-01-25
    • 1970-01-01
    • 1970-01-01
    • 2013-01-09
    • 1970-01-01
    • 2018-07-23
    • 1970-01-01
    • 2012-10-29
    • 1970-01-01
    相关资源
    最近更新 更多