跳转到主要内容

httpAWS - 一个AWS服务的CLI、cURL-like工具。

项目描述

httpAWS:AWS服务的命令行HTTP工具

httpAWS是一个AWS服务的命令行HTTP客户端。它的目标是使CLI与AWS Web服务的交互尽可能人性化。它提供了一个简单的httpaws命令,允许使用简单自然的语法向AWS服务发送HTTP请求,并显示彩色输出。httpAWS可用于测试、调试以及直接通过HTTP请求与AWS服务进行交互。

httpAWS直接使用requestsaws-requests-auth模块向AWS服务端点发出HTTP调用。

这是一个低级命令行工具,旨在供开发者使用,以便他们可以轻松地向AWS服务发出直接的HTTP调用。它实际上是图形工具(如Postman)的命令行程序性替代品,灵感来源于HTTPie等工具,但专门针对AWS服务。

Latest Version

主要特性

  • 表达性和直观的语法
  • 格式化和彩色终端输出
  • 内置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标志。

元数据

用户支持

请使用以下支持渠道

相关项目

依赖项

在底层,httpAWS使用这些惊人的库

  • Requests
    • 面向人类的Python HTTP库
  • aws-requests-auth
    • Python requests模块的AWS签名版本4签名过程
  • botocore
    • boto 3(官方AWS Python SDK)的底层核心功能
  • Pygments
    • Python语法高亮工具
  • Colorama
    • Python中的简单跨平台彩色终端文本
  • lxml
    • Python中的XML

替代方案

  • HTTPie
    • 一个出色的、功能更丰富的HTTP CLI,但不是特定于AWS的
  • curl
    • 用于通过URL传输数据的“瑞士军刀”命令行工具和库

警告

此工具旨在用于开发和教育目的。它**不适用于**稳健且可靠的AWS服务管理。对于与生产AWS服务交互,强烈建议您使用专门为此目的设计的官方支持工具,如下列之一

贡献

请参阅CONTRIBUTING.md

变更日志

请参阅CHANGELOG.md

许可证

Apache 2.0: LICENSE

作者

Todd Leonhardt创建了httpaws,以及这些优秀的人做出了贡献。

项目详情


下载文件

下载您平台的文件。如果您不确定选择哪个,请了解更多关于安装软件包的信息。

源分布

httpaws-0.0.4.tar.gz (26.9 kB 查看哈希)

上传时间

构建分布

httpaws-0.0.4-py3-none-any.whl (13.8 kB 查看哈希)

上传时间 Python 3

由以下支持