2016-12-14 10 views
1

zencoderを使ってビデオを変換するためのインラインコードエディタを使ってラムダ関数を作成しました。Pythonを使用してAWSラムダパッケージを作成する方法は?

私は3つの異なるサイズと1つのバケットから別のバケットにイメージをサイズ変更する必要があります。

このシナリオでは、いくつかのPythonモジュールをインポートする必要があります。しかし、それはモジュールが見つかりませんでした画像のようなエラーを言います。

これは私のラムダコードでした。

import boto3 
import cStringIO 
import urllib 
import os 
import image 
fp=urllib.urlopen('iamgeurl') 
img = cStringIO.StringIO(fp.read()) 
im = Image.open(img) 
im2 = im.resize((500, 100), Image.NEAREST) 
out_im2 = cStringIO.StringIO() 
im2.save(out_im2, 'PNG') 
conn = boto.connect_s3() 
b = conn.get_bucket('Bucketname') 
k = b.new_key('example.png') 
k.set_contents_from_string(out_im2.getvalue()) 

答えて

1

まず、ラムダダッシュボードからコードをエクスポートします。次に、以下を実行します。

ダウンロードしたパッケージをディレクトリに解凍します(例:project-dir)。

pipを使用してライブラリをインストールします。これらのライブラリは、ディレクトリのルートレベルにインストールします。

pipインストールモジュール名-t/path/to/project-dir 展開パッケージであるproject-dirディレクトリの内容を圧縮します。

ジップディレクトリではなくディレクトリの内容を圧縮します。 Zipファイルの内容は、Lambda関数の現在の作業ディレクトリとして利用できます。例:/project-dir/codefile.py/lib/yllibraries

ラムダ関数にzipファイルをアップロードします。

詳細については、http://docs.aws.amazon.com/lambda/latest/dg/lambda-python-how-to-create-deployment-package.html

+0

ありがとうございました。情報のためだけに、私がフォルダを圧縮したときになぜそれが動作していないのかを詳しく教えていただけますか? – Amrendra

+0

AWS Lambdaでは、コンテンツのみを圧縮する必要があります。この文書の手順4:aws:https://docs.aws.amazon.com/lambda/latest/dg/lambda-python-how-to-create-deployment-package.html –

関連する問題