如何通过HTTPS请求替代AWS CLI命令实现与AWS服务的交互
实现AWS CLI
aws devicefarm list-uploads 等效HTTPS请求的方案 基础请求配置
AWS所有公开服务API都遵循统一的调用规范,Device Farm的list-uploads接口基础配置如下:
- 请求方法:
POST - 请求域名:对应你所用AWS区域的Device Farm服务节点,如美西2区为
devicefarm.us-west-2.amazonaws.com - 请求路径:固定为
/ - 必传请求头:
Content-Type: application/x-amz-json-1.1X-Amz-Target: DeviceFarm_20150623.ListUploads
请求体参数
你给出的CLI命令对应请求参数直接按JSON格式拼接即可,示例如下:
{ "arn": "arn-123-nra", "type": "FILE" }
签名规则说明
所有AWS API请求必须使用SigV4签名算法生成签名,签名需要使用你的AWS访问密钥(Access Key ID、Secret Access Key)计算,核心流程如下:
- 拼接规范请求串,包含请求方法、URI、查询参数、请求头列表、待签名请求头、请求体SHA256哈希值
- 生成待签名字符串,包含签名算法标识、UTC时间戳、凭证范围、规范请求串的SHA256哈希值
- 使用Secret Access Key按时间、区域、服务维度派生签名密钥,计算得到最终签名
- 将签名信息拼接为
Authorization请求头,随请求一同发送
如果是开发Mac应用,不需要自行实现签名逻辑,直接使用AWS官方提供的苹果生态SDK即可,SDK会自动处理签名、请求拼接、异常重试等所有底层逻辑。
完整请求结构示例(仅演示格式,签名值需自行计算替换)
POST / HTTP/1.1 Host: devicefarm.us-west-2.amazonaws.com Content-Type: application/x-amz-json-1.1 X-Amz-Target: DeviceFarm_20150623.ListUploads X-Amz-Date: 20240520T130500Z Authorization: AWS4-HMAC-SHA256 Credential=AKIAXXXXXX/20240520/us-west-2/devicefarm/aws4_request, SignedHeaders=content-type;host;x-amz-date;x-amz-target, Signature=abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890 {"arn": "arn-123-nra", "type": "FILE"}
内容的提问来源于stack exchange,提问作者pnizzle
相关产品推荐
相关产品推荐

