2017-09-05 32 views
0

タグに基づいてec2インスタンスを停止するには、AWS Lambdaでpythonジョブを実行しています。 スクリプトは正常に実行されていますが、スクリプトが正常に完了しても、関数の実行によって返された結果に「null」が出力されています。 添付されているのはpythonスクリプトです。私はPythonスクリプトに慣れていません。私はオプス側からです。あなたはlambda_handler方法から復帰何か(通常の辞書)に必要なラムダからの応答を得るためにPythonジョブを実行しているときにNULL出力を取得する

import boto3 
import logging 

#setup simple logging for INFO 
logger = logging.getLogger() 
logger.setLevel(logging.INFO) 

#define the connection 
ec2 = boto3.resource('ec2') 

def lambda_handler(event, context): 
    # Use the filter() method of the instances collection to retrieve 
    # all running EC2 instances. 
    filters = [{ 
      'Name': 'tag:AutoOff', 
      'Values': ['True'] 
     }, 
     { 
      'Name': 'instance-state-name', 
      'Values': ['running'] 
     } 
    ] 

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

    #locate all running instances 
    RunningInstances = [instance.id for instance in instances] 

    #print the instances for logging purposes 
    print RunningInstances 

    #make sure there are actually instances to shut down. 
    if len(RunningInstances) > 0: 
     #perform the shutdown 
     shuttingDown = ec2.instances.filter(InstanceIds=RunningInstances).stop() 
     print shuttingDown 
    else: 
     print "NOTHING" 
+0

私はpythonスクリプトが表示されません... – Goralight

+0

今すぐスクリプトを追加しました.. – Pushkar

答えて

0

。デフォルトでは、すべてのPythonメソッドはなし型を返します。そのため、貴重な応答が得られません。

def lambda_handler(event, context): 
    ... your code here ... 
    return {"turned_off": RunningInstances} 

P.S. print()の代わりにlogging.debug | info | ...メソッドを使用することをお勧めします。詳細については、ドキュメントを参照してください。https://docs.python.org/2.7/library/logging.html

とにかくすべての出力はCloudWatchログに保存されます。ログストリームは、ラムダ関数を作成すると自動的に作成されます。すべてのプリントがデバッグ用にあります。

関連する問題