在AWS文档https://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html
中Step2:规范URI是URI绝对路径部分的URI编码版本,它是URI中从HTTP主机到问号字符(“?”)的所有内容,该字符开始查询字符串参数(如果有的话)。是什么意思?
您能否用此示例请求https://customer-service.example.com/dev/customer/?name=alex&country=us
进行说明答案 0 :(得分:1)
请参考aws4 npm软件包。 It is well documented in it's github's page
在其文档中,AWS建议使用aws-sdk,因为URL签名对于一个非常简单的任务(如获取s3对象)可能会变得乏味。我们使用aws4是因为在我们的代码中导入aws-sdk会带来不必要的依赖。
以下是列出来自aws secretmanager的机密的示例。
在下面的示例中,
您可以参考相应的aws服务的API来修改以下示例以供您使用。
请注意以下示例,假定ec2已分配了正确的角色来执行此请求。这就是为什么在下面的示例中将看到它正在使用sts的原因。
如果情况不同,请检查documentation,以检查如何通过aws4 api传递密钥。
var http = require('http'),
https = require('https'),
aws4 = require('aws4')
request(aws4.sign({service: 'sts', path: '/?Action=GetSessionToken&Version=2011-06-15'}))
function request(o) { https.request(o, function(res) { res.pipe(process.stdout) }).end(o.body || '') }
request(aws4.sign({
service: 'secretsmanager',
region: 'us-east-1',
method: 'POST',
path: '/',
headers: {
"Accept-Encoding": "identity",
"X-Amz-Target": "secretsmanager.ListSecrets",
"Content-Type": "application/x-amz-json-1.1"
},
body: '{}'
}))