有以下设置:
serverless.ymlapi.mydomain.com附加到 API 网关的自定义域(例如)dev和prod)abcdefg.cloudfront.net有一项高级任务是更新两个 lambda 函数,而不会导致它们所服务的 API 停机。如何使用无服务器框架来做到这一点?
注意:有两种方法可以管理 lambda 部署:阶段和别名(版本)。目前别名在无服务器中不起作用(有一个分支可以修复该问题,但这并不重要)。
amazon-web-services aws-lambda serverless-framework aws-serverless
我有一个 AWS CodeBuild 项目,它尝试安装无服务器框架,但在标题中返回错误,但它表示框架已成功安装。我的理解是,这无法安装 snappy 模块。这是为什么?我该如何解决这个问题?
我在 buildspec.yaml 中运行的命令是:
npm install -g serverless
Run Code Online (Sandbox Code Playgroud)
我的用户是:
/root
Run Code Online (Sandbox Code Playgroud)
我不太关心事件的顺序,但我希望消息只被处理一次。侦听 SQS 消息的 lambda 会将其存储在 DynamoDB 中,因此吞吐量非常重要,因为我有多个微服务(作为生产者)将消息写入此 SQS,这些消息将由单个微服务读取。
关于只处理一次消息,这是 FIFO 队列支持的,但据说吞吐量不太好。
如果每条消息都有唯一的 groupId,那么 FIFO 队列的吞吐量与标准队列相同吗?
如果没有,我的下一个选择可能是在存储消息时在 DynamoDB 中使用“attribute_not_exists”。
其中哪一个应该效果更好?
amazon-sqs amazon-web-services amazon-dynamodb serverless-framework serverless
我正在尝试将环境变量传递给 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但没有上传环境变量。我怎样才能做到呢?
我正在编写一个 lambda 函数,该函数依赖于 Spacy 的“en_core_web_sm”模型。由于AWS Lambda的限制,我需要找到一种允许我在运行时下载模型的机制(我可以增加lambda超时)。
注意:由于某些要求限制,我目前无法使用 EFS。
nlp amazon-web-services aws-lambda spacy serverless-framework
我正在使用 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
我们已经在 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
我正在尝试创建一个具有 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
我正在使用无服务器框架构建无服务器功能。但是我在本地运行时遇到问题
错误: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)
我在这里做错了什么?
笔记:
尝试遵循此示例: https: //github.com/prisma/prisma-examples/tree/latest/deployment-platforms/aws-lambda
我正在使用 serverless aws-nodejs-typescirpt 模板,该模板使用 serverless-esbuild 而不是 serverless-webpack
我们是一个由5名开发人员组成的团队,需要一些关于使用AWS Lambda,API Gateway,DynamoDB和Cognito在AWS上进行开发的最佳方式的指导.我们正在寻找最佳的开发实践.5名开发人员如何在不踩对方脚趾的情况下发展?拥有个人帐户并使用可供每个开发人员使用的云形成模板更好吗?
或者使用无服务器框架并为每个开发人员使用不同的环境?看起来无服务器提供了部署到各种环境的能力,但我相信不同环境的意图是CI/CD,其中相同的代码可以通过各种SDLC移动或特定代码可以推送到特定环境.
aws-lambda ×4
serverless ×4
amazon-s3 ×1
amazon-sqs ×1
aws-cdk ×1
javascript ×1
nlp ×1
node.js ×1
prisma ×1
prisma2 ×1
spacy ×1
typescript ×1