问题标签 [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.
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},它应该得到正确的响应。
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-sdk
node 模块实现?如果不是,我能做什么?
amazon-web-services - 如何从 lambda (nodejs aws-sdk) 获取环境变量
我们可以在 aws-lambda 中设置环境变量,例如通过 AWS SAM:
如何通过 Node JS AWS-SDK 从当前 lambda 获取这些变量?
amazon-web-services - 如何从 AWS S3“ObjectRemoved:Delete”事件中获取文件大小
背景
我在 S3 存储桶中存储了一些文件(对象)。每当从 S3 存储桶中删除任何文件时,都会触发我的 Lambda 函数。lambda 函数需要从 DynamoDB 中减去对象大小。
问题: S3 deleteObject 事件不发送对象大小
示例 S3 deleteObject 事件
请帮我为我的用例找到解决方案。
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 的正确使用?如何进一步调查这个问题?
amazon-dynamodb - 如何修复 Dynamo-db 中针对空/空字符串的禁用验证?
我正在尝试将数据从节点 JS 代码推送到 Dynamodb。
我遇到了这样的问题
DynamoDB.DocumentClient 应该支持空字符串属性
有谁知道如何在 DynamoDB 中禁用验证?
node.js - 如何在不使用 Node-js 中的 Scan 的情况下从 Dynamo-Db 中读取单个列?
我的 Dynamo Db 中有 450 万条记录。
我想批量读取每条记录的 id。
我期待诸如偏移和限制之类的东西,例如我们如何在 Mongo Db 中阅读。
Node-JS中有没有没有扫描方法的建议。
我已经做了足够的研究,我只能找到从 Dynamo Db 缓冲完整记录并开始扫描记录的扫描方法,这在性能基础上无效。
请给我建议。
aws-lambda - 我可以从 AWS Lambda 创建的最大出站连接是多少?
我正在查看有关Lamba Limits的文档,其中说:
文件描述符数 1,024
我想知道这是每次调用 lambda 还是所有 lambda 的总数?
我正在处理来自 kinesis 流的大量项目,并且正在调用 Web 端点,我似乎遇到了大约 1024 个与 API 的并发连接的瓶颈,我不确定瓶颈在哪里。我正在调查我的负载均衡器和实例的限制,但我也想知道 lambda 本身是否根本无法在所有 lambda 上创建超过 1024 个并发出站连接?
javascript - 如何使用 javascript 更新 s3 中现有对象的元数据?
我尝试使用 copyObject 方法来更新我的视频中的元数据。我的视频文件最终被删除,我的元数据也被更新了。为什么我的文件被删除了?
我在下面附上了一些代码片段:
我成功请求了预签名的 url
然后成功向签名的 url 发送 PUT 请求。
但是当我进入 s3 控制台时,我看到我的视频文件已被删除并且元数据已被更新。我究竟做错了什么?谢谢你。
javascript - completeMultipartUpload 请求上的 AWS“签名不匹配”错误
我正在使用预签名的 url 来执行分段上传。我成功创建了分段上传并上传了所有部分。但是,当我发送完成分段上传的请求时,我收到“签名不匹配”错误。我不确定我是否缺少标题或类似的东西......这通常似乎是导致此错误消息的原因。
我像这样创建我的预签名网址,它成功没有问题。
但是当我发布到我的预签名网址时,我得到签名不匹配错误。
我还需要在此 POST 请求中包含其他内容吗?