在aws doc https://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html
步骤2:规范URI是URI的绝对路径组件的URI编码版本,它是从HTTP主机到开始查询字符串参数(如果有)的问号字符(“?”)的URI中的所有内容。这是什么意思?
你能解释一下这个例子请求https://customer-service.example.com/dev/customer/?name=alex&country=us吗?
请参考aws4 npm包。 It is well documented in it's github's page
在其文档中,AWS建议使用aws-sdk,因为对于一个非常简单的任务(比如获取s3对象),URL签名可能会变得乏味。我们使用了aws4,因为在我们的代码中导入aws-sdk带来了不必要的依赖。
以下是来自aws secretmanager的列表秘密的示例。
在下面的例子中,
您可以参考corrospoding 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: '{}'
}))