我是Amazon Web Services和NodeJS的初学者.
我写了一个由AWS IoT触发的Lambda函数,它解析了一个JSON.
enter code here
use strict';
console.log('Loading function');
exports.handler = (event, context, callback) => {
console.log('Received event:', JSON.stringify(event, null, 2));
console.log('Id =', event.Id);
console.log('Ut =', event.Ut);
console.log('Temp =', event.Temp);
console.log('Rh =', event.Rh);
//callback(null, event.key1); // Echo back the first key value
//callback('Something went wrong');
};
Run Code Online (Sandbox Code Playgroud)
现在我想将json字段存储到DynamoDB表中.
有什么建议吗?
非常感谢!
amazon-web-services amazon-dynamodb aws-lambda aws-sdk-nodejs
当尝试使用该putObject()功能将CSV文件上传到我的S3存储桶时,如果该文件大于1 MB,则会超时。我能够成功上传的最大CSV文件为1048 KB(25500行),在我尝试上传的6次中,只有4次成功。任何小于1 MB的文件都可以快速上传而不会失败。一旦功能达到约1 MB的阈值,会导致该功能挂断并超时?
相关代码如下:
function writeToS3(){
var params = {
Bucket: bucketName,
Key: fileName,
Body: fs.createReadStream(fileName)
}
s3.putObject(params, function(err, data){
if(err){
console.log('Error uploading data to S3 bucket: ' + err);
throw err;
} else{
console.log("Data uploaded to S3 bucket: ", util.inspect(data));
}
});
}Run Code Online (Sandbox Code Playgroud)
下面是错误消息:
Error uploading data to S3 bucket: TimeoutError: Connection timed out after 120000ms
C:\Users\426782\documents\workspace-sts\lf-rti-file-copier-sql\node_modules\aws-sdk-proxy\node_modules\aws-sdk\lib\request.js:31
throw err;
^
TimeoutError: Connection timed out after 120000ms
at ClientRequest.<anonymous> (C:\Users\426782\documents\workspace-sts\lf-rti-file-copier-sql\node_modules\aws-sdk-proxy\node_modules\aws-sdk\lib\http\node.js:83:34)
at ClientRequest.g (events.js:292:16)
at emitNone (events.js:86:13) …Run Code Online (Sandbox Code Playgroud) 最新版本的aws-sdk具有ComprehendMedical函数,我想为其创建lambda函数。
但是,AWS-SDK的版本已经过时了几个月,尚无法使用这些功能。想知道是否有使用最新库的方法?
谢谢!
amazon-web-services node.js aws-sdk aws-lambda aws-sdk-nodejs
我正在尝试从邮递员上传图像(base64),我可以看到当我按下Serverless API时,在S3存储桶中添加了一些东西,但是没有图像,我使用的是nodejs Lambda函数,我尝试了很多解决方案,但是那没有解决。请向我建议我错了:
const AWS = require('aws-sdk');
const s3 = new AWS.S3();
const moment = require('moment');
const fileType = require('file-type');
const sha1 = require('sha1');
const multipart = require('parse-multipart');
exports.handler = function (event, context, callback) {
let request = event.body;
// get the request
let base64String = request.base64String;
// pass the base64 string into a buffer
let buffer = new Buffer(base64String, 'base64');
let fileMime = fileType(buffer);
// check if the base64 encoded string is a file
if (fileMime === null) { …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用适用于 Nodejs 的 AWS-SDK 从 aws s3 下载图像。文件确实已下载,并且大小也正确。但是,该文件已损坏并在 IDAT 中显示解压缩错误。
async download(accessKeyId, secretAccessKey, region, bucketName, baseImage) {
console.log("Entered download");
const s3 = new AWS.S3({region: region});
const params = {
Bucket: bucketName,
Key: `base/${baseImage}`
};
const outStream = fs.createWriteStream(this.config.baseFolder + baseImage);
const awsStream = s3.getObject(params, (uerr, data) => {
if(uerr) throw uerr;
console.log(`Base file downloaded successfully!`)
}).createReadStream().pipe(outStream);
awsStream.on('end', function() {
console.log("successfully Downloaded");
}).on('error', function() {
console.log("Some error occured while downloading");
});
}
Run Code Online (Sandbox Code Playgroud)
这是我点击的链接 - https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/requests-using-stream-objects.html 该文件应该可以毫无错误地下载。我尝试在堆栈上搜索,有一些类似的问题,但是,他们使用 Nodejs 将输出传递到前端,而这些解决方案对我不起作用。
我尝试使用 aws-sdk-mock 和下面的代码来模拟 AWS SSM,但不起作用。不抛出错误,从实际存储中获取值getParametersByPath调用时从实际存储中获取值。
我查看了 aws-sdk-mock 文档,但似乎没有模拟 ssm 的示例,是否支持。
AWSMock.mock('SSM', 'getParametersByPath', (params, callback) => {
callback(null, mockResponse);
});
Run Code Online (Sandbox Code Playgroud) 我是 AWS 的新手。我怀疑是否有任何方法可以使用 NodeJs 获取 AWS-SQS 队列中待处理的消息数量(消息总数)。如果有什么办法可以得到计数请帮朋友解决
我2.730.0在 Node.JS 的 Typescript 文件中使用 AWS SDK for Javascript 版本(撰写本文时最新)。
我正在使用该selectObjectContent操作来查询 CSV 文件,并按照文档中的指南我有此块:
import * as S3 from 'aws-sdk/clients/s3';
const s3 = new S3();
...
s3.selectObjectContent(params, (err, data) => {
if (!err){
data.Payload.on('data', (event) => {
// Do something with returned records
});
}
});
Run Code Online (Sandbox Code Playgroud)
该行在data.Payload.on('data', (event) => {linter 中给出了此错误:
类型“EventStream<{ Records?: RecordsEvent;”上不存在属性“on” 统计?:统计事件;进度?:ProgressEvent;Cont?: 延续事件;结束?:结束事件;}>'。
我需要改变什么才能on工作?
我想更新 Lambda 函数的环境变量,这是我当前使用的代码。
const AWS = require("aws-sdk");
exports.handler = async (event, context) => {
const res = await updateConfig("test");
};
async function updateConfig(funcName) {
const lambda = new AWS.Lambda({
region: "us-east-2"
});
const params = {
FunctionName: funcName,
Environment: {
Variables: {
"debug": true
}
}
};
const data = await lambda.updateFunctionConfiguration(params).promise();
return data;
}
Run Code Online (Sandbox Code Playgroud)
目前此代码不起作用,因为我试图将环境变量设置debug为true,但它只能是字符串而不是boolean.
我已使用 @aws-sdk/client-cognito-identity-provider 实现了用户注册,但无法从 AWS SDK 中找到模块或 API 来实现登录 cognito
aws-sdk-nodejs ×10
node.js ×5
aws-lambda ×4
aws-sdk ×4
amazon-s3 ×3
aws-sdk-js ×3
javascript ×2
amazon-sqs ×1
aws-sdk-mock ×1
jestjs ×1
ssm ×1