Как получить все ресурсы aws во всех регионах в функции лямбды с помощью boto3 lib - PullRequest
0 голосов
/ 30 апреля 2020

Я пытаюсь зарегистрировать все мои aws ресурсы во всех регионах (с несколькими учетными записями), используя boto3 lib.

Я обнаружил, что aws config полезен.

I Я уже создал агрегатор

  ConfigurationAggregator:
    Type: 'AWS::Config::ConfigurationAggregator'
    Properties:
      AccountAggregationSources:
        - AccountIds: !Ref AccountIds
          AllAwsRegions: !Ref AllAwsRegions
      ConfigurationAggregatorName: MyAggregator

И я прошел boto3 lib docs для aws config https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/config.html#ConfigService .Client.batch_get_aggregate_resource_config

Но для этого требуются различные ТРЕБУЕМЫЕ параметры например, resourceid, идентификатор учетной записи региона, тип ресурса.

Какой самый простой API boto3, где мне не нужно передавать ничего, кроме имени Агрегатора, а взамен я получаю список всех и всяких видов aws ресурсы во всех регионах.

Меня не волнует вопрос о совместимости ресурса или нет, я просто хочу зарегистрировать каждый ресурс в одном go.

Ответы [ 2 ]

0 голосов
/ 03 мая 2020

Решение состояло в том, чтобы создать мультирегиональный cc / мультирегиональный агрегатор и использовать это имя агрегатора ниже функция агрегирования

            nextToken = ""
            res = []
            while (nextToken != None):
                data = client.list_aggregate_discovered_resources(ConfigurationAggregatorName=AWS_AGG_NAME, ResourceType=tp, Limit=AGG_LIMIT, NextToken=nextToken)
                do_your_logic_with_resource(rc)
                res = res + data['ResourceIdentifiers']
                nextToken = data['NextToken'] if 'NextToken' in data else None
            return res
0 голосов
/ 30 апреля 2020

Я думаю, select_aggregate_resource_config - это то, что вам нужно. Пример запроса может быть: SELECT resourceId, resourceName, resourceType. Вы можете поиграть с расширенными запросами в AWS веб-консоли, прежде чем пытаться сделать это в коде.

...