다음은 Lambda 함수입니다. Autoscaling 그룹 목록을 가져 와서 인쇄합니다.AWS Lambda : 'lambda_function'모듈을 가져올 수 없습니다. boto.ec2.autoscale이라는 모듈이 없습니다.
import json
import boto3
import boto.ec2.autoscale
role = "arn:aws:iam::XXXXXXXXXX:role/lambda-autoshutdown-role"
regions = ["eu-central-1"]
autoscaling = boto3.client('autoscaling')
class App(object):
def __init__(self,RoleArn):
self.RoleArn = RoleArn
if self.RoleArn != "local":
sts_client = boto3.client('sts')
self.sts = sts_client.assume_role(
RoleArn=self.RoleArn,
RoleSessionName="lambda_poweroff")["Credentials"]
def get_resource(self,region="eu-central-1"):
if self.RoleArn == "local":
return boto3.resource(region_name=region)
else:
return boto.ec2.autoscale.connect_to_region(
region_name=region,
aws_access_key_id=self.sts['AccessKeyId'],
aws_secret_access_key=self.sts['SecretAccessKey'],)
def lambda_handler(event, context):
a = App(role)
for region in regions:
asgs = a.get_resource(region)
# locate all running instances
#autoscaling_groups_to_suspend = []
#for i in asgs:
# print asgs[i]
print '[%s]' % ', '.join(map(str, asgs))
이 함수는 연결하여 개체를 반환합니다.
Unable to import module 'lambda_function': No module named boto.ec2.autoscale
그것은 클래스 boto.ec2.autoscale처럼 보인다는 AWS에 의해로드되지 않는 : 나는 AWS에 배포 할 때
는하지만, 나는 다음과 같은 오류가 발생합니다.
무엇이 잘못 되었습니까?
내가 boto3 사용하지 않으려는 그들을 일시 중단합니다. describe_auto_scaling_groups() 메소드가 JSON dict를 리턴하는 방식으로 클라이언트 ('autoscaling')를 사용하고 있습니다. 배열이나리스트 인 리턴 타입에 관심이 있습니다.'get_resource'가리스트를 리턴합니다. – Spaniard89