2017-11-06 18 views
-1

AWSを初めて使用しています。 PythonスクリプトをAWSにデプロイする必要があります。私たちのクライアントは、SNSはラムダ関数とラムダ関数が私のスクリプトをトリガし、私のスクリプトへのS3キーとバケット名を渡す通知し、その後S3上の任意のファイルを置くたびマイプロジェクトの流れは次のようにAWSラムダ関数にローカルPythonスクリプトをデプロイする方法

S3 
SNS 
Lambda Function 
My Python script 

です。

設定方法を教えてください。

+2

これは広すぎます。 [documentation](http://docs.aws.amazon.com/lambda/latest/dg/getting-started-create-function.html)から始めて、ドキュメントを読む際の具体的な質問をしてください。 – jordanm

+1

設定にはどの部分が役に立ちますか? –

+0

まず、s3(snの使用なし)とここで見つけることができる完全な実装からlambdaを直接呼び出すことができます。 http://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html – jzaa

答えて

0

関数をlambda_handlerとしてメインの呼び出し元関数として記述します。コードはlambda_handlerで始まる必要があります。そして、あなたのコードをaws lambdaに直接コピーしてコピーします。以上です。

例えば、

def lambda_handler(event, context): 
    try: 
     /// Your code goes here 
     return 'Completed' 
    except (Exception, KeyboardInterrupt) as e: 
     return 'Error occurred' 

また、サードパーティ製のパッケージ(たとえば、 requests。 これらのパッケージをディレクトリにインストールし、ネストなしでスクリプトと一緒にプレーンジップを作成します。 more のために、ここで読むか、AWSラムダの設定についてこのvideo

で見てみることができます - hereを読む、それはそれぞれのオプションに関するすべての詳細を提供します。要件に合った構成オプションを選択してください

0

ご返信いただきありがとうございます。しかし、私はラムダで私のスクリプトを呼び出すためにこれに従います。私が間違っていれば私を修正してください。

ラムダfunction.pyで私のPythonスクリプト 1. lambda_function.py 2.同じディレクトリに

を2スクリプトを作成します -

import urllib 
import streaming 
import os 

def lambda_handler(event, context): 
    dir_path = os.path.dirname(os.path.realpath('__file__')) 
    bucket = event['Records'][0]['s3']['bucket']['name'] 
    key = urllib.unquote_plus(event['Records'][0]['s3']['object']['key'].encode('utf8')) 

    try: 
     key_vertical_directory = key.split("/")[-2] 
     key_filename = key.split("/")[-1] 

     if key_vertical_directory.lower() == "hotel": 
      if key_filename.lower().endswith("exp_v1.tgz"): 
       streaming.streaming_v1_start(key, bucket, dir_path) 

このzipファイルをのためにそれをアップロードし、次のコードを使用しますラムダ関数。

関連する問題