问题标签 [aws-serverless]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
yaml - 无法从 AWS::ApiGateway::Model 资源的输出部分引用 API
我能够使用 Cloudformation / Serverless Application Model 定义和部署我的 API Gateway + Lambda 堆栈,并希望将模型添加到我的 API。
我已经在 YAML 中创建了模型,但它似乎无法引用Outputs
我文件部分中定义的 API。
我看到的错误是
未能创建变更集:Waiter ChangeSetCreateComplete 失败:Waiter 遇到终端故障状态状态:FAILED。
原因:模板格式错误:模板的Resources块中未解决的资源依赖[MyApi]
是否可以引用该Output
对象,或者在这种情况下它不被视为资源?即我是否需要明确定义AWS::Serverless::Api
而不是使用Output
?
amazon-web-services - 即使在添加凭证之后,AWS Lambda 无服务器部署也要求提供 AWS 提供商凭证
我正在尝试使用以下命令部署我的 lambda 函数
serverless deploy
但我得到这个错误
ServerlessError:未找到 AWS 提供商凭证。
但我已经使用以下命令配置了 AWS 凭证
serverless config credentials --provider aws --key AKINA4KOZEU44A --secret X0DGlLin/Gn89GPIAOLr8gnwZWAWLCv+ --profile serverless-admin
并且仍然得到同样的错误。
node.js - “sls dynamodb start”抛出 spawn java ENOENT
在 Mac 上运行,我使用 aws-nodejs 模板创建了一个基本的无服务器服务:
之后,我使用以下命令添加无服务器本地:
无论我做什么,我都无法启动 dynamodb-local。当我跑
我收到以下错误:
跑步java --version
给了我以下信息:
我正在使用 Node 8.11.4 和无服务器 1.30.1。Aws-sdk 也已安装,我已经设置了我的个人资料。
谢谢
aws-lambda - AWS Lambda“无法导入模块”
我一直在尝试创建我的第一个 Lambda 函数,但每次运行它时,我都会收到“无法导入模块 'app'”。
我一直在按照 Amazon 编写的教程创建一个连接到 Amazon RDS db 的函数,因此我的 Lambda 函数必须包含 PyMySQL 库。
https://docs.aws.amazon.com/lambda/latest/dg/vpc-rds-create-rds-mysql.html
我很确定我的问题是我没有正确压缩目录的内容,因此 Lambda 无法找到我的 app.py 文件以找到处理程序并执行。
我已经按照步骤创建了一个部署包,我在网上查看过,创建新的 linux 机器,在虚拟环境中压缩等,但没有任何效果,每次我都会收到同样的错误。
有人可以用完整的命令一步一步地写下我需要做什么才能正确创建部署包,或者他们做什么才能让他们的 python 函数在 Lambda 中运行
提前致谢!!
amazon-kinesis - 行未添加到 AWS Kinesis 分析 Kinesis 数据流的应用程序内 SQL 流
我正在调用dynamoDBTrigger
. 此流被配置为 kinesis 分析应用程序的输入流。我在 kinesis 流上配置了一个 lambda 预处理器,用于记录写入流中的数据。但是,在源选项卡的分析应用程序窗口中,会出现消息源流中没有行。这些行不在应用程序内的 sql 流中创建。
我正在使用 Node 并使用serverless.yml
文件部署服务。以下是配置 -
RecordKinesisAnalyticsApp:
Type: AWS::KinesisAnalytics::Application
Properties:
ApplicationName: RecordKinesisAnalyticsApp
ApplicationDescription: RecordKinesisAnalyticsApp
ApplicationCode: ${file(./serverless/metadataQueries.yml):AnalyticsQuery_1}
Inputs:
- NamePrefix: "RecordPrefix"
InputSchema:
RecordColumns:
- Name: "USER_ID"
SqlType: "VARCHAR(20)"
Mapping: "$._userId"
- Name: "ANXIETY"
SqlType: "INTEGER"
Mapping: "$.anxiety"
RecordEncoding: "UTF-8"
RecordFormat:
RecordFormatType: "JSON"
KinesisStreamsInput:
ResourceARN:
Fn::GetAtt:
- RecordKinesisInputStream
- Arn
RoleARN: arn:aws:iam::xxxxxxxxxxx:role/service-role/kinesis-analytics-KinesisDemo-us-east-1
这是分析查询 -
CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM " (USER_ID VARCHAR(20), ANXIETY INTEGER);
CREATE OR REPLACE PUMP "STREAM_PUMP" AS INSERT INTO "DESTINATION_SQL_STREAM"
SELECT STREAM USER_ID, ANXIETY
FROM "RecordPrefix_001"
WHERE ANXIETY >= 0;
amazon-web-services - 未收到来自使用 flask-restful 和 flask-mail 开发并部署在 AWS Lambda 上的 api 的邮件
我制作了一个具有邮件功能(异步)的 API。当我在本地运行 API 时可以接收电子邮件,但在通过 AWS Lambda 部署时无法接收电子邮件。是否需要额外的配置?
所有进口
配置类定义
初始化应用程序
异步包装函数定义
资源类定义
注册/添加资源
运行脚本
我在 AWS-Lambda 上使用Zappa进行无服务器部署。
aws-lambda - 如何在无服务器中保护 AWS 访问密钥
我正在编写一个连接到 DynamoDB 的无服务器应用程序。
目前我正在从 json 文件中读取访问密钥 ID 和安全访问密钥。
我将使用 Jenkins 进行 CI 并且需要一种方法来保护这些密钥。
我要做的是将密钥设置为环境变量并在应用程序中读取它们。但问题是我不知道每次启动 lambda 函数时如何设置环境变量。
我读过有一种方法可以在 serverless.yml 文件中配置它,但不知道如何。
如何做到这一点?
kotlin - AWS Lambda + API 网关“无访问控制允许来源”
我将 AWS Lambda 与 API Gateway 一起使用。我在其他运行良好的项目中使用了相同的设置。唯一的区别是我使用的是 Kotlin 而不是 Go 和无服务器框架。我有 2 个端点,一个用于获取风味列表,另一个用于添加风味。两者都使用 header Access-Control-Allow-Origin: *
。对于前端,我使用 React 并使用 axios 对 api 进行 http 调用。获取风味列表工作正常,但是当我尝试使用该端点添加风味时,我得到了No Access-Control-Allow-Origin
错误。奇怪的是,当我使用 API Gateway 测试功能发出相同的请求时,它说标头存在并且一切正常。我还尝试使用 Intellij http 调用和 curl 发出相同的请求,这两者也都有效。
我希望其他人以前也遇到过这个问题,感谢您的宝贵时间!
node.js - 无法在 nodejs 中导入模块“处理程序”aws lambda 函数
我不断收到此错误,我不知道是什么原因造成的。
我有一个基于条件的 API 将发布到另一个 API,但我在包装 API 中收到此错误。
这是代码...
handler.js
无服务器.yaml
任何意见,将不胜感激。
错误信息:
node.js - 编写 AWS Lambda nodejs api 的最佳实践或指南
我正在为特定任务创建无服务器 aws lambda 函数。这个 lambda 函数由 api 网关触发。我发现手动逐个创建 Lambda 函数然后为该函数分配触发器既耗时又难以维护。我也想要重用代码。
我想知道是否有任何我们应该遵循的最佳实践、指导方针或模式,以使我们的工作更轻松、代码可在不同的 lambda 函数中重用以及代码可维护。