Как добавить elasti c ip имя в AWS через Boto3 API? - PullRequest
0 голосов
/ 14 июля 2020

При создании elasti c IP в AWS через boto3 . API не дает возможности добавить имя к IP-адресу elasti c, но это поле доступно через пользовательский интерфейс. Как я могу добавить имя в elasti c IP при его создании или после?

введите описание изображения здесь

Работает следующий код:

import boto3

client = boto3.client('ec2')
addr = client.allocate_address(Domain='vpc')
print addr['PublicIp']

Но, если я добавляю поле «имя», выдается следующая ошибка:

ParamValidationError: проверка параметра ошибка: Неизвестный параметр во входных данных: «Имя», должно быть одним из: DryRun, Domain

Ответы [ 2 ]

2 голосов
/ 14 июля 2020

То, что вы видите, есть тег. Не похоже, что IP-адреса Elasti c поддерживают «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)
2 голосов
/ 14 июля 2020

Обычно в 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'
        }
    ]
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...