Wie Sie Zugriff auf das event-Objekt mit python in AWS Lambda?

Follow-up auf diese Frage:
Filter CloudWatch Logs zu extrahieren Instanz-ID

Ich denke, es bleibt die Frage unvollständig, weil es nicht sagen, wie man Zugriff auf das event-Objekt mit python.

Mein Ziel ist:

  • Lesen Sie die Instanz, die ausgelöst wurde durch eine änderung in den running-Zustand
  • bekommen Sie einen tag-Wert zugeordnet ist, die Instanz
  • starten alle anderen Instanzen, die den gleichen tag

Den Cloudwatch-trigger-Ereignis:

{
  "source": [
    "aws.ec2"
  ],
  "detail-type": [
    "EC2 Instance State-change Notification"
  ],
  "detail": {
    "state": [
      "running"
    ]
  }
}

Ich sehe Beispiele wie diese:

def lambda_handler(event, context):

    # here I want to get the instance tag value
    # and set the tag filter based on the instance that 
    # triggered the event

    filters = [{
            'Name': 'tag:StartGroup',
            'Values': ['startgroup1'] 
        },
        {
            'Name': 'instance-state-name', 
            'Values': ['running']
        }
    ]

    instances = ec2.instances.filter(Filters=filters)

Kann ich sehen das event-Objekt, aber ich nicht sehen, wie drill-down in der tag des die Instanz, die hatte es Status auf "running" gewechselt.

Bitte, was ist das Objekt, Attribut, durch das ich kann einen tag von der Instanz ausgelöst?

Ich vermute, es ist so etwas wie:

myTag = event.details.instance-id.tags["startgroup1"]

InformationsquelleAutor Chrisjx | 2017-09-14

Schreibe einen Kommentar