问题标签 [aws-sdk-js-v3]

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 投票
1 回答
35 浏览

amazon-dynamodb - AWS JS SDK 是否移除了控制 dynamodb 操作超时的功能?

虽然在 dynamodb/document 客户端上设置请求超时时遇到问题(使用 v2 SDK,如何为 AWS DocumentClient javascript SDK 设置默认超时),但我决定探索切换 v3 API,因为它具有一定的优势。

但是查看完整的客户端DynamoDB,更重要的是它的配置DynamoDBClientConfig,似乎没有办法控制整体请求超时。

而 v2 接口httpOptions(在引用的问题中似乎不起作用)v3 配置似乎没有任何控制,甚至没有定义单个请求在超时(和重试或其他)之前可能等待多长时间。

现在是否必须使用自定义 requestHandler 来实现?中是否有此示例代码node.js

0 投票
0 回答
78 浏览

javascript - 如何使用适用于 JavaScript 的 AWS 开发工具包 V3 版本将 PDF 文件的 ReadableStream 存储到磁盘

我正在尝试在 Node JS 中S3使用 AWS SDK for JavaScript V3(' ) 下载 PDF 文件。aws-sdk/client-s3'它适用于纯文本文件,但不确定 PDF 如何流式传输到 PDF 文件。感谢任何帮助

我编写了一个示例Node JS模块并从 AWS的调用中s3Module.js返回。我尝试了不同的方法来下载文件,但生成的 PDF 是零字节的。响应的VSCode 中可见。我想我缺少编码或其他东西。感谢任何帮助。ReadableStreamgetObjectBody

s3Module.js

0 投票
1 回答
100 浏览

amazon-web-services - 用于翻译客户端的 aws-sdk-js 导致错误“无法读取未定义的属性 'byteLength'”

我在 Node.js 应用程序中运行 AWS SDK V3 Translate Client 来翻译句子。这是我的代码:

我已按照文档中的说明进行操作。

但是,结果如下。

这个问题的原因是什么,我该如何解决?

0 投票
0 回答
89 浏览

aws-sdk-js - RedshiftDataClient BatchExecuteStatement 将所有查询合二为一

我正在使用 RedshiftDataClient (@aws-sdk/client-redshift-data 3.39.0) 中的 BatchExecuteStatement 命令对 redshift 执行一些查询。这没有更新数据库,但也没有引发错误,所以为了解决问题,我使用 ListStatements 命令查看是否有关于发生了什么的见解。我发现我的所有查询都被合并为一个。例如:

返回

查看 ListStatements 的文档,我希望在这种情况下接收带有查询数组的 QueryStrings 属性,而不是连接查询的 QueryString 属性。

我需要运行的实际查询当然要长得多,问题是当它们像这样连接时,连接字符串中只有每个字符的前 100 个字符,所以它们没有成功运行的希望。

知道我做错了什么吗?

0 投票
1 回答
857 浏览

node.js - 如何使用 AWS SDK v3 将流上传到 S3

我必须将文件从 API 端点传输到两个不同的存储桶。原始上传是使用:

上传文件的端点:

如您所见,我使用了两个PassThrough流,以便将请求流复制到两个可读流中,正如此 SO thread 中所建议的那样

这段代码保持不变,这里有趣的是uploadToFirstS3anduploadToSecondS3函数。在这个最小的例子中,两者都使用不同的配置做完全相同的事情,我将在这里只使用一个。

什么效果好:

这段代码(基于aws-sdk包)工作正常。我的问题是我希望它与@aws-sdk/client-s3包一起运行,以减小项目的大小。

什么不起作用:

我首先尝试使用S3Client.send(PutObjectCommand)

然后我尝试了 S3.putObject(PutObjectCommandInput)

最后两个示例都给了我一个501-Not Implemented错误的标题Transfer-Encoding。我检查了一下req.headers,里面没有Transfer-Encoding,所以我猜是 sdk 在请求中添加了 s3 ?

由于第一个示例(基于aws-sdk)工作正常,我确信错误不是由于请求中的空正文,如此 SO thread中所建议的那样。

尽管如此,我认为触发上传时流可能还不可读,因此我将调用uploadToFirstS3和事件uploadToSecondS3触发的回调包装起来req.on('readable', callback),但没有任何改变。

我想随时处理内存中的文件而不将其存储在磁盘上。有没有办法使用@aws-sdk/client-s3包来实现它?

0 投票
1 回答
49 浏览

aws-lambda - 即使在提供区域之后,aws-sdk v3 lambda 区域也缺失

我正在将 aws-sdk 从 v2 迁移到 v3,并且在设置 lambda 客户端时遇到问题。如文档中所示,我在 lambda 客户端的实例化期间提供了区域,但是在客户端上运行 InvokeAsyncCommand 时,出现“Region is missing”错误。

沙盒包含重现的问题

https://codesandbox.io/s/xenodochial-robinson-ljqfo

0 投票
1 回答
27 浏览

node.js - AWS S3Client 引发错误:“emitWarning”不是函数

我正在尝试使用该@aws-sdk/client-s3包创建一个 S3Client,如下所示:

它在本地运行良好,但是当我将代码连同 client-s3 依赖项一起上传到 MongoDB Realm 函数时,它会引发错误:{"message":"'emitWarning' is not a function","name":"TypeError"}

什么可能导致此错误?

0 投票
1 回答
128 浏览

javascript - AWS SDK JavaScript v3 / 如何在 dynamoDB 扫描命令中使用 ExpressionAttributeNames?

我正在使用 Lambda 函数,该函数从 dynamoDB 表中的用户 ID 获取用户电子邮件。我使用 dynamoDB 扫描命令扫描 dynamoDB 表中的所有项目。我使用新的 v3 AWS JS 开发工具包。

问题:为什么ExpressionAttributeNames在我的情况下不能正常工作?

这有效:

但这不起作用,为什么?


我的 Lambda 扫描操作代码本身如下所示:



文档:

https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-dynamodb/interfaces/scancommandinput.html#expressionattributenames

0 投票
1 回答
39 浏览

amazon-web-services - 如何使用现有 IAM 角色调用新的 EC2 实例?/ JavaScript AWS SDK v3 - RunInstancesCommand

如何在 JavaScript 中启动带有附加(现有)IAM 角色的 EC2 实例?

我知道这个问题已被问到其他语言,但我找不到 JavaScript 的示例。

我的 JS Lambda 代码目前看起来像:


文档:

https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-ec2/interfaces/runinstancescommandinput.html#iaminstanceprofile


上面的代码运行,但 EC2 > Instances > Security 选项卡下的 IAM Role 在我所有的尝试中都保持为空

0 投票
1 回答
75 浏览

mysql - AWS Aurora MySQL 准备好的语句

我有一个插入查询,我想使用 JavaScript V3 AWS 客户端针对 AWS Aurora MySQL 无服务器数据库执行。我正在使用数据库的数据 API。我@aws-sdk/client-rds-data在我的代码中进行了设置,我可以使用ExecuteStatementCommand.

我想知道的是我如何制作 SQL 准备好的语句并执行它们。我有一个INSERT查询,其值是用户提供的。我不能只是将这些值连接到 SQL 查询中,因为它会创建 SQL 注入漏洞。

@aws-sdk/client-rds-data不幸的是,我在包的文档中找不到如何制作准备好的语句并执行它们。

如果有人知道该怎么做,有人可以解释一下。提前非常感谢!