标签: aws-sdk-js

SNS getEndpointAttributes 在 EventEndpointUpdated 事件后返回旧数据

将主题附加到 SNS 应用程序的“端点已更新”可配置主题时,我遇到了一些意外行为。根据 AWS 关于SNS 应用程序事件的文档,当平台端点已更新为禁用或令牌已更改时,我应该会收到有关我配置的主题的事件。

就我而言,我有一个订阅此主题的 lambda 函数,然后通过调用 AWS 的 javascript sdk 检索平台端点的属性,SNS.getEndpointAttributes以便我可以检查哪些属性已更改,以删除端点或更新持久存储中的关联令牌。然而,此调用返回端点,从而Enabled = true阻止我采取纠正措施。但是,如果我查看 AWS SNS 控制台,我可以看到端点已被禁用为Enabled = false

其他人是否也遇到过类似的不一致问题?如果有,解决这些问题的最佳做法是什么?感谢您的任何意见!

amazon-sns aws-sdk-js

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

带参数的 Jest Mock Promise

这是我尝试在 Jest 中编写单元测试的方法

async function getParameter(parameter: string,
  withDecryption: boolean = false): Promise<String> {

  const params = {
    Name: parameter,
    WithDecryption: withDecryption,
  };
  try {
    const request = await       ssmClient.getParameter(params).promise();

    return request.Parameter.Value;
  } catch (err) {
    logger.error(`Error ${err}`);
    throw Error(err);
  }
}
Run Code Online (Sandbox Code Playgroud)

测试方法 :

test('getParameterFromSystemManager', async () => {
  const mockedResponseData = {
    Parameter: {
      Value: 'parameterValue',
    },
  };

 ssmClient.getParameter(params).promise = jest.fn();

 ssmClient.getParameter(params).promise.mockImplementation(() => Promise.resolve(mockedResponseData));

 const data = 
 await SSMParameters.getParameterFromSystemManager('testurl', false, 
 'Test', 'elastic');
 expect(data).toEqual(mockedResponseData.Parameter.Value);
 expect(ssmClient.getParameter).toHaveBeenCalledTimes(1);
});
Run Code Online (Sandbox Code Playgroud)

我收到错误:

类型错误:ssmClient.getParameter(...).promise.mockImplementation 不是函数

我们如何在 Jest …

node.js jestjs aws-sdk ssm aws-sdk-js

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

带有回调 httpUploadProgress 的 AWS 开发工具包 JavaScript Promise

我正在尝试使用 AWS S3 SDK JavaScript 获取 httpUploadProgress。使用这一行,我可以看到上传进度的预期结果,但是如何使用 Promise() 获得相同的结果,我在浏览器中使用它作为外部 JS 资源。

工作示例:

    function uploadFile(){
        var bucket = new AWS.S3({params: {Bucket: BUCKET_NAME}});
        var fileChooser = document.getElementById('file');
        var file = fileChooser.files[0];
        if (file) {
            console.log();
            var opts = {queueSize: 1, partSize: 1024 * 1024 * 5};
            var params = {Key: file.name, ContentType: file.type, Body: file};
            s3.upload(params,opts).on('httpUploadProgress', function(evt) {
            console.log("Uploaded :: " + parseInt((evt.loaded * 100) / evt.total)+'%');
            }).send(function(err, data) {
                console.log(err);
                alert("File uploaded successfully.");
            });
        }
        return false;
    }
Run Code Online (Sandbox Code Playgroud)

我想要的承诺也是如此。

function uploadFile(){ …
Run Code Online (Sandbox Code Playgroud)

javascript amazon-s3 aws-sdk aws-sdk-js

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

如何在 nodeJS 中获取 AWS SQS 队列 ARN?

I'm trying to build an application with a basic client-server infrastructure. The server infrastructure is hosted on AWS, and when a client logs on, it sends a message to the server to set up various infrastructure considerations. One of the pieces of infrastructure is an SQS Queue that the client can poll from to get updates from the server (eventually I'd like to build a push service but I don't know how for right now).

I'm building this application in …

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

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

使用 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
查看次数

用于在 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
查看次数

运行Node js程序时出错

我已经编写了一个节点js程序,其中包含一个名为的方法 AWS.config.update()。当我尝试在终端上运行它时,出现错误:

错误:找不到模块“ aws-sdk”

node.js aws-sdk-js

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

将 AWS CLI 配置文件用于特定节点程序的上下文

我有几个用于管理不同项目的 AWS 配置文件。我们将默认的称为“user1”,将我想要使用的称为“user2”

因此,如果我只是这样做,aws s3 ls它当然会给我 user1 的信息,或者如果我这样做,aws s3 ls --profile=user2它会给我 user2 的信息,这里一切都很好

我也知道我可以export AWS_DEFAULT_PROFILE=user2这样做aws s3 ls,这正确地给了我 user2 的存储桶

问题是,我有一个 Node 应用程序,当我在本地运行时,我想使用 user2 的配置文件。我已经尝试过各种方式AWS_DEFAULT_PROFILE=user2 npm run dev,但不知道该怎么做?

问题如何运行本地 Node 程序并使其 AWS SDK 使用我所需的配置文件?

amazon-web-services aws-cli aws-sdk aws-sdk-nodejs aws-sdk-js

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

AWS CloudWatch GetMetricsData:“Sum”在没有值的时间段丢失点数

GetMetricsData从 AWS CloudWatch查询:

                 {
                    StartTime: lastWeek ,
                    EndTime: today,
                    MetricDataQueries: [
                        {
                            Id: 'invocations',
                            Label: 'Invocations',
                            MetricStat: {
                                Metric: {
                                    Dimensions: [
                                        {
                                            Name: 'FunctionName',
                                            Value: /* FunctionName */,
                                        },
                                    ],
                                    MetricName: 'Invocations',
                                    Namespace: 'AWS/Lambda'
                                },
                                Period: 60*60*24, // day
                                Stat: 'Sum',
                                Unit: 'Count',
                            },
                        },
                    ],
                }
Run Code Online (Sandbox Code Playgroud)

这就是我得到的:

在此处输入图片说明

我没有获得 7 天(即一周)的数据,而是获得了 5 天。我错过了 2 天(如您在图表中所见)。

那些失踪的日子没有任何数据。

CloudWatch 不会返回没有数据的点。我怎样才能让Sum操作返回实际计数 ( 0) 呢?

amazon-web-services amazon-cloudwatch aws-sdk amazon-cloudwatch-metrics aws-sdk-js

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