web-dev-qa-db-ja.com

AWS Lambdaでのハンドラーエラーの欠落

基本的な質問に対する私の謝罪。 AWSとPythonはまったく初めてです。 https://boto3.readthedocs.io/en/latest/guide/migrations3.html#accessing-a-bucket に記載されているサンプルコードを実行しようとしていますが、エラーが発生しています。

import botocore
import boto3
s3 = boto3.resource('s3')
bucket = s3.Bucket('bucketname')
exists = True


try:
    s3.meta.client.head_bucket(Bucket='bucketname')
except botocore.exceptions.ClientError as e:
    # If a client error is thrown, then check that it was a 404 error.
    # If it was a 404 error, then the bucket does not exist.
    error_code = int(e.response['Error']['Code'])
    if error_code == 404:
        exists = False 

ログのエラーは

"errorMessage": "ハンドラ 'lambda_handler'がモジュール 'lambda_function'にありません"

7
chpsam

コードで関数を定義する必要があります。コードには、lambda_handlerという名前の関数がありません。コードは次のようになります。

    import botocore
    import boto3

    def lambda_handler(event, context):
        s3 = boto3.resource('s3')
        bucket = s3.Bucket('bucketname')
        exists = True

        try:
            s3.meta.client.head_bucket(Bucket='bucketname')
        except botocore.exceptions.ClientError as e:
            # If a client error is thrown, then check that it was a 404 error.
            # If it was a 404 error, then the bucket does not exist.
            error_code = int(e.response['Error']['Code'])
            if error_code == 404:
                exists = False
17
krishna_mee2004