问题标签 [aws-sdk-nodejs]

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 回答
1980 浏览

node.js - 在 ECS 中运行时,适用于 node.js 的 AWS 开发工具包未获取凭证

我有这个代码:

当这段代码在 ecs 中运行时(它假设一个可以访问 S3 存储桶的角色),我会在日志中得到这个:

日志的 env 部分:

“AWS_CONTAINER_CREDENTIALS_RELATIVE_URI”存在于环境变量中,所以我认为 sdk 应该能够获取它。

日志的提供者部分只是 sdk 代码中定义的 4 个函数,如果在 env var 中看到“AWS_CONTAINER_CREDENTIALS_RELATIVE_URI”,则其中第 4 个函数将返回“ECSCredentials”。

奇怪的是,日志的 cred 部分在 ECS 中是“null”。当我在本地运行它时(我手动承担一个角色),日志的 cred 部分是“EnvironmentCredentials”,并且文件被上传到 S3。

日志的错误部分是:

我的代码或环境变量有什么问题吗?

我应该打印更多日志以帮助诊断此问题吗?

请指教,谢谢。

==========更新==========

我已经在 ECS 中运行了这段代码 const curlCommand = `curl http://169.254.170.2${process.env.AWS_CONTAINER_CREDENTIALS_RELATIVE_URI}`; exec(curlCommand, (error, stdout, stderr) => { console.log(`${curlCommand} err:${error} out:${stdout} stderr:${stderr}`); });

我得到的结果是: { "SecretAccessKey": "long string", "Token": "very long string", "Expiration": "2018-01-14T08:55:04+0000", "AccessKeyId": "shorted string" }

因此,如果 sdk 调用了http://169.254.170.2 ${process.env.AWS_CONTAINER_CREDENTIALS_RELATIVE_URI},它应该得到正确的响应。

0 投票
1 回答
610 浏览

node.js - 如何使用 Node 中的 aws-sdk 模块从 S3 下载所有具有匹配密钥的文件?

在 S3 存储桶中说s3://my-bucket-name

我有以下文件:

file1.txt

file2.txt

file3.txt

abc.txt

one.txt

如果我想下载匹配 regex 的文件file*.txt,是否可以通过aws-sdknode 模块实现?如果不是,我能做什么?

0 投票
2 回答
32385 浏览

amazon-web-services - 如何从 lambda (nodejs aws-sdk) 获取环境变量

我们可以在 aws-lambda 中设置环境变量,例如通过 AWS SAM:

如何通过 Node JS AWS-SDK 从当前 lambda 获取这些变量?

0 投票
1 回答
1826 浏览

amazon-web-services - 如何从 AWS S3“ObjectRemoved:Delete”事件中获取文件大小

背景

我在 S3 存储桶中存储了一些文件(对象)。每当从 S3 存储桶中删除任何文件时,都会触发我的 Lambda 函数。lambda 函数需要从 DynamoDB 中减去对象大小。

问题: S3 deleteObject 事件不发送对象大小

示例 S3 deleteObject 事件

请帮我为我的用例找到解决方案。

0 投票
1 回答
1175 浏览

amazon-s3 - 节点 AWS.S3 SDK 上传超时

由于某种原因,使用 Node AWS SDK S3.upload 方法无法完成分段上传。

从浏览器接收上传的可读流被设置为Body (可读流能够被管道传输到文件 writableStream 而没有任何问题)。

S3.upload 被赋予以下选项对象:

当尝试上传约 8.5mb 的文件时,该文件完全是从浏览器发送的,但从 S3.upload 返回的请求会不断触发“httpUploadProgress”事件,表明所有字节都已上传。不断收到以下内容,直到发生错误:

进度加载字段显示它已加载总字节数,但上传从未完成。甚至end可读流上的事件也会触发。

SDK 本身中的控制台日志显示 S3.upload 消耗了可读流中的所有可用数据,即使部分大小设置为 5mb 并且队列大小设置为 1。

零件大小和队列大小是否会影响 S3.upload 的正确使用?如何进一步调查这个问题?

0 投票
2 回答
2330 浏览

amazon-dynamodb - 如何修复 Dynamo-db 中针对空/空字符串的禁用验证?

我正在尝试将数据从节点 JS 代码推送到 Dynamodb。

我遇到了这样的问题

DynamoDB.DocumentClient 应该支持空字符串属性

有谁知道如何在 DynamoDB 中禁用验证?

0 投票
2 回答
1644 浏览

node.js - 如何在不使用 Node-js 中的 Scan 的情况下从 Dynamo-Db 中读取单个列?

我的 Dynamo Db 中有 450 万条记录。

我想批量读取每条记录的 id。

我期待诸如偏移和限制之类的东西,例如我们如何在 Mongo Db 中阅读。

Node-JS中有没有没有扫描方法的建议。

我已经做了足够的研究,我只能找到从 Dynamo Db 缓冲完整记录并开始扫描记录的扫描方法,这在性能基础上无效。

请给我建议。

0 投票
0 回答
1241 浏览

aws-lambda - 我可以从 AWS Lambda 创建的最大出站连接是多少?

我正在查看有关Lamba Limits的文档,其中说:

文件描述符数 1,024

我想知道这是每次调用 lambda 还是所有 lambda 的总数?

我正在处理来自 kinesis 流的大量项目,并且正在调用 Web 端点,我似乎遇到了大约 1024 个与 API 的并发连接的瓶颈,我不确定瓶颈在哪里。我正在调查我的负载均衡器和实例的限制,但我也想知道 lambda 本身是否根本无法在所有 lambda 上创建超过 1024 个并发出站连接?

0 投票
1 回答
3209 浏览

javascript - 如何使用 javascript 更新 s3 中现有对象的元数据?

我尝试使用 copyObject 方法来更新我的视频中的元数据。我的视频文件最终被删除,我的元数据也被更新了。为什么我的文件被删除了?

我在下面附上了一些代码片段:

我成功请求了预签名的 url

然后成功向签名的 url 发送 PUT 请求。

但是当我进入 s3 控制台时,我看到我的视频文件已被删除并且元数据已被更新。我究竟做错了什么?谢谢你。

0 投票
0 回答
302 浏览

javascript - completeMultipartUpload 请求上的 AWS“签名不匹配”错误

我正在使用预签名的 url 来执行分段上传。我成功创建了分段上传并上传了所有部分。但是,当我发送完成分段上传的请求时,我收到“签名不匹配”错误。我不确定我是否缺少标题或类似的东西......这通常似乎是导致此错误消息的原因。

我像这样创建我的预签名网址,它成功没有问题。

但是当我发布到我的预签名网址时,我得到签名不匹配错误。

我还需要在此 POST 请求中包含其他内容吗?