首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何锁定请求中所需的aws-sdk-js凭据?

如何锁定请求中所需的aws-sdk-js凭据?
EN

Stack Overflow用户
提问于 2021-11-15 21:56:13
回答 1查看 66关注 0票数 0

我使用nock进行了jest单元测试,以拦截并返回模拟响应。然后,我在没有nock的集成测试阶段重新运行这些测试,以便使用实际的aws api和资源进行测试。

代码语言:javascript
复制
nock('https://ssm.us-west-1.amazonaws.com:443')
      .post('/', {"Name":"/my-parameter"})
      .reply(200, {"Parameter":{"ARN":"arn:aws:ssm:us-west-1:111222333444:parameter/my-parameter","DataType":"text","LastModifiedDate":1617149434.735,"Name":"/my-parameter","Type":"String","Value":"myvalue","Version":4}}, [
      'Server',
      'Server',
      'Date',
      'Thu, 08 Apr 2021 00:05:41 GMT',
      'Content-Type',
      'application/x-amz-json-1.1',
      'Content-Length',
      '284',
      'Connection',
      'keep-alive',
      'x-amzn-RequestId',
      '8885bb26-9018-4e9e-8b2e-56232e46ae17'
    ]).persist();

在我的代码运行并接收此响应的地方,而不是实际的ssm资源处,这是有效的。但是,我仍然必须登录并设置我的本地凭据,否则将抛出

代码语言:javascript
复制
    UnrecognizedClientException: The security token included in the request is invalid.

      at Request.extractError (node_modules/aws-sdk/lib/protocol/json.js:52:27)
      at Request.callListeners (node_modules/aws-sdk/lib/sequential_executor.js:106:20)
      at Request.emit (node_modules/aws-sdk/lib/sequential_executor.js:78:10)
      at Request.emit (node_modules/aws-sdk/lib/request.js:686:14)
      at Request.transition (node_modules/aws-sdk/lib/request.js:22:10)
      at AcceptorStateMachine.runTo (node_modules/aws-sdk/lib/state_machine.js:14:12)
      at node_modules/aws-sdk/lib/state_machine.js:26:10
      at Request.<anonymous> (node_modules/aws-sdk/lib/request.js:38:9)
      at Request.<anonymous> (node_modules/aws-sdk/lib/request.js:688:12)
      at Request.callListeners (node_modules/aws-sdk/lib/sequential_executor.js:116:18)

我不需要任何aws证书来运行这些模拟单元测试。我没有看到nock记录任何其他请求,我必须像凭据登录一样模拟这些请求。我如何设置它来模拟凭据,这样我就不需要任何实际的aws api通信,这在没有互联网连接的情况下在本地运行?到目前为止,我还找不到任何例子。任何运行单元测试并使用nock模拟aws-sdk的项目示例都值得参考!

EN

回答 1

Stack Overflow用户

发布于 2021-11-16 17:16:18

这个问题是错误的。在这种情况下,有时没有设置NOCK_OFF环境变量,从而误导了这个问题。

它确实会拦截该请求。当nock截获请求时,客户端或实际的aws api都不会检查请求中设置的凭据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69981373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档