标签: serverless-framework

在AWS中使用现有的API密钥和无服务器框架

在该serverless.yml文件中,您可以指定要与已部署API中的函数一起使用的API密钥的名称.列出API密钥名称,然后将要保护的方法标记为私有.例如:

provider:
  name: aws
  runtime: nodejs4.3
  cfLogs: true
  apiKeys:
    - MyAPIKey
Run Code Online (Sandbox Code Playgroud)

部署后,框架会生成API密钥并将其分配给函数.即使环境中已存在具有相同名称的密钥,它也会生成密钥.

有没有办法指定现有的API密钥,而不是让框架生成它?我们真的希望继续生成与部署分开的密钥.

amazon-web-services aws-lambda serverless-framework

7
推荐指数
1
解决办法
2880
查看次数

AWS Lamba在使用RDS时性能较差

我使用无服务器框架实现了AWS Lambda功能.Lambda函数使用RDS和MongoDB.MongoDB端点运行大约500ms,但RDS运行12秒(冷启动)和~3秒(热启动).

注意:我在此端点中使用Sequelize.

如何加速我的RDS Lambda端点?

amazon-rds node.js aws-lambda serverless-framework serverless-architecture

7
推荐指数
1
解决办法
684
查看次数

serverless:在ubuntu 16.04中找不到命令

我是一个新手,并尝试在ubuntu 16.04 LTS中设置aws无服务器框架.我安装了节点并通过以下命令安装了无服务器:npm install -g serverless在终端中.但是当我尝试运行无服务器时,它会通过说无服务器返回错误:找不到命令.这是一个参考截图.

在此输入图像描述

请帮忙 !

ubuntu node.js aws-lambda serverless-framework

7
推荐指数
4
解决办法
6766
查看次数

如何通过云形成模板(serverless.yml)启用api网关日志?

我想为我的api网关启用api网关日志,这是我的lambda函数的环绕.

service: myservice

provider:
  name: aws
  runtime: python3.6
  stage: ${opt:stage}
  region: ${self:custom.AwsRegion}
  timeout: 130
  memorySize: 128


functions:
  create_user:
    handler: functions/create_user.lambda_handler

    events:
      - http:
          path: /create_user
          method: post
          authorizer: aws_iam
          private: true
Run Code Online (Sandbox Code Playgroud)

当我部署它时,我确实看到云计算中的lambda日志.但是API网关日志没有在cloudwatch中重新编码.任何人都可以启发我的云形成语法,为我的api门方式启用日志吗?

我尝试添加下面的代码,但看起来它正在尝试创建新的api端点.

资源:资源:

ApiGatewayStage:
  Type: AWS::ApiGateway::Stage
  Properties:
    RestApiId:
        Ref: ApiGatewayRestApi
    StageName: ${opt:stage}
    MethodSettings:
      - DataTraceEnabled: true
        HttpMethod: "*"
        LoggingLevel: INFO
        ResourcePath: "/*"
        MetricsEnabled: true
Run Code Online (Sandbox Code Playgroud)

lambda aws-cloudformation aws-lambda aws-api-gateway serverless-framework

7
推荐指数
1
解决办法
2035
查看次数

多个无服务器文件共享同一个api网关

我正在使用无服务器框架来构建REST API。我已经达到了200个限制堆栈大小,并了解了多种绕过它的方法。最常见的方法是以“微服务方式”拆分堆栈,其中每个堆栈都处理一组有意义的特定资源。

由于无服务器的工作方式,所有这些服务都会为其自身创建一个新的api网关,然后,如本文中所述,可以在它们之间设置一个共享域,以便可以通过相同的基本url访问所有端点。

即使这是一个有效的解决方案,我仍然非常希望能够使用在不同堆栈之间共享的单个API网关资源,因此我不必预先决定api的不同组件之间的关注点分离。这可能吗?

serverless-framework serverless

7
推荐指数
1
解决办法
1495
查看次数

如何使用无服务器框架的自定义docker容器

我使用无服务器框架将python函数部署到aws lambda上

我的配置文件serverless.yml如下

frameworkVersion: "=1.27.3"

service: recipes

provider:
  name: aws
  endpointType: REGIONAL
  runtime: python3.6
  stage: dev
  region: eu-central-1
  memorySize: 512
  deploymentBucket:
    name: dfki-meta
  versionFunctions: false
  stackTags:
    Project: DFKIAPP
  # Allows updates to all resources except deleting/replacing EC2 instances
  stackPolicy:
    - Effect: Allow
      Principal: "*"
      Action: "Update:*"
      Resource: "*"
    - Effect: Deny
      Principal: "*"
      Action:
        - Update: Replace
        - Update: Delete
      Resource: "*"
      Condition:
        StringEquals:
          ResourceType:
            - AWS::EC2::Instance
  # Access to RDS and S3 Bucket
  iamRoleStatements:
    -  Effect: "Allow"
       Action: "s3:ListBucket" …
Run Code Online (Sandbox Code Playgroud)

docker aws-lambda serverless-framework serverless

7
推荐指数
1
解决办法
529
查看次数

无服务器框架:UpdateFunctionCode操作的请求必须小于69905067字节

我正在使用包上传压缩文件

frameworkVersion: "=1.27.3"

service: recipes

provider:
  name: aws
  endpointType: REGIONAL
  runtime: python3.6
  stage: dev
  region: eu-central-1
  memorySize: 512
  deploymentBucket:
    name: dfki-meta
  versionFunctions: false
  stackTags:
    Project: DFKIAPP
  # Allows updates to all resources except deleting/replacing EC2 instances
  stackPolicy:
    - Effect: Allow
      Principal: "*"
      Action: "Update:*"
      Resource: "*"
    - Effect: Deny
      Principal: "*"
      Action:
        - Update: Replace
        - Update: Delete
      Resource: "*"
      Condition:
        StringEquals:
          ResourceType:
            - AWS::EC2::Instance
  # Access to RDS and S3 Bucket
  iamRoleStatements:
    -  Effect: "Allow"
       Action: "s3:ListBucket"
       Resource: "*" …
Run Code Online (Sandbox Code Playgroud)

serverless-framework

7
推荐指数
2
解决办法
2449
查看次数

无服务器yml上的CORS

我有一个React应用程序,试图从AWS访问无服务器。但是我有下面的错误

No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://www.test.com' is therefore not allowed access. The response had HTTP status code 502.
Run Code Online (Sandbox Code Playgroud)

端点网址为https://key.execute-api.ap-southeast-2.amazonaws.com/dev/samplefunction

在serverless.yml上的设置是

login:
    handler: login.login
    events:
      - http:
          path: login
          method: post
          cors:
            origin: 'https://admin.differentdomain.com'
            headers:
              - MY_CUSTOM_HEADER
              - Content-Type
              - X-Amz-Date
              - Authorization
              - X-Api-Key
              - X-Amz-Security-Token
Run Code Online (Sandbox Code Playgroud)

我还有其他地方需要进行CORS配置吗?

serverless-framework serverless aws-serverless

7
推荐指数
1
解决办法
2129
查看次数

AWS SAM(无服务器架构模式)与无服务器框架之间有什么区别?

我们正在研究项目,我们正在努力在nodejs中构建无服务器应用程序。我谈到了AWS SAM和Serverless。哪个最适合实现无服务器应用程序

amazon-web-services serverless-framework aws-serverless

7
推荐指数
2
解决办法
1886
查看次数

我们如何使用AWS X射线跟踪axios http请求?

我正在寻找一种在基于node.js的aws lambda函数中跟踪axios http请求的方法。我发现了一种在AWS官方文档https://docs.aws.amazon.com/xray/latest/devguide/xray-sdk-nodejs-httpclients.html上跟踪HTTP请求的方法

var AWSXRay = require('aws-xray-sdk');
var http = AWSXRay.captureHTTPs(require('http'));
Run Code Online (Sandbox Code Playgroud)

但是我没有找到任何有关axios请求跟踪的文档或博客。我也尝试过此代码,但无法正常工作。

import AWSXRay from 'aws-xray-sdk';
AWSXRay.captureHTTPsGlobal("../../common/http/HttpClient");
import { HttpClient } from "../../common/http/HttpClient";
Run Code Online (Sandbox Code Playgroud)

在这方面我需要帮助。谢谢!

node.js aws-lambda serverless-framework aws-xray

7
推荐指数
1
解决办法
1304
查看次数