标签: aws-sdk-nodejs

AWS Lambda函数写入DynamoDB

我是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

3
推荐指数
2
解决办法
7739
查看次数

在大于1MB的文件上,putObject()超时

当尝试使用该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)

javascript amazon-s3 node.js aws-sdk aws-sdk-nodejs

3
推荐指数
1
解决办法
953
查看次数

是否可以使用比AWS Lambda提供的版本更高的aws-sdk?

最新版本的aws-sdk具有ComprehendMedical函数,我想为其创建lambda函数。

但是,AWS-SDK的版本已经过时了几个月,尚无法使用这些功能。想知道是否有使用最新库的方法?

谢谢!

amazon-web-services node.js aws-sdk aws-lambda aws-sdk-nodejs

3
推荐指数
1
解决办法
1534
查看次数

使用Api Gateway(Lambda函数)将图像上传到S3存储桶

我正在尝试从邮递员上传图像(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)

amazon-s3 aws-lambda aws-api-gateway aws-sdk-nodejs

3
推荐指数
1
解决办法
960
查看次数

使用 AWS-SDK Nodejs 从 S3 下载图像会下载损坏的图像

我正在尝试使用适用于 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 将输出传递到前端,而这些解决方案对我不起作用。

javascript node.js aws-sdk-nodejs

2
推荐指数
1
解决办法
7637
查看次数

aws-sdk-mock 是否支持模拟 AWS SSM(参数存储)?

我尝试使用 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)

jestjs ssm aws-sdk-nodejs aws-sdk-mock aws-parameter-store

2
推荐指数
1
解决办法
5708
查看次数

使用 nodeJs 从 AWS SQS 队列获取待处理的消息计数

我是 AWS 的新手。我怀疑是否有任何方法可以使用 NodeJs 获取 AWS-SQS 队列中待处理的消息数量(消息总数)。如果有什么办法可以得到计数请帮朋友解决

amazon-sqs node.js aws-sdk aws-sdk-nodejs aws-sdk-js

2
推荐指数
1
解决办法
907
查看次数

使用 AWS SDK (JS) 进行 s3.selectObjectContent 在“on”关键字上出现错误

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工作?

amazon-s3 aws-sdk-nodejs aws-sdk-js

2
推荐指数
1
解决办法
1413
查看次数

AWS Lambda的环境变量可以设置为布尔值吗?

我想更新 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)

目前此代码不起作用,因为我试图将环境变量设置debugtrue,但它只能是字符串而不是boolean.

amazon-web-services node.js aws-lambda aws-sdk-nodejs

2
推荐指数
1
解决办法
5798
查看次数

用于在 Cognito 中登录(从后端不使用 Amplify)的 AWS 开发工具包库是什么?

我已使用 @aws-sdk/client-cognito-identity-provider 实现了用户注册,但无法从 AWS SDK 中找到模块或 API 来实现登录 cognito

amazon-cognito aws-sdk aws-sdk-nodejs aws-sdk-js

2
推荐指数
1
解决办法
1769
查看次数