如何通过 Boto3 API 在 AWS 中添加弹性 ip 名称?
How to add elastic ip name in AWS via Boto3 API?
通过 boto3 在 AWS 中创建弹性 IP 时。 API 没有提供将名称添加到弹性 IP 的选项,但此字段可通过 UI 获得。如何在创建弹性 IP 时或之后将名称添加到弹性 IP?
以下代码工作:
import boto3
client = boto3.client('ec2')
addr = client.allocate_address(Domain='vpc')
print addr['PublicIp']
但是,如果我添加“名称”字段,则会抛出此错误:
ParamValidationError: Parameter validation failed:
Unknown parameter in input: "Name", must be one of: DryRun, Domain
通常在 AWS 中,没有 Name
属性。您在 AWS 控制台中看到的实际上是一个标签,其键为 Name
。几乎所有 AWS 对象都可以有 Name
个标签。
使用boto3,您可以使用create_tags()方法设置一个或多个标签。例如:
import boto3
client = boto3.client('ec2')
response = client.create_tags(
Resources=[
'eipalloc-12344567890'
],
Tags=[
{
'Key': 'Name',
'Value': 'prod-eip'
}
]
)
你看到的是一个标签。弹性 IP 似乎不支持“Tag-On-Create”,因此您必须在创建 EIP 后创建标签。
尝试以下操作:
import boto3
client = boto3.client('ec2')
addr = client.allocate_address(Domain='vpc')
print(addr['PublicIp'])
response = client.create_tags(
Resources=[
addr['AllocationId'],
],
Tags=[
{
'Key': 'Name',
'Value': 'production',
},
],
)
print(response)
通过 boto3 在 AWS 中创建弹性 IP 时。 API 没有提供将名称添加到弹性 IP 的选项,但此字段可通过 UI 获得。如何在创建弹性 IP 时或之后将名称添加到弹性 IP?
以下代码工作:
import boto3
client = boto3.client('ec2')
addr = client.allocate_address(Domain='vpc')
print addr['PublicIp']
但是,如果我添加“名称”字段,则会抛出此错误:
ParamValidationError: Parameter validation failed: Unknown parameter in input: "Name", must be one of: DryRun, Domain
通常在 AWS 中,没有 Name
属性。您在 AWS 控制台中看到的实际上是一个标签,其键为 Name
。几乎所有 AWS 对象都可以有 Name
个标签。
使用boto3,您可以使用create_tags()方法设置一个或多个标签。例如:
import boto3
client = boto3.client('ec2')
response = client.create_tags(
Resources=[
'eipalloc-12344567890'
],
Tags=[
{
'Key': 'Name',
'Value': 'prod-eip'
}
]
)
你看到的是一个标签。弹性 IP 似乎不支持“Tag-On-Create”,因此您必须在创建 EIP 后创建标签。
尝试以下操作:
import boto3
client = boto3.client('ec2')
addr = client.allocate_address(Domain='vpc')
print(addr['PublicIp'])
response = client.create_tags(
Resources=[
addr['AllocationId'],
],
Tags=[
{
'Key': 'Name',
'Value': 'production',
},
],
)
print(response)