Рейтинг:1

Не могу перечислить все изображения

флаг cn

Я пытаюсь перечислить все изображения с именем Ansible*.

Если мне это удастся, я смогу использовать его для очистки своих AMI, созданных во время установки исправлений. я пытаюсь это через документ автоматизации SSM. ниже код, который у меня есть.

описание: Этот документ предназначен для удаления AMI
версия схемы: '0.3'
предполагаемая роль: '{{ AutomationAssumeRole }}'
основные шаги:
  - имя: getImageId
    действие: 'aws:executeAwsApi'
    входы:
      Сервис: ec2
      API: Описать изображения
      Фильтры:
        - Имя: 'имя'
          Ценности:
            - 'Ансибл*'
    выходы:
      - Имя: Идентификатор изображения
        Селектор: '$.Images[0].ImageId'
        Тип: Строка

здесь Selector: '$.Images[0].ImageId' дает только первый идентификатор изображения в списке. я могу получить это, если я могу дать что-то вроде Selector: '$.Images[*].ImageId', но это не поддерживается документом SSM.

может кто-нибудь, пожалуйста, помогите мне в этом. все, что я хочу, это перечислить все изображения с их идентификатором AMI.

PS: у меня есть оболочка и скрипт Python, который выполняет эту работу. но я ищу документ AWS SSM Automation из-за ограничений ролей и политик

Рейтинг:0
флаг cn

Из некоторых быстрых тестов я не уверен, что вы можете.

Вы можете сделать это в CLI, поэтому, возможно, вы можете использовать бото3 библиотеку и сделать это как скрипт Python через выполнить скрипт автоматизация?

Команда CLI, которая работает:

aws ec2 description-images --owners amazon --filters "Name=name,Values=amzn*" --query 'Images[*].Name' --output json

Обновлять:

Вот документ по автоматизации, который запускает скрипт python:

описание: Получает все образы AMI, принадлежащие Amazon.
версия схемы: '0.3'
предполагаемая роль: '{{ AutomationAssumeRole }}'
основные шаги:
  - название: GetAMIs
    действие: 'aws:executeScript'
    входы:
      Время выполнения: Python3.6
      Обработчик: script_handler
      Скрипт: |-
        импорт бото3
        импортировать json
        def script_handler (события, контекст):
          ec2_client = boto3.client('ec2', region_name='eu-west-2')
          images = ec2_client.describe_images(Владельцы=['amazon'],Фильтры=[{'Имя':'имя','Значения':['amzn*']}])
          Эми = []
          для изображения в изображениях ['Изображения']:
            amis.append (изображение ['ImageId'])
          вывод = {"AMI": amis[:10]}
          возвратный вывод
    описание: получает первые 10 AMI Amazon с помощью boto3
    выходы:
      - Селектор: $.Payload.AMI
        Название: AMI
        Тип: список строк
    тайм-аутСекунды: 120

Обязательно измените такие вещи, как регион, строка поиска и т. д.

Raj R avatar
флаг cn
да, у меня есть оболочка и скрипт Python, который выполняет эту работу. но я ищу документ AWS SSM Automation из-за ограничений ролей и политик
флаг cn
Вы можете создать документ автоматизации, который запускает скрипт на python. Это первая опция для «Типа действия» в представлении «Строитель» или «aws:executeScript» в представлении редактора.
флаг cn
Нет, он работает в AWS и будет использовать роль, которую вы назначаете автоматизации при ее выполнении.
Raj R avatar
флаг cn
botocore.exceptions.NoCredentialsError: Не удалось найти учетные данные NoCredentialsError - Не удалось найти учетные данные это ошибка, которую я получаю
флаг cn
Замените значение для `assumeRole` на ARN вашей роли автоматизации из IAM.
Raj R avatar
флаг cn
Спасибо огромное. оно работает. я пытался это в течение недели. все потерпели неудачу из-за этой роли IAM. теперь все прояснилось.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.