开发者社区> 问答> 正文

为什么我的Boto3脚本仅在默认配置文件中运行?

我编写此代码是为了通过多个区域的Costcenter标记的值列出实例。我将两个参数传递给脚本,配置文件和div。当我更改配置文件参数时,它将继续使用默认配置文件。我已经测试了打印变量内容,并且看到变量中的数据就是我传递的内容。我有多个配置文件,并且希望能够针对我设置的任何配置文件运行此配置文件。

import boto3, sys

def intances_by_tag(profile, div):
    ec2 = boto3.resource('ec2')
    boto3.session.Session(profile_name=profile)
    instances = ec2.instances.filter(
        Filters=[
            {'Name': 'tag:Costcenter', 'Values': [div]}
            ]
        )
    for x in instances:
        for tag in x.tags:
            if tag["Key"] == 'Name':
                a = tag["Value"]
        print('{}'.format(a))

intances_by_tag(str(sys.argv[1]), str(sys.argv[2]))

问题来源:stackoverflow

展开
收起
is大龙 2020-03-24 19:02:57 468 0
1 条回答
写回答
取消 提交回答
  • 当我使用Mon的答案时,脚本无法找到EC2实例属性。这就是我现在正在使用的:

    import boto3, sys
    
    profile = str(sys.argv[1])
    boto3.setup_default_session(profile_name=profile)
    ec2 = boto3.resource('ec2')
    div = str(sys.argv[2])
    
    def intances_by_tag(profile, div):
        instances = ec2.instances.filter(
            Filters=[
                {'Name': 'tag:Costcenter', 'Values': [div]}
            ]
        )
        for x in instances:
            for tag in x.tags:
                if tag["Key"] == 'Name':
                    a = tag["Value"]
                    print('{}'.format(a))
    
    intances_by_tag(profile, div)
    

    回答来源:stackoverflow

    2020-03-24 19:03:06
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载