0
AWSにPython Lambda関数を作成して、展開されているTAGに基づいてEC2インスタンスを開始しました。インスタンスが停止しているかどうかをチェックし、インスタンスが実行されているかどうかを確認します。タグに基づいてEC2インスタンスを開始するLambda関数
import boto3
import logging
ec2 = boto3.resource('ec2')
def lambda_handler(event, context):
filters = [{
'Name': 'tag:STARTUP',
'Values': ['YES']
},
{
'Name': 'instance-state-name',
'Values': ['stopped']
}]
instances = instances.filter(Filters=filters)
stoppedInstances = [instance.id for instance in instances]
if len(stoppedInstances) > 0:
startingUp = instances.filter(instances).start()
私はそれを実行しようとすると、私は次のエラーを取得:どこでも私はFILTER変数が複数の引数を処理することができます見て何とか私は使用することができていますが、
START RequestId: XXX Version: $LATEST
filter() takes 1 positional argument but 2 were given: TypeError
Traceback (most recent call last):
File "/var/task/lambda_function.py", line 17, in lambda_handler
startingUp = ec2.instances.filter(instances).start()
TypeError: filter() takes 1 positional argument but 2 were given
を1?
私はPython 3.6ランタイムを使用しています。私は、(時間にのみ基づいて)サーバーを起動するために正しく動作する他の機能と同じ役割を使用しています。
アドバイスをお願いしますか?ありがとうございました!
これは、あなたがエラーを理解するのに役立つかもしれません:https://stackoverflow.com/questions/23944657/typeerror-method-takes-1-positional-議論2だったが、23944658 – HakRo
ec2.instances.filter(...) – jarmod