2016-05-10 16 views
0

S3バケット上に新しいファイルを作成する簡単なラムダ関数を作成しようとしています。私はすでにセキュリティポリシーを設定していますが、それはうまくいくはずですが、時間がかかりすぎます。Amazon Lambda - オブジェクトの作成に時間がかかりすぎる

コードは、この

from __future__ import print_function 

import json 
import boto3 

print('Loading function') 


def lambda_handler(event, context): 
    #print("Received event: " + json.dumps(event, indent=2)) 
    print("value1 = " + event['key1']) 
    print("value2 = " + event['key2']) 
    print("value3 = " + event['key3']) 

    bucket_name = 'lambda-demo2016' 
    file_name = 'hello.txt' 
    path = '/tmp/' + file_name 

    # Create file 
    file = open(path, 'wb') 
    file.write("Hello World!!!") 
    file.close() 

    # Create Connection 
    s3 = boto3.resource('s3') 
    bucket = s3.Bucket(bucket_name) 
    s3_client = boto3.client('s3') 

    s3_client.put_object(Body=open(path), Key='hello', Bucket=bucket_name) 

    return event['key1'] #just return something... 

である私はこれを持っている:私は間違って

{ 
    "errorMessage": "2016-05-10T21:01:11.689Z 47160213-16f2-11e6-8e41-8f6a61b4b42e Task timed out after 20.00 seconds" 
} 

何をしているのですか?

これには時間がかかりますか?

+0

あなたがVPCへのアクセスを可能にしましたか?もしそうなら、S3 VPCエンドポイントを作成しましたか? –

+0

はい、ポリシーとセキュリティグループもチェックしました。 – MikeVelazco

+0

ネットワーク設定に間違っているものがあります。私はこのページのすべてを調べています。http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-endpoints.html#vpc-endpoints-ルーティングあなたが正しく設定しなければならないことがいくつかありますアプリケーションがS3エンドポイントにアクセスできるようにするためのVPC。 –

答えて

1

完了したかどうかだけを確認するためにタイムアウトをさらに上げます。また、コード内にいくつかの追加のprintステートメントを追加すると、ハングしている場所が表示されることがあります。 >機能 - -

は、ラムダ関数のタイムアウトを変更するにはラムダの下で行われている>機能 - >設定 - > [詳細設定]

enter image description here

+0

それをより長く働かせることは解決策ではありません。それは非常に単純な関数であると考えられています。 私は既にコメントを追加しようとしましたが、put_object関数は終了していません。 60秒を超えるタイムアウトを設定すると、すべてのエラーを取得することはできません。 – MikeVelazco

+0

申し訳ありませんが、元の投稿には多くの情報が残っていなかったため、ソリューションになることを意図した時間切れが増えていないことを明確にしたほうがいいでしょう。あなたの問題が解決してうれしいです。乾杯! –

関連する問題