akamai/httpie本镜像是 HTTPie 工具与 Akamai EdgeGrid Authentication 插件的集成版本,旨在简化向 Akamai API 发送 HTTP 请求时的认证流程。HTTPie 是一款简洁高效的命令行 HTTP 客户端,而 Akamai EdgeGrid 是 Akamai API 的标准认证机制。通过本镜像,用户无需手动配置依赖环境,可直接使用预集成的工具链向 Akamai API 发送经过 EdgeGrid 认证的 HTTP 请求,适用于开发、测试及自动化场景。
httpie-edgegrid 插件,自动处理 Akamai API 认证所需的签名生成逻辑,无需手动实现认证算法。Host、Client Token、Client Secret、Access Token),需从 Akamai Control Center 的 "API Access" 部分生成。EdgeGrid 认证需通过以下环境变量注入凭证,所有变量为必填项:
| 环境变量名 | 描述 | 来源 |
|---|---|---|
AKAMAI_EDGEGRID_HOST | Akamai API 端点主机名(如 akab-xxxx.luna.akamaiapis.net) | Akamai Control Center API 配置页面 |
AKAMAI_EDGEGRID_CLIENT_TOKEN | 客户端令牌(Client Token) | Akamai Control Center API 凭证生成页 |
AKAMAI_EDGEGRID_CLIENT_SECRET | 客户端密钥(Client Secret) | Akamai Control Center API 凭证生成页 |
AKAMAI_EDGEGRID_ACCESS_TOKEN | 访问令牌(Access Token) | Akamai Control Center API 凭证生成页 |
docker run)通过以下命令运行容器,直接发送经过 EdgeGrid 认证的 HTTP 请求至 Akamai API:
bashdocker run --rm \ -e AKAMAI_EDGEGRID_HOST="akab-xxxx.luna.akamaiapis.net" \ -e AKAMAI_EDGEGRID_CLIENT_TOKEN="akab-xxxx" \ -e AKAMAI_EDGEGRID_CLIENT_SECRET="xxxx" \ -e AKAMAI_EDGEGRID_ACCESS_TOKEN="akab-xxxx" \ httpie-edgegrid \ http GET /api/v1/endpoint "Accept:application/json"
说明:命令末尾的
http GET /api/v1/endpoint "Accept:application/json"为 HTTPie 命令参数,格式与原生 HTTPie 一致(http <方法> <路径> [请求头/参数])。
通过 docker-compose.yml 管理容器,适合频繁使用场景:
yamlversion: "3" services: akamai-httpie: image: httpie-edgegrid environment: - AKAMAI_EDGEGRID_HOST=akab-xxxx.luna.akamaiapis.net - AKAMAI_EDGEGRID_CLIENT_TOKEN=akab-xxxx - AKAMAI_EDGEGRID_CLIENT_SECRET=xxxx - AKAMAI_EDGEGRID_ACCESS_TOKEN=akab-xxxx # 可选:挂载本地目录以共享请求文件(如 JSON payload) volumes: - ./requests:/requests
启动服务:
bashdocker-compose run --rm akamai-httpie http GET /api/v1/endpoint
向 Akamai Property Manager API 发送 GET 请求,获取指定属性的版本列表:
bashdocker run --rm \ -e AKAMAI_EDGEGRID_HOST="akab-xxxx.luna.akamaiapis.net" \ -e AKAMAI_EDGEGRID_CLIENT_TOKEN="akab-xxxx" \ -e AKAMAI_EDGEGRID_CLIENT_SECRET="xxxx" \ -e AKAMAI_EDGEGRID_ACCESS_TOKEN="akab-xxxx" \ httpie-edgegrid \ http GET /papi/v1/properties/prp_xxxx/versions "Accept:application/json"
向 Akamai API 发送带 JSON payload 的 POST 请求(假设本地 payload.json 文件需挂载至容器):
bashdocker run --rm \ -v $(pwd)/payload.json:/payload.json \ -e AKAMAI_EDGEGRID_HOST="akab-xxxx.luna.akamaiapis.net" \ -e AKAMAI_EDGEGRID_CLIENT_TOKEN="akab-xxxx" \ -e AKAMAI_EDGEGRID_CLIENT_SECRET="xxxx" \ -e AKAMAI_EDGEGRID_ACCESS_TOKEN="akab-xxxx" \ httpie-edgegrid \ http POST /api/v1/resource "Content-Type:application/json" @/payload.json
AKAMAI_EDGEGRID_CLIENT_SECRET 为敏感信息,建议通过环境变量文件(如 --env-file .env)或 secrets 管理工具注入,避免明文暴露。/ 开头(如 /api/v1/endpoint),且无需包含主机名(主机由 AKAMAI_EDGEGRID_HOST 指定)。-v 显示详细请求、-o output.json 保存响应)均可直接添加至容器命令末尾。manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务