2017-12-06 9 views
0

그래서 나는 트리거 될 때 SNS 주제를 보낼 수있는 Cloudwatch 규칙을 가지고 있습니다. 이제 CloudWatch 규칙이 ​​트리거 될 때 EC2 인스턴스의 보안 그룹을 변경하는 람다 함수를 설정하고 있습니다. 나는 람다에서 파이썬을 사용하고 있지만, "모듈 오류"를 생성하는 코드를 사용하고 있습니다. 까다로운 부분은 클라우드 검색 데이터를 가져 와서 변수로 전달하려고하는 것입니다. 이벤트 변수는 다음 구문과 같습니다 : 이벤트 [ 'detail'] [ 'resource'] [ 'instanceDetails'] [ 'instanceId'] 그래서 내 파이썬 코드에서 보면 ... 파이썬과 람다에 대한 새로운 기능이 있지만 최대한 많이 배우려고합니다. 보시다시피 나는이 이벤트 변수를 사용하고 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 문서에 설명 된대로 인스턴스 지정 당신은 Lambda를위한 코드를 작성하지 않습니다. 처리기는 eventcontext 매개 변수를 사용하는 함수 여야합니다.

Lambda handler docs for Python을 참조하십시오.

+0

좋아, 내가 더 얻었고이 작동하도록있어하지만 실제로 정확한 인스턴스 ID를 정의해야합니다. Cloudwatch 규칙과 일치하는 인스턴스가 여러 개있는 경우 보안 그룹도 변경해야하기 때문에 원하는 것은 아닙니다. 이벤트 데이터를 람다 스크립트의 변수로 구문 분석하는 데 도움이 필요합니까? – jonb157