我正在尝试使用该serverless框架来创建和部署AWS Lambda函数.我创建了一个vendored在项目根目录中命名的文件夹,并安装(使用pip install)函数依赖项.但是,每当我尝试运行它(使用serverless function run)时,我都会收到错误:
无服务器:运行isNewUser ...
无服务器:警告:此变量未定义:区域
无服务器:-----------------
无服务器:失败 - 返回此错误:
无服务器:{"异常":["Traceback(最近一次调用最后一次):\n","File \"/ home/fernando/.nvm/versions/node/v5.10.1/bin/serverless-run-python-handler \",line 170,在\n handler = import_program_as_module(path)\n","File \"/ home/fernando/.nvm/versions/node/v5.10.1/bin/serverless-run-python-handler \",第149行,在import_program_as_module \n module = make_module_from_file('lambda_handler',handler_file)\n","File \"/ home/fernando/.nvm/versions/node/v5.10.1/bin/serverless-run-python-handler \",第129行,在make_module_from_file \n py_source_description \n","File \"/ home/fernando/workspace/os-cac/isNewUser/handler.py \",第11行,在\n中从vtex.order import Order \n" ,"ImportError:没有名为vtex.order的模块\n"],"成功":false}无服务器:来自Python
无服务器的异常消息:Traceback(最近一次调用最后一次):,Fil e"/home/fernando/.nvm/versions/node/v5.10.1/bin/serverless-run-python-handler",第170行,处理程序= import_program_as_module(路径),文件"/home/fernando/.nvm/版本/ node/v5.10.1/bin/serverless-run-python-handler",第149行,在import_program_as_module模块中= make_module_from_file('lambda_handler',handler_file),文件"/home/fernando/.nvm/versions/node/v5 .10.1/bin/serverless-run-python-handler",第129行,在make_module_from_file py_source_description,文件"/home/fernando/workspace/os-cac/isNewUser/handler.py",第11行,来自vtex.order import Order,ImportError:没有名为vtex.order的模块`
vtex.order 是在handler.py中导入的模块
我的项目结构如下:
/root/
|
|--_meta/
|--vendored/
|--dependencies...
|--function-name/
|--handler.py
|--event.json
|--s-function.json
|--requirements.txt
|--admin.env
|--package.json
|--s-project.json
|--s-resources-cf.json
|--s-project.json
Run Code Online (Sandbox Code Playgroud)
有什么我做错了吗?我应该以某种方式配置我的功能以包括来自vendored的依赖项?
如何将托管策略附加到 lambda 函数?
我试过:
provider:
name: aws
role: arn:aws:iam::aws:policy/AmazonCognitoReadOnly
Run Code Online (Sandbox Code Playgroud)
但这导致了以下错误:
配置堆栈时发生错误:GaDashextractLambdaFunction - 检测到 1 个验证错误:“角色”处的值“arn:aws:iam::aws:policy/AmazonCognitoReadOnly”无法满足约束:成员必须满足正则表达式模式:arn:aws: iam::\d{12}:角色/?[a-zA-Z_0-9+=,.@-_/]+.
amazon-web-services amazon-iam amazon-cognito aws-lambda serverless-framework
我有一个具有以下结构的 NodeJS 无服务器项目:
-node_modules
-package.json
-serverless.yml
-funcitons
-medium
-mediumHandler.js
Run Code Online (Sandbox Code Playgroud)
我的无服务器.yml:
service: googleAnalytic
provider:
name: aws
runtime: nodejs6.10
stage: dev
region: us-east-1
package:
include:
- node_modules/**
functions:
mediumHandler:
handler: functions/medium/mediumHandler.mediumHandler
events:
- schedule:
name: MediumSourceData
description: 'Captures data between set dates'
rate: rate(2 minutes)
- cloudwatchEvent:
event:
source:
- "Lambda"
detail-type:
- ""
- cloudwatchLog: '/aws/lambda/mediumHandler'
Run Code Online (Sandbox Code Playgroud)
我的 sls 信息显示:
Service Information
service: googleAnalytic
stage: dev
region: us-east-1
stack: googleAnalytic-dev
api keys:
None
endpoints:
None
functions:
mediumHandler: googleAnalytic-dev-mediumHandler
Run Code Online (Sandbox Code Playgroud)
当我运行 sls 时:
serverless …Run Code Online (Sandbox Code Playgroud) 我正在使用无服务器框架.我的Lambda函数连接到DynamoDB表以更新表中的项目.表的读写容量单位为5,禁用auto_scaling.AWS Lambda函数分配了128MB内存.
我已经使用Jmeter进行性能测试.我已经同时发送了1000个请求,一些响应给了我完美的输出,而其他给出了内部服务器错误(502 Bad Gateway).我还分析了cloudwatch的日志,只获得了Task Timeout错误.任何人都可以建议我为什么我得到这个错误,以及如何解决它?
lambda amazon-web-services amazon-dynamodb serverless-framework api-gateway
我正在尝试在 cloudformation 中为 cloudfront 分布引用边缘 lambda。
我现在拥有的是:
LambdaFunctionARN:
Fn::GetAtt: [BasicAuthLambdaFunction,Arn]
Run Code Online (Sandbox Code Playgroud)
但我收到此错误:
发生错误:GGGCloudFrontDistribution - 函数 ARN 必须引用特定的函数版本。(ARN 必须以版本号结尾。)
那么..是否有某种技术可以引用该功能的最新版本?
amazon-web-services amazon-cloudfront aws-cloudformation serverless-framework
我正在尝试使用无服务器对包进行简单的部署。然而,当我尝试时,我收到以下错误,指出我指定的存储桶不存在。
我已经在每个服务的基础上尝试过这个,似乎我的存储桶都不存在,但我正在 S3 和 cloudwatch 中查找,所有存储桶都在那里。
是否可以让 Serverless 输出它尝试访问的存储桶?我发现这个错误非常没有帮助,
Serverless Error ---------------------------------------
Could not locate deployment bucket. Error: The specified bucket does not exist
Get Support --------------------------------------------
Docs: docs.serverless.com
Bugs: github.com/serverless/serverless/issues
Forums: forum.serverless.com
Chat: gitter.im/serverless/serverless
Your Environment Information -----------------------------
OS: darwin
Node Version: 6.10.3
Serverless Version: 1.26.1
Run Code Online (Sandbox Code Playgroud) amazon-s3 amazon-web-services serverless-framework serverless
是否可以创建无服务器框架Lambda部署,其中Lambda部署到现有VPC的SecurityGroup中?我不希望服务部署或它的堆栈拥有一个网络工件?
aws-cloudformation aws-sdk aws-lambda aws-api-gateway serverless-framework
我正在使用 python 3.7 在 AWS Lambda 中设置一个函数,它不会让我返回字节类型
请注意,这不是 API Gateway 的问题,我是直接调用 lambda 的。
错误是:Runtime.MarshalError, ... is not JSON serializable
output = BytesIO()
#Code that puts an excel file into output...
return {
'Content-Disposition': 'attachment; filename="export.xlsx"',
'Content-Type': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
'body' : output.getvalue()
}
Run Code Online (Sandbox Code Playgroud)
如果我做 :
'body' : str(output.getvalue())
Run Code Online (Sandbox Code Playgroud)
它输出损坏的文件,因为它添加b''到字符串
如果我做 :
'body' : base64.b64encode(output.getvalue()).decode()
Run Code Online (Sandbox Code Playgroud)
它还输出损坏的文件,可能是因为它更改了文件的二进制表示。
也许我需要上传到 S3?但它不适合我的流程,这是一次性文件创建,它会一直停留在“S3 Limbo”中,直到 TTL
amazon-web-services python-3.x aws-lambda serverless-framework
我面临与Github 问题相同的问题,但适用于不同的用例。我正在尝试添加应用程序的多个实例:此处的示例代码。
添加域后,我收到相同的错误:
Domain www.app.com was not found in your AWS account.
Run Code Online (Sandbox Code Playgroud)
因此,为了实现多个实例,我尝试将 env-prod 文件更改为bucket="prod-appname". 这已部署,但是当我将 env-stage 文件添加到 时bucket="stage-appname",这会创建一个新存储桶,但会将其部署到相同的 CloudFront URL。有没有办法修复它们中的任何一个,以便我可以实现多个实例?
提前致谢
javascript amazon-web-services amazon-cloudfront serverless-framework next.js
触发警告:初学者问题。
\n\n我使用 Express 和 Mongoose 以及 MongoDB Atlas DB 构建了一个 api。
\n\n大多数时候,它工作正常,但经常出现超时错误。这似乎是非常随机发生的,涉及所有路线等......准确地说,我得到:
\n\n`502 Internal server error via POSTMAN`\nRun Code Online (Sandbox Code Playgroud)\n\n在无服务器仪表板中,我得到:
\n\ninvocation\ntime invoked 1 day ago, mar 08 at 1:38pm\nfatal error Function execution duration going to exceeded configured timeout limit.\ncold start\nduration 48.9 s\nmemory used na\n\nrequest\nendpoint /{proxy+}\nmethod POST\nstatus 502\nmessage Internal server error\nlatency 27 ms\nRun Code Online (Sandbox Code Playgroud)\n\n和跨度和日志:
\n\n\n\n我使用本教程来包装我的 Express 应用程序,以使用无服务器框架进行部署:https://dev.to/adnanrahic/a-crash-course-on-serverless-apis-with-express-and-mongodb-193k
\n\n无服务器.yml 文件:
\n\nservice: serviceName\napp: appName\norg: orgName\n\nprovider:\n name: aws\n runtime: nodejs12.x\n stage: ${env:NODE_ENV}\n region: eu-central-1\n …Run Code Online (Sandbox Code Playgroud) mongoose express aws-lambda aws-api-gateway serverless-framework
aws-lambda ×5
serverless ×2
amazon-iam ×1
amazon-s3 ×1
api-gateway ×1
aws-sdk ×1
express ×1
javascript ×1
lambda ×1
mongoose ×1
next.js ×1
node.js ×1
python ×1
python-3.x ×1