问题标签 [claudiajs]

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.

0 投票
2 回答
842 浏览

node.js - 凭证未在 AWS 的 Claudiajs hello 单词示例中加载

我尝试awsClaudiaJS一起使用,所以首先我从 claudiajs github 下载hello world 示例,然后在我的 aws 上使用这些创建一个用户,AWSLambdaFullAccess然后IAMFullAccess配置AmazonAPIGatewayAdministrator文件.aws/credentials并将配置文件awscli名称从默认更改为 claudia,现在我的凭据是这样的:

之后根据我运行的教程npm i,然后npm start脚本是这样的:

但是在npm start我收到这些错误之后:

消息是:

我在 SF 和网上搜索,但没有发现可以解决我的问题。

我的节点版本是v8.11.3和 npm 版本是5.6.0

0 投票
1 回答
144 浏览

express - Express 应用程序中的链接缺少 Claudia JS 的 API Gateway 阶段

我通过 Claudia JS 部署了一个非常基本的 Express 应用程序。它运行良好,但任何链接或重定向都不会保留 API Gateway 阶段,因此无法正常工作。

例如,我将应用程序部署在http://example.execute-api.eu-west-2.amazonaws.com/production - 在本地运行时相当于http://localhost:3000。如果该页面上有一个链接<a href="/test">本地​​ http://localhost:3000/test,但通过 api 网关它会转到http://example.execute-api.eu-west-2。 amazonaws.com/test - 丢失 URL 的 /production 部分,因此无法正常工作。

有没有办法让 Express 知道所有路由都需要以 /production 开头?

另一种解决方案是使用自定义域,但这似乎很麻烦来解决看起来应该只是一点配置的问题。

0 投票
0 回答
224 浏览

node.js - claudia 和 API-Gateway:禁止 (/latest)

我正在使用 Claudia 将我的 node.js 应用程序转换为 AWS lambda 函数。集成工作正常,我可以在以下地址访问我的无服务器网站的索引:
https://*******.execute-api.eu-west-2.amazonaws.com/latest
现在我可以登录了页面和指向该页面的链接。我的问题是当我单击此链接时,URL 是:
https://*********.execute-api.eu-west-2.amazonaws.com/login
只返回一条禁止消息因为真实页面位于:
https://******.execute-api.eu-west-2.amazonaws.com/latest/login
如何摆脱 /latest 或如何处理它?

谢谢你的帮助!

0 投票
1 回答
118 浏览

amazon-web-services - Claudia.js 自动生成的 lambda 函数未显示在 AWS 控制台上

因此,我使用 express.js 创建了一个 restAPI 后端,并使用 claudia.js 将我的端点上传到 lambda 函数,一切都很顺利。端点按预期工作并返回正确的信息。我唯一的问题是,当我转到我的 aws 控制台时,我看不到创建的 lambda 函数。我不确定这个端点的托管位置。使用 claudia.js 时是否有其他人遇到过这个问题?

0 投票
1 回答
1203 浏览

amazon-web-services - Claudia.js create 在 typescript 项目中找不到模块 lambda

在搜索了几个小时后,我无法弄清楚如何在我的项目中正确运行claudia create 。

按照这个教程,我在 AWS 控制台中创建了一个组和一个用户,然后我将密钥添加到了我的.aws/credentials文件中。

然后我运行了正确生成 lambda.js 文件的命令:

claudia --source dist generate-serverless-express-proxy --express-module app

我的lambda.js

然后我尝试在 AWS 上部署 lambda 函数:

claudia create --source dist --profile myprofile --handler lambda.handler --deploy-proxy-api --region eu-west-1

但我收到了这个错误:

验证包 TypeError:“listener”参数必须是 _addListener (events.js:239:11) 处的函数,位于新服务器 (_http_server.js:269:10) 处.createServer (http.js:34:10) 在 Object.createServer (/tmp/IiRPif/my-project-1.0.0-1Yh6Wb/package/node_modules/aws-serverless-express/index.js:155:25) 在目的。(/tmp/IiRPif/my-project-1.0.0-1Yh6Wb/package/lambda.js:13:37) 在 Module._compile (module.js:652:30) 在 Object.Module._extensions..js (模块.js:663:10) 在 Module.load (module.js:565:32) 在 tryModuleLoad (module.js:505:12) 在 Function.Module._load (module.js:497:3) 在 Module.require (module.js:596:17) 在需要 (internal/module.js:11: 18) 在 validatePackage (/usr/local/lib/node_modules/claudia/src/tasks/validate-package.js:16:15) 在 initEnvVarsFromOptions.then.then.then.then.then.then.then.dir (/ usr/local/lib/node_modules/claudia/src/commands/create.js:342:10) 在全新安装后不能需要 ./lambda。检查您的依赖项。

我在这里做错了什么?

我的package.json

我的app.ts

0 投票
2 回答
216 浏览

node.js - 我应该使用扫描还是查询?

我在 DynamoDB 中很难在两个日期之间选择一组条目。我的日期是字符串,格式简单为“2018-01-01”。

我应该使用查询还是扫描?我的参数看起来还好吗?该操作似乎有效,但我没有得到任何结果。我究竟做错了什么?

这是我的代码:

0 投票
1 回答
616 浏览

javascript - AWS Lambda 中的 Facebook Graph API 失败?

所以我一直在尝试让 Facebook 身份验证正常工作。在本地,我的代码运行良好。一旦使用 Claudia 包裹在 Lambda 中,Facebook 登录似乎停止工作。我在 Facebook 开发人员设置中验证了我的登录网址

0 投票
1 回答
1407 浏览

amazon-s3 - 通过 Lambda 和 API Gateway 从 AWS S3 下载图像——使用 fetch 类

我正在尝试使用JavaScript fetch APIAWS API GatewayAWS LambdaAWS S3创建允许用户上传和下载媒体的服务。服务器正在使用 NodeJs 8.10;浏览器是 Google Chrome 版本 69.0.3497.92(官方版本)(64 位)。

从长远来看,允许的媒体包括音频、视频和图像。现在,我很乐意让图像正常工作。

我遇到的问题:我的浏览器端客户端(使用 fetch 实现)能够通过 API Gateway 和 Lambda 将 JPEG 上传到 S3。我可以使用curlS3 控制台从我的 S3 存储桶下载 JPEG,然后在图像查看器中查看图像就好了。

但是,如果我尝试通过浏览器端客户端下载图像并获取,我将无法在浏览器中显示任何内容。

以下是浏览器端客户端的代码:

这是使用Claudia.js的服务器端代码:

以下是OPTIONChrome 网络面板中的初始请求和响应标头:

选项标题,两个之一 选项标题,两个中的两个

这是随之而来的GET请求和响应标头:

GET 标头,两个之一 GET 标头,两个中的两个

令我感兴趣的是,图像大小在 S3 控制台中报告为 699873(没有单位),但 GET 事务的响应正文在 Chrome 中报告为大约 2.5 MB(同样,没有单位)。

生成的图像是 16x16 方形和死链接。我在浏览器的控制台或 CloudWatch 中没有收到任何错误或警告。

我尝试了很多东西;很想听听外面的人能想出什么。

提前致谢。

编辑:在 Chrome 中:

控制台工作显示将获取响应转换为表示 JSON 编码缓冲区的文本

0 投票
1 回答
160 浏览

node.js - 从 claudia.js 构建中排除部分 npm 包

我目前正在使用claudia.js将无服务器功能部署到 AWS Lambda。但是,由于大小限制,我遇到了以下错误:

RequestEntityTooLargeException:对于 CreateFunction 操作,请求必须小于 69905067 字节

为了解决这个问题,我试图排除 npm 包的子文件夹,因为它不需要,但我不确定如何在此过程中执行此操作claudia build

具体来说,我想排除一个示例子文件夹>node_modules/packet/subfolder/*

我弄乱了各种配置,.gitignore.npmignore收效甚微。任何帮助都会很棒!

0 投票
1 回答
50 浏览

jasmine-node - Claudia.js 茉莉花发布/放置正文密钥

我正在使用 claudia-api-builder 并尝试使用 jasmine-node 编写测试。我正在使用本教程https://claudiajs.com/tutorials/testing-locally.html在我的 API 上使用 proxyRouter ,并且我可以很好地传递路径参数,如图所示。但是,我找不到请求正文的密钥是什么。

例如它说

您可以根据测试的预期填写其他属性(例如 queryStringParameters)

但我找不到列出可能属性的任何地方。API Gateway 代理对象链接似乎也没有任何用处,因为示例似乎不包含正文。

有人知道我应该使用什么键吗?谢谢!