API 网关的 AWS Sig v4 签名
AWS Sig v4 Signing for API Gateway
是否有某种方法可以查找 api 网关端点的区域并使用它来使用 sigv4 对您的请求进行签名?
我正在使用 aws sdk 像这样进行签名
let req = new AWS.HttpRequest( endpoint );
req.method = 'POST';
req.path = endpoint.path;
req.region = QueryApi.getBaseUrlRegion( this._baseUrl );
req.body = JSON.stringify( body );
req.headers[ 'Host' ] = endpoint.host
req.headers[ 'presigned-expires' ] = false
req.headers[ 'Content-Type' ] = 'application/json'
let signer = new AWS.Signers.V4( req, 'execute-api' )
signer.addAuthorization( this._awsCreds, new Date() )
现在我正在从内部 aws execute-api url 解析区域,但这不适用于自定义 dns 名称。
唯一的选项是使用配置还是进行 DNS 查找?
很遗憾,目前无法在使用自定义域名时查找区域。使用 DNS 查找效果不佳,因为 API Gateway 位于 CloudFront 发行版的前端。
是否有某种方法可以查找 api 网关端点的区域并使用它来使用 sigv4 对您的请求进行签名?
我正在使用 aws sdk 像这样进行签名
let req = new AWS.HttpRequest( endpoint );
req.method = 'POST';
req.path = endpoint.path;
req.region = QueryApi.getBaseUrlRegion( this._baseUrl );
req.body = JSON.stringify( body );
req.headers[ 'Host' ] = endpoint.host
req.headers[ 'presigned-expires' ] = false
req.headers[ 'Content-Type' ] = 'application/json'
let signer = new AWS.Signers.V4( req, 'execute-api' )
signer.addAuthorization( this._awsCreds, new Date() )
现在我正在从内部 aws execute-api url 解析区域,但这不适用于自定义 dns 名称。
唯一的选项是使用配置还是进行 DNS 查找?
很遗憾,目前无法在使用自定义域名时查找区域。使用 DNS 查找效果不佳,因为 API Gateway 位于 CloudFront 发行版的前端。