Преобразование команды CLI AWS в функцию Python AWS Lambda - PullRequest
0 голосов
/ 04 ноября 2019

Я использую команду CLI AWS для извлечения результатов для составления отчетов, и я должен создать лямбду, которая выполняет ту же работу, но сталкивается со многими проблемами с синтаксическими ошибками

Текущая команда CLI AWS:

$ aws ec2 describe-instances \
    --query 'Reservations[].Instances[].[Tags[?Key==`platform`]|[0].Value, Tags[?Key==`resource-version`]|[0].Value]| sort_by(@, &[0])' \
    --output table \
    --filter Name=tag:platform,Values=aip,mmt,pame --profile prod | uniq

Не могли бы вы помочь мне сделать такой же код на python, пожалуйста?

1 Ответ

0 голосов
/ 05 ноября 2019

Теперь я могу напечатать этот результат:

Развернутые версии:

mmt 1.104.12 mmt 1.104.15 mmt 1.104.15 mmt 1.112.0-SNAPSHOT mmt 1.104.15 mmt 1.104.12 aip 1.112.0-SNAPSHOT mmt 1.112.0-SNAPSHOT mmt 1.104.15 mmt 1.104.12 aip 1.112.0-SNAPSHOT aip 1.112.0-SNAPSHOT mmt 1.112.0-SNAPSHOT

Использование этого cide `import boto3

def instance_list (tagkey, tagvalue): # При передаче ключа тега, значение тега возвращает список найденных идентификаторов InstanceIds.

ec2client = boto3.client('ec2')

response = ec2client.describe_instances(
     Filters=[
      {'Name':'tag:platform', 'Values':["mmt","pame","aip"]}
]
)
name = []
instancelist= []
print ("Deployed versions are :")
for reservation in (response["Reservations"]):
    for instance in reservation["Instances"]:
       for tag in instance['Tags']:
           if tag['Key'] == 'platform':
               name.append(tag["Value"])
           if tag['Key'] == 'resource-version':
               instancelist.append(tag["Value"])
a  = [name + instancelist]
for x, y in zip(name, instancelist):
    print (x, y)

`

Пытаюсь удалить дублированную строку и отправить результатпо почте или вяло;Любая помощь, пожалуйста?

...