将AWS CLI命令转换为Python AWS Lambda函数

时间:2019-11-04 16:24:25

标签: python amazon-web-services aws-lambda boto3 aws-cli

我正在使用AWS CLI命令提取结果以进行报告,我必须创建一个lambda,该lambda可以完成相同的工作,但是在语法错误方面遇到许多问题

当前的AWS CLI命令:

$ 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 :(得分:0)

现在我可以打印此结果:

部署的版本是:

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

使用此示例`import boto3

def instance_list(tagkey,tagvalue):     #传递标签键后,标签值将返回找到的InstanceId的列表。

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)

`

正在尝试删除重复的行并通过邮件或备用邮件发送结果;有什么帮助吗?