Ich erstelle eine Lambda-Funktion mit der Absicht, meine EC2-Instanzen mit ihren Snapshots zu sichern. Allerdings habe ich bemerkt, dass ich die Boto-Dokumentation gelesen habe, der Aufruf von ec2.describe_instances ist rate-limitiert mit MaxResults/NextToken. Wie kann ich die beiden kombinieren, um sicher durch die Liste 50 gleichzeitig zu iterieren? Unten ist mein unfertige:Handhabung EC2 Beschreibung Geschwindigkeitsbegrenzung in Boto3 Lambda?
import boto3
import datetime
import time
ec2 = boto3.client('ec2')
def lambda_handler(event, context):
try:
print("Creating snapshots on " + str(datetime.datetime.today()) + ".")
maxResults = 50
schedulers = ec2.describe_instances(Filters=[{'Name':'tag:GL-sub-purpose', 'Values':[Schedule]}], MaxResults=maxResults)
nextToken = schedulers['NextToken']
totalSchedulers = len(schedulers)
while totalSchedulers == maxResults:
schedulers = ec2.describe_instances(Filters=[{'Name':'tag:GL-sub-purpose', 'Values':[Schedule]}], MaxResults=maxResults, NextToken=nextToken)
nextToken = result['NextToken']
totalSchedulers = len(schedulers)
print("Performing backup on " + str(len(schedulers)) + " schedules.")
successful = []
failed = []
for s in schedulers:
#[...] More operations here, done 50 at a time.
Ich bin nicht wirklich sicher, ob ich die MaxResults/Nexttoken Parameter richtig oder effizient hier bin mit. Ist dies der beste Weg, mein gewünschtes Ergebnis zu erreichen/bin ich auf dem richtigen Weg?