【问题标题】:AWS Lambda boto3: Filter Instances by Launch Time = todayAWS Lambda boto3:按启动时间筛选实例 = 今天
【发布时间】:2023-03-07 00:43:01
【问题描述】:

我正在尝试通过 AWS Lambda 自动备份我的 EC2 实例。

我使用了这两个脚本,它们工作得很好。 https://gist.github.com/bkozora/724e01903a9ad481d21e https://gist.github.com/bkozora/d4f1cf0e5cf26acdd377

但我想添加脚本仅删除或备份今天已启动并具有备份标签的实例的功能。

我想我可以通过按启动时间=(今天的日期)另外过滤实例列表来实现这一点,然后在午夜之前执行过滤列表的函数。

遗憾的是,我不知道实现这一点的语法是什么样的,因为我对此完全陌生。

但为了进一步说明,上述代码部分应如下所示:

#....

var date = datetime.datetime.now();

Filters=[
            {'Name': 'tag-key', 'Values': ['Backup']},
            {'Name': 'instance.launch_time', 'Values': [date]}        
        ]

#....
#(and then the code to make a backup of every instance in the filtered list.

在按启动时间筛选的列表中找不到任何内容,因此希望有人可以在这里帮助我。

【问题讨论】:

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


    【解决方案1】:

    对于launch-time,您可以提供一个通配符来匹配给定日期内的任何时间。如果今天是Dec 13th 2017,可以指定2017-12-13*

    import boto3
    from datetime import date
    
    date_filter = date.isoformat(date.today()) + '*'
    ec2 = boto3.resource('ec2')
    
    instances = ec2.instances.filter(Filters=[{'Name':'launch-time', 'Values':[date_filter]}])
    for instance in instances:
       print instance.instance_id
    

    【讨论】:

      【解决方案2】:

      试试这个:

      import datetime
      
      date_filter = (datetime.datetime.now() - datetime.timedelta(days=7)).strftime("%Y-%m-%d")
      
      ec2_client.describe_instances(
          Filters=[
                  {
                      'Name':'launch-time',
                      'Values':[date_filter+'*']
                  },
              ],
          )
      

      【讨论】:

        猜你喜欢
        • 2020-01-22
        • 2016-08-20
        • 2017-11-28
        • 1970-01-01
        • 1970-01-01
        • 2019-06-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多