httpAWS - 一个AWS服务的CLI、cURL-like工具。
项目描述
httpAWS:AWS服务的命令行HTTP工具
httpAWS是一个AWS服务的命令行HTTP客户端。它的目标是使CLI与AWS Web服务的交互尽可能人性化。它提供了一个简单的httpaws
命令,允许使用简单自然的语法向AWS服务发送HTTP请求,并显示彩色输出。httpAWS可用于测试、调试以及直接通过HTTP请求与AWS服务进行交互。
httpAWS直接使用requests和aws-requests-auth模块向AWS服务端点发出HTTP调用。
这是一个低级命令行工具,旨在供开发者使用,以便他们可以轻松地向AWS服务发出直接的HTTP调用。它实际上是图形工具(如Postman)的命令行程序性替代品,灵感来源于HTTPie等工具,但专门针对AWS服务。
主要特性
- 表达性和直观的语法
- 格式化和彩色终端输出
- 内置XML支持
- Python 2.7和3.x支持
- 支持Linux、macOS和Windows
安装
通用的安装方法(适用于Windows、Mac OS X、Linux等,并始终提供最新版本)是使用pip
# Make sure we have an up-to-date version of pip and setuptools:
$ pip install --upgrade pip setuptools
$ pip install --upgrade httpaws
(如果由于某些原因pip安装失败,您可以尝试作为备用方案使用easy_install httpaws
。)
Python版本
尽管也支持Python 2.7,但强烈建议在可能的情况下始终使用最新版本的Python 3.x安装httpAWS。这将确保一些较新的HTTP功能,例如SNI(服务器名称指示),能够正常工作。从版本0.9.4开始,Homebrew安装默认使用Python 3。
不稳定版本
您还可以直接从GitHub上的master
分支安装最新的未发布开发版本。它是未来稳定版本的进行中版本,所以体验可能不是那么流畅。
$ pip install -U https://github.com/http-aws/http-aws/archive/master.tar.gz
用法
Hello World
$ httpaws -s ec2 DescribeVpcs
概述
$ httpaws [flags] <API>
请参阅httpaws -h
获取详细帮助
$ httpaws -h
usage: httpaws [-h] [-r REGION] [-s SERVICE] [-e ENDPOINT] [-c CREDS]
[-v VERSION] [-p] [-w]
api
httpaws v0.0.2: A CLI HTTP client for AWS services with syntax highlighting
positional arguments:
api name of the API to call - e.g. "DescribeVpcs"
optional arguments:
-h, --help show this help message and exit
-r REGION, --region REGION
AWS region. Overrides config/env - e.g. us-east-1
-s SERVICE, --service SERVICE
AWS service - e.g. ec2, s3, etc.
-e ENDPOINT, --endpoint ENDPOINT
override command's default URL with the given URL -
e.g. ec2.us-east-1.amazonaws.com
-c CREDS, --creds CREDS
override AWS Access Key Id and AWS Secret Access Key -
i.e. <Access_Key>:<Secret_Key>
-v VERSION, --version VERSION
API version to use for the service
-p, --paginate paginate long output
-w, --wrap wrap long lines in paginated output (instead of chop)
See the AWS Documentation for API references for each service:
https://docs.aws.amazon.com
身份验证
当前支持的认证方案由aws-requests-auth Python模块提供。有两种模式:自动和手动。有一个标志用于控制身份验证
标志 | 描述 |
---|---|
-c/--creds | 将<AWS_Access_Key_Id>:<AWS_Secret_Access_Key> 对作为参数传递 |
自动认证
如果未提供-c
标志,则httpAWS将尝试使用botocore
自动收集您的AWS凭证。
$ httpaws DescribeVpcs
手动认证
$ http -c <Access_Key>:<Secret_Key> DescribeVpcs
HTTP重定向
不遵循HTTP重定向,仅显示第一个响应。
输出选项
目前,httpAWS只输出最终响应,并打印整个响应消息(包括头部和正文)。
终端输出
httpAWS默认执行几个操作,以便使其终端输出易于阅读。
颜色和格式化
对HTTP头部正文(如果有意义)应用语法高亮。
此外,应用以下格式化
- XML数据缩进,unicode转义符转换为它们所代表的字符。
重定向输出
默认情况下,httpAWS将所有输出发送到stdout
。
原因是为了使将httpAWS的输出管道传输到其他程序时无需额外标志。大多数时候,当输出被重定向时,只有原始响应体才有兴趣。
强制颜色化和格式化,并在less
分页器中显示请求和响应
$ httpaws -p DescribeVpcs
-p
标志告诉httpAWS将输出管道传输到less
,并解释httpAWS输出中包含的颜色转义序列。
管道输出
您还可以将响应体重定向到另一个程序
$ httpaws -s s3 List | grep "MagnumOpus.txt"
响应
响应是同步下载的,并在下载完成后打印,这对于格式化和着色中等大小的响应很有用。然而,如果您想下载大文件而不使用太多内存,这不是您想要的工具。
会话
目前,httpAWS发出的每个请求都与同一主机之前的任何请求完全独立,httpAWS不支持持久会话。
配置
httpAWS使用与aws cli
相同的配置文件。
配置文件位置
配置文件的默认位置是~/.aws/config
和~/.aws/credentials
。
可配置选项
默认AWS区域从config
文件中读取,而默认AWS访问和秘密密钥从credentials
文件中读取。
最佳实践
在分页长输出时,-p
选项对于人类阅读此输出非常出色,但在非交互式调用期间通常不希望使用它。您可能不希望在从cron作业示例中调用httpAWS时使用-p
选项。另外,如果您想重定向或管道httpAWS的输出,也应避免使用-p
标志。
元数据
用户支持
请使用以下支持渠道
- GitHub问题
- 用于错误报告、功能请求和提问
- GitHub拉取请求
- 用于错误修复和功能提交
相关项目
依赖项
在底层,httpAWS使用这些惊人的库
- Requests
- 面向人类的Python HTTP库
- aws-requests-auth
- Python requests模块的AWS签名版本4签名过程
- botocore
- boto 3(官方AWS Python SDK)的底层核心功能
- Pygments
- Python语法高亮工具
- Colorama
- Python中的简单跨平台彩色终端文本
- lxml
- Python中的XML
替代方案
警告
此工具旨在用于开发和教育目的。它**不适用于**稳健且可靠的AWS服务管理。对于与生产AWS服务交互,强烈建议您使用专门为此目的设计的官方支持工具,如下列之一
贡献
变更日志
请参阅CHANGELOG.md
许可证
Apache 2.0: LICENSE
作者
Todd Leonhardt创建了httpaws,以及这些优秀的人做出了贡献。
项目详情
下载文件
下载您平台的文件。如果您不确定选择哪个,请了解更多关于安装软件包的信息。
源分布
构建分布
httpaws-0.0.4.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5e4c554d7c740a8fecee154c45856fc4f498ef02a92296257785f0f779560f67 |
|
MD5 | 9e418afa1da2c8877b3b250b348571bd |
|
BLAKE2b-256 | af235d55b407075999765e1b862670fde8bc4846f39d6d49d900924796ae130d |