Ich erstelle ein AWS Lambda Python-Bereitstellungspaket. Ich verwende eine externe Abhängigkeitsanforderung. Ich habe die externe Abhängigkeit mithilfe der AWS-Dokumentation http://docs.aws.amazon.com/lambda/latest/dg/lambda-python-how-to-create-deployment-package.html installiert . Unten ist mein Python-Code.
import requests
print('Loading function')
s3 = boto3.client('s3')
def lambda_handler(event, context):
#print("Received event: " + json.dumps(event, indent=2))
# Get the object from the event and show its content type
bucket = event['Records'][0]['s3']['bucket']['name']
key = urllib.unquote_plus(event['Records'][0]['s3']['object']['key']).decode('utf8')
try:
response = s3.get_object(Bucket=bucket, Key=key)
s3.download_file(bucket,key, '/tmp/data.txt')
lines = [line.rstrip('\n') for line in open('/tmp/data.txt')]
for line in lines:
col=line.split(',')
print(col[5],col[6])
print("CONTENT TYPE: " + response['ContentType'])
return response['ContentType']
except Exception as e:
print(e)
print('Error getting object {} from bucket {}. Make sure they exist and your bucket is in the same region as this function.'.format(key, bucket))
raise e
Erstellt die Zip den Inhalt des Projektverzeichnisverzeichnisses und lädt es in das Lambda hoch (Zip den Verzeichnisinhalt, nicht das Verzeichnis). Wenn ich die Funktion ausführe, erhalte ich den unten genannten Fehler.
START RequestId: 9e64e2c7-d0c3-11e5-b34e-75c7fb49d058 Version: $LATEST
**Unable to import module 'lambda_function': No module named lambda_function**
END RequestId: 9e64e2c7-d0c3-11e5-b34e-75c7fb49d058
REPORT RequestId: 9e64e2c7-d0c3-11e5-b34e-75c7fb49d058 Duration: 19.63 ms Billed Duration: 100 ms Memory Size: 128 MB Max Memory Used: 9 MB
Bitte helfen Sie mir, den Fehler zu debuggen.
import lambda_function
das nicht gefunden wird. Vielleicht willst dufrom future import lambda_function
? Oder installieren Sie einfach lambda_function in der cmd-Zeile.