如何确定弹性 IP 是否已连接

如何确定弹性 IP 是否已连接

我需要能够查询 AWS 以验证弹性 IP 是否已附加到实例。这必须通过命令行或脚本完成。

我尝试使用 Ansible 和 AWS CLI 来获取此信息。示例:

aws ec2 describe-addresses --filters Name='public-ip',Values=34.29.176.23

返回错误:HTTPSConnectionPool(host='ec2.us-west-2a.amazonaws.com',port=443):url 超出最大重试次数:/(由 NewConnectionError(':无法建立新连接:[Errno -2] 名称或服务未知',)引起)

并使用 Opsworks

aws opsworks describe-elastic-ips --ips '34.29.176.20'

返回错误:HTTPSConnectionPool(host='opsworks.us-west-2a.amazonaws.com',port=443):url 超出最大重试次数:/(由 NewConnectionError(':无法建立新连接:[Errno -2] 名称或服务未知',)引起)

答案1

您错误地配置了 aws-cli 安装。

您已将区域配置为us-west-2a,但它不是一个区域,而是一个可用区域。

这就是您收到错误的原因——不是因为您没有指定区域,而是因为您在配置中指定了无效值。否则,aws-cli 会抛出错误,提示操作需要选择区域。

答案2

AWS 中的几乎所有内容都按区域组织。大多数 CLI 命令都需要指定区域。

当您设置 AWS CLI 时,会设置一个默认区域以及您的凭证。

在控制台中输入“aws configure”。如果您已经配置了凭证,请对每个凭证按 ENTER,然后会使用保存的值。当显示“默认区域名称:”行时,请输入您的默认区域名称,例如 us-west-2。现在,您的 CLI 命令将在不指定 --region 选项的情况下运行。您的脚本(Python、Java 等)也将能够自动使用您的凭证和区域。

配置 AWS CLI

另外,请确保您使用的是最新版本。re:Invent 2017 上的所有公告都对 CLI 进行了一些出色的更新。当前版本是 1.14.2。在控制台上输入“ pip install awscli --upgrade”。在 Windows 上,这需要在管理员命令 shell 中运行。

安装 AWS 命令​​行界面

答案3

显然,http://docs.aws.amazon.com/cli/latest/reference/ec2/describe-addresses.html

describe-addresses 需要提供一个区域。例如:

aws ec2 describe-addresses --filters Name='public-ip',Values='34.29.176.20' --region us-west-2

相关内容