标签: serverless-framework

如何使用无服务器框架更新AWS lambda而不停机?

有以下设置:

  • 2 个 lambda 函数,使用以下方式部署serverless.yml
  • api.mydomain.com附加到 API 网关的自定义域(例如)
  • 2 个阶段 (devprod)
  • 我的域中的 CNAME 配置要指向abcdefg.cloudfront.net

有一项高级任务是更新两个 lambda 函数,而不会导致它们所服务的 API 停机。如何使用无服务器框架来做到这一点?

注意:有两种方法可以管理 lambda 部署:阶段和别名(版本)。目前别名在无服务器中不起作用(有一个分支可以修复该问题,但这并不重要)。

amazon-web-services aws-lambda serverless-framework aws-serverless

4
推荐指数
1
解决办法
1250
查看次数

吉普 错误!堆栈错误:EACCES:权限被拒绝,mkdir '/usr/local/lib/node_modules/serverless/node_modules/snappy/.node-gyp'

我有一个 AWS CodeBuild 项目,它尝试安装无服务器框架,但在标题中返回错误,但它表示框架已成功安装。我的理解是,这无法安装 snappy 模块。这是为什么?我该如何解决这个问题?

我在 buildspec.yaml 中运行的命令是:

npm install -g serverless
Run Code Online (Sandbox Code Playgroud)

我的用户是:

/root
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

serverless-framework aws-codebuild serverless

4
推荐指数
1
解决办法
4374
查看次数

标准 SQS 与每条消息都有唯一 groupId 的 FIFO SQS 的吞吐量

我不太关心事件的顺序,但我希望消息只被处理一次。侦听 SQS 消息的 lambda 会将其存储在 DynamoDB 中,因此吞吐量非常重要,因为我有多个微服务(作为生产者)将消息写入此 SQS,这些消息将由单个微服务读取。

关于只处理一次消息,这是 FIFO 队列支持的,但据说吞吐量不太好。

如果每条消息都有唯一的 groupId,那么 FIFO 队列的吞吐量与标准队列相同吗?

如果没有,我的下一个选择可能是在存储消息时在 DynamoDB 中使用“attribute_not_exists”。

其中哪一个应该效果更好?

amazon-sqs amazon-web-services amazon-dynamodb serverless-framework serverless

4
推荐指数
1
解决办法
1万
查看次数

如何使用 serverless.yml 中的 useDotenv: true 选项访问环境变量并传递给 Lambda 函数?

我正在尝试将环境变量传递给 serverless.yml(版本 2.32.0)中的 Lambda 函数,但我不确定如何执行此操作。文档: https: //www.serverless.com/framework/docs/environment-variables/没有提及如何操作。现在,我正在使用该useDotenv: true选项,然后尝试访问环境变量,${process.env.ENV1}但它不起作用。以下是我的serverless.yml文件:

无服务器.yml

service: service-name
frameworkVersion: "2.32.0"
useDotenv: true

provider:
  name: aws
  versionFunctions: false
  runtime: nodejs12.x
  region: <region>
  stage: dev
  profile: default

functions:
  function-name:
    handler: handler
    timeout: 120
    environment:
      ENV1: ${process.env.ENV1}
      ENV2: ${process.env.ENV2}
      ENV3: ${process.env.ENV3}
Run Code Online (Sandbox Code Playgroud)

我运行时没有收到任何错误或警告,sls deploy但没有上传环境变量。我怎样才能做到呢?

environment-variables serverless-framework

4
推荐指数
1
解决办法
1735
查看次数

如何在spacy运行时下载“en_core_web_sm”模型?

我正在编写一个 lambda 函数,该函数依赖于 Spacy 的“en_core_web_sm”模型。由于AWS Lambda的限制,我需要找到一种允许我在运行时下载模型的机制(我可以增加lambda超时)。

注意:由于某些要求限制,我目前无法使用 EFS。

nlp amazon-web-services aws-lambda spacy serverless-framework

4
推荐指数
1
解决办法
4804
查看次数

无法查看 s3 上传的图像文件

我正在使用 s3 上传图像文件。但每当我尝试使用 URL 以及从 s3 控制台下载时,都会下载图像文件。但是,图像查看器将看不到它。它只是显示不兼容的文件类型。

myS3Function.uploadFile(request.body.fileName, request.files.myFileData, "image_folder").then(filename => {
 //success
})
Run Code Online (Sandbox Code Playgroud)

const AWS = require('aws-sdk');

const s3 = new AWS.S3({
 region: process.env.REGION
});

exports.uploadFile  = (filename, data, folderName) => {
return new Promise((resolve, reject) => {
    const params = {
        Bucket: process.env.AWS_S3_BUCKET, 
        Key: folderName+'/'+filename,
        Body: data.data,
        ACL:'public-read',
        ContentType: "image/jpeg"
    };
    s3.upload(params, function(s3Err, data) {
        if (s3Err) reject(s3Err)
        console.log(`File uploaded successfully at ${data.Location}`)
        resolve(`${data.Location}`)

    });
});
}
Run Code Online (Sandbox Code Playgroud)

我现在使用邮递员上传文件作为表单数据。我可以正确地看到使用此代码上传的文本文件。那么为什么图像会出现这个问题呢?此外,图像和 pdf 实际文件大小也略有增加。

在此输入图像描述

在此输入图像描述

javascript amazon-s3 amazon-web-services serverless-framework serverless

4
推荐指数
1
解决办法
5293
查看次数

如何在 serverless.yml 中配置 eventbridge 规则(使用无服务器框架)以在特定时间调用 lambda

我们已经在 AWS eventbridge 上运行了 python lambda 函数,该函数是使用控制台手动配置的,以便每天晚上 9 点触发 lambda。目前,我们还有 eventbridge 的规则 arn。

计划:

因此,我们正在将所有内容迁移到无服务器框架,以自动化整个 lambda 部署,并使用 serverless.yml 配置 eventbridge 以在晚上 9 点调用 lambda。

谁能告诉我该怎么做?

示例代码:

functions:
  myFunction:
    handler: index.handler
    events:
      - eventBridge:
          --------
          --------
          --------
Run Code Online (Sandbox Code Playgroud)

aws-lambda serverless-framework serverless aws-serverless aws-event-bridge

4
推荐指数
1
解决办法
6609
查看次数

为什么此 CDK 应用程序在 cdk 部署时出现“内部故障”?

我正在尝试创建一个具有 1 个阶段和 1 个堆栈的 CodePipeline NextStack:。cdk deploy我正在得到CREATE_FAILED | AWS::CodePipeline::Pipeline | TodolistPipeline/Pipeline Internal Failure其他日志。什么可能导致此错误?

bin.ts:

import * as cdk from '@aws-cdk/core';
import { PipelineStack } from './pipeline-stack';

const app = new cdk.App();

new PipelineStack(app, 'TodolistPipeline', {
  env: { account: process.env.CDK_DEFAULT_ACCOUNT, region: 'us-east-1' },
});
Run Code Online (Sandbox Code Playgroud)

管道堆栈.ts:

import { Construct, Stack, StackProps } from '@aws-cdk/core';
import {
  CodePipeline,
  CodePipelineSource,
  ShellStep,
} from '@aws-cdk/pipelines';
import { NextJsStage } from './front-end-stage';

export class PipelineStack extends Stack {
  constructor(scope: Construct, …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services typescript aws-codepipeline serverless-framework aws-cdk

4
推荐指数
1
解决办法
1661
查看次数

如何将 prisma 与无服务器框架 aws-nodejs-typescript 模板集成

我正在使用无服务器框架构建无服务器功能。但是我在本地运行时遇到问题

错误:ENOENT:没有这样的文件或目录,打开“/.esbuild/.build/node_modules/.prisma/client/schema.prisma”

prisma/schema.prisma

generator client {
    provider      = "prisma-client-js"
    binaryTargets = ["native", "rhel-openssl-1.0.x"]
}
Run Code Online (Sandbox Code Playgroud)

无服务器.ts

package: {
    individually: true,
    patterns: [
        "!node_modules/.prisma/client/libquery_engine-*",
        "node_modules/.prisma/client/libquery_engine-rhel-*",
        "!node_modules/prisma/libquery_engine-*",
        "!node_modules/@prisma/engines/**",
    ],
},
Run Code Online (Sandbox Code Playgroud)

脚步:

npx prisma generate && npm install 

sls invoke local -f main
Run Code Online (Sandbox Code Playgroud)

我在这里做错了什么?

笔记

node.js serverless-framework prisma prisma2

4
推荐指数
1
解决办法
3183
查看次数

AWS Lambda + API网关开发最佳实践

我们是一个由5名开发人员组成的团队,需要一些关于使用AWS Lambda,API Gateway,DynamoDB和Cognito在AWS上进行开发的最佳方式的指导.我们正在寻找最佳的开发实践.5名开发人员如何在不踩对方脚趾的情况下发展?拥有个人帐户并使用可供每个开发人员使用的云形成模板更好吗?

或者使用无服务器框架并为每个开发人员使用不同的环境?看起来无服务器提供了部署到各种环境的能力,但我相信不同环境的意图是CI/CD,其中相同的代码可以通过各种SDLC移动或特定代码可以推送到特定环境.

amazon-web-services aws-lambda serverless-framework

3
推荐指数
1
解决办法
1633
查看次数