Home > OS >  AWS CLI create-function for Lambda with S3 suffixes returns Unknown options
AWS CLI create-function for Lambda with S3 suffixes returns Unknown options

Time:01-20

I have the below batch script for creating my Lambda function via the AWS CLI:

rem -----------------------------------------
rem create or update the lambda function
aws lambda create-function ^
    --function-name %LAMBDA_FUNCTION_NAME% ^
    --runtime python3.9 ^
    --role %LAMBDA_ROLE_ARN% ^
    --handler %LAMBDA_HANDLER% ^
    --zip-file fileb://%LAMBDA_ZIP_FILE% ^
    --profile %AWS_PROFILE% ^
    --region %REGION% ^
    --timeout 180 ^
    --memory-size 1024 ^
    --layers %LAMBDA_ARN_LAYER% ^
    --environment Variables={PYTHONPATH=python/lib}

@echo on
@echo Deployed the AWS Lambda function %LAMBDA_FUNCTION_NAME% in region %REGION%
@echo off

rem -----------------------------------------
rem add S3 trigger
aws lambda create-event-source-mapping ^
    --function-name %LAMBDA_FUNCTION_NAME% ^
    --event-source-arn arn:aws:s3:::%S3_BUCKET_NAME% ^
    --batch-size 1 ^
    --starting-position "LATEST" ^
    --profile %AWS_PROFILE% ^
    --region %REGION% ^
    --event-source-request-parameters Events=s3:ObjectCreated:* Filter='{"Key": {"Suffix": [".MF4",".MFC",".MFE",".MFM"]}}'

However, I get an error for the last part of the create-function:

Unknown options: --event-source-request-parameters, Filter='{Key:, {Suffix:, [.MF4,.MFC,.MFE,.MFM]}}', Events=s3:ObjectCreated:*

In what way is my syntax wrong? I want to use my S3 bucket as the trigger whenever a file with one of the file extensions listed is uploaded.

CodePudding user response:

S3 event notification doesn't need an event source mapping. You should use the following CLI command instead to use your S3 bucket as the trigger:

aws s3api put-bucket-notification-configuration --bucket S3_BUCKET_NAME ...
  • Related