2017-12-06 8 views
0

したがって、トリガされたときにSNSトピックを送信できるCloudwatchルールがあります。今、CloudWatchルールがトリガされたときにEC2インスタンスのセキュリティグループを変更するラムダ関数を設定しています。私はLambdaでPythonを使用していますが、私のコードはモジュールのエラーを生成しています。難しい部分は、私が雲のデータを取得して変数として渡そうとしていることです。イベント変数はこの構文になります イベント['detail'] ['resource'] ['instanceDetails'] ['instanceId'] 私のPythonコードでは、このように見えます... 私は非常にPythonとラムダに新しいですが、私はできるだけ多くのことを学ぼうとしています。ご覧のとおり、このイベント変数を使用して、SDKを使用して適切なModifyInstanceAttributeを実行して、インスタンスに関連付けられたセキュリティグループ(たとえば、Python)を変更しようとしています。 このコードは、 http://boto3.readthedocs.io/en/latest/reference/services/ec2.html#EC2.Client.modify_instance_attributeこれまでに以下の私のコード...私が取得AWS Cloudwatchデータ入力を使用したPythonラムダコード

import boto3 
client = boto3.client('ec2') 
response = 
client.modify_instance_attribute(InstanceId=event['detail']. ['resource']['instanceDetails']['instanceId'], 
    Groups=['sg-4e499332',] 
) 

エラーは、このモジュールの初期化エラーです

:名前「イベント」が定義されていない

答えて

1

ここboto3ドキュメントで説明したようにインスタンスの指定ラムダのようなコードは書いていません。あなたのハンドラは、eventcontextのパラメータをとる関数でなければなりません。

Lambda handler docs for Pythonを参照してください。

+0

私はさらに進化してこれを実現させましたが、正確なインスタンスIDを実際に定義する必要があります。 Cloudwatchルールに一致するインスタンスが複数ある場合は、セキュリティグループも変更する必要があります。ラムダスクリプトの変数としてイベントデータを解析する上での助け? – jonb157

関連する問題