【问题标题】:How to tag AWS resources with pre defined set of tags using resource name prefix如何使用资源名称前缀使用预定义的一组标签来标记 AWS 资源
【发布时间】:2021-09-03 13:24:36
【问题描述】:

我在 python 方面的经验很少,我正在寻找构建 lambda 的想法,通过在实例名称标签中使用前缀来标记 aws 资源,尤其是 ec2-instances 及其卷

例如:dev-cassandra-01、dev-cassandra-02

我想通过使用前缀“dev-cassandra”为预定义的标签集设置自动标记,该前缀应适用于使用此前缀创建的任何新实例。

对不同的应用程序实例有类似的不同标签集。

这可以通过配置工具应用于常规实例,但不适用于现有的 ASG 实例。

非常感谢任何帮助。

谢谢

【问题讨论】:

    标签: amazon-web-services amazon-ec2 aws-lambda tags


    【解决方案1】:

    您可以在创建实例时使用资源方法create_instances 插入标签 在“TagSpecifications”属性中。

    或者您也可以使用客户端方法create_tags 编辑特定实例标签,此方法您需要先获取实例ID。 前缀逻辑可以根据需要添加到python脚本中。

    以下是这些方法的 2 个示例:

    create_instances

    # Getting resource object with aws credentials
    s = boto3.Session(
            region_name=<region_name>,
            aws_access_key_id=<aws_access_key>,
            aws_secret_access_key=<aws_secret_access_key>,
        )
    
    ec2 = s.resource('ec2')
    
    # Some of these options are optional
    instance = ec2.create_instances(
        ImageId=<ami_id>,
        MinCount=1,
        MaxCount=1,
        InstanceType=<instance_type>,
        KeyName=<instance_key_pair>,
        IamInstanceProfile={
            'Name': <instance_profile>
        },
        SecurityGroupIds=[
            <instance_security_group>,
        ],
        TagSpecifications=[
            {
                'ResourceType': 'instance',
                'Tags': [
                    {
                        'Key': <key_name>,
                        'Value': <value_data>,
                    },
                ]
            },
        ],
    )
    

    create_tags:

    # Next line is for getting client object from resource object
    ec2_client = ec2.meta.client  
    
    ec2_client.create_tags(
        Resources=[
            <instance_id>,
        ],
        Tags=[
            {
                'Key': 'Name',
                'Value': <dev-cassandra><_your_name>
            },
            {
                'Key': <key_name>,
                'Value': <value_data>,
            },
        ]
    )
    

    值得一提的是,“实例名”也是一个标签。 例如:

    {
        'Key': 'Name',
        'Value': <dev-cassandra><_your_name>
    }
    

    【讨论】:

      猜你喜欢
      • 2015-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-02
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 2019-10-02
      相关资源
      最近更新 更多