2016-09-12 2 views
0

Я использую python для автоматизации инфраструктуры AWS. мне нужно, чтобы получить ресурсы, прикрепленные с помощью таблицы маршрутов, для которых API данного являетсяНе удалось получить ресурсы, связанные с таблицей маршрутов

ec2 = boto3.resource('ec2') 
route_table_association = ec2.RouteTableAssociation('rtb-**********') 
response=route_table_association.get_available_subresources() 

Здесь возвращаемый тип ответа дает мне пустой список все время. и response=route_table_association.delete() дает, за исключением

An error occurred (InvalidAssociationID.NotFound) when calling the `DisassociateRouteTable operation: The association ID 'rtb-*********' does not exist.` 

Но маршрут tebale существует и прикрепляется к подсети, явно

+0

Идентификатор ID - это идентификатор ассоциации, а не идентификатор таблицы маршрута. Перекрестная проверка и повторите попытку. – Ali

+0

Вы используете boto3, почему тег botocore? – Skaperen

ответ

0

Ид требуется в RouteTableAssociationId i.e. rtbassoc-xxxxxx, НЕ маршрут таблице идентификатор.

RouteTableAssociationId находится внутри describe_route_tables ответ Элемент ассоциаций JSON.

{ 
    'RouteTables': [ 
     { 
      'RouteTableId': 'string', 
      'VpcId': 'string', 
      'Routes': [ 
       {....} 
      ], 
      'Associations': [ 
       { 
        'RouteTableAssociationId': 'string', 
        'RouteTableId': 'string', 
        'SubnetId': 'string', 
        'Main': True|False 
       }, 
      ], 
..... 
} 
0

Спасибо, что сработало для меня.

response = client.describe_route_tables(
    RouteTableIds=[ 
     routetable, 
    ], 
    Filters=[ 
     { 
      'Name': 'route-table-id', 
      'Values': [ 
       routetable 
      ] 
     } 
    ] 
) 
Смежные вопросы