How to Trigger a Lambda CSV-to-Parquet Conversion on S3 Upload?

Answer Correct answer: A — Configure an s3:ObjectCreated:* S3 event notification with a .csv suffix filter that invokes the Lambda function directly.

A data engineer needs to create an AWS Lambda function that converts the format of data from .csv to Apache Parquet. The Lambda function must run only if a user uploads a .csv file to an Amazon S3 bucket. Which solution will meet these requirements with the LEAST operational overhead?

  1. Create an S3 event notification that has an event type of s3:ObjectCreated:*. Use a filter rule to generate notifications only when the suffix includes .csv. Set the Amazon Resource Name (ARN) of the Lambda function as the destination for the event notification. Correct Answer
  2. Create an S3 event notification that has an event type of s3:ObjectTagging:* for objects that have a tag set to .csv. Set the Amazon Resource Name (ARN) of the Lambda function as the destination for the event notification.
  3. Create an S3 event notification that has an event type of s3:*. Use a filter rule to generate notifications only when the suffix includes .csv. Set the Amazon Resource Name (ARN) of the Lambda function as the destination for the event notification.
  4. Create an S3 event notification that has an event type of s3:ObjectCreated:*. Use a filter rule to generate notifications only when the suffix includes .csv. Set an Amazon Simple Notification Service (Amazon SNS) topic as the destination for the event notification. Subscribe the Lambda function to the SNS topic.

Community Votes

A
100%

100% of anonymous learners picked answer A. Votes are pick records left by other test-takers — they are not the verified answer.

Community Insight

The exam tests whether you can map 'a user uploads a .csv file' to the right S3 notification event type and wire it straight to Lambda — the trap is inserting an unnecessary SNS hop or picking an event type that never fires on object creation.

An S3 event notification with the s3:ObjectCreated:* event type plus a .csv suffix filter can invoke a Lambda function directly, which is the lowest-operational-overhead way to run a CSV-to-Parquet conversion whenever a file lands in the bucket. This page confirms why option A is correct and why routing the same event through Amazon SNS or using a tag-based/invalid event type does not satisfy the requirement.

Adding an Amazon SNS topic between S3 and Lambda (option D), because it looks like a more decoupled, production-grade design — but it adds another resource, subscription and IAM permissions with zero functional benefit, which directly contradicts the 'LEAST operational overhead' requirement.

Community Discussion (7 comments)

milofficial 👍 13 Selected: A
"only if a user uploads data to an Amazon S3 bucket" that excludes B & C because we need s3:ObjectCreated:* You don't need SNS for S3 event notifications so A is easier.
TonyStark0122 👍 8
A. Create an S3 event notification that has an event type of s3:ObjectCreated:. Use a filter rule to generate notifications only when the suffix includes .csv. Set the Amazon Resource Name (ARN) of the Lambda function as the destination for the event notification. Explanation: This solution directly triggers the Lambda function only when a .csv file is uploaded to the S3 bucket, minimizing unnecessary invocations of the Lambda function. It uses a specific event type (s3:ObjectCreated:) and a filter rule to ensure that the Lambda function is invoked only for relevant events. Additionally, it directly invokes the Lambda function without the need for additional services like Amazon SNS, reducing operational overhead.
Adrifersilva 👍 1 Selected: A
s3:ObjectCreated: instead of s3:: triggers the Lambda function only when objects are created in the bucket.
theloseralreadytaken 👍 1 Selected: A
A is the answer for least operational. C also correct!
pypelyncar 👍 1 Selected: A
since is the least operational, the D its a candidate, however add a SNS operation, which in this case is not needed. so A includes S3 and triggering towards the lambda function. 2 services.
k350Secops 👍 1 Selected: A
S3 event notification to lamba for file prefix with.csv is the least overhead way
DevoteamAnalytix 👍 2 Selected: A
"You can use Lambda to process event notifications from Amazon Simple Storage Service. Amazon S3 can send an event to a Lambda function when an object is created or deleted" https://docs.aws.amazon.com/lambda/latest/dg/with-s3.html

Comments & Corrections

No comments yet — spotted an error or have a note? Share it below.

Log in to comment, report an error, or add a note about this question.

Submitted for moderation before publishing. Keep it helpful and respectful.

Expert Analysis

Why the Answer Is Correct

Option A pairs the only event type that matches 'a user uploads a.csv file' — s3:ObjectCreated:* — with a suffix filter for.csv, and names the Lambda function ARN directly as the notification destination. S3 therefore invokes the function itself, so the whole trigger is a single service configuration with no intermediate topic, subscription or extra IAM policy to maintain. That is exactly the 'least operational overhead' path, and the CSV-to-Parquet conversion runs only on newly created.csv objects, as required. Nothing else in the option list achieves the upload trigger with fewer moving parts.

Why the Other Options Are Wrong

Option B keys off s3:ObjectTagging: — tagging events are unrelated to uploads, so a.csv object uploaded without a tag would never invoke the function. Option C uses s3:, which is not a supported S3 event notification type; S3 only exposes the s3:ObjectCreated:, ObjectRemoved:, ObjectRestore:, Replication:, Lifecycle:, IntelligentTiering: and ObjectTagging:* families, so that notification cannot even be created. Option D is functionally valid but inserts an Amazon SNS topic and an SNS subscription between S3 and Lambda, adding a resource to manage, extra permissions to grant and an additional hop of latency for no gain.

Community Comment Notes

As milofficial notes, the requirement that the function run 'only if a user uploads data to an Amazon S3 bucket' excludes B and C, and — in their words — "You don't need SNS for S3 event notifications so A is easier." Adrifersilva makes the same point, observing that s3:ObjectCreated:* "triggers the Lambda function only when objects are created in the bucket," which is precisely the trigger the scenario asks for. DevoteamAnalytix points to the AWS Lambda developer guide's S3 integration page, which states that S3 can send an event to a Lambda function when an object is created or deleted. pypelyncar adds that D is a candidate only until you realize the SNS operation is "not needed," and k350Secops describes the direct S3-to-Lambda notification as the "least overhead way." The community reasoning aligns with the AWS documentation and with the official answer key.

Official Reference

Exam Strategy

For 'LEAST operational overhead' questions, count the managed resources each option introduces — here A needs one S3 notification, while D needs an S3 notification plus an SNS topic plus a subscription. Also memorize that S3 event types are namespaced families (ObjectCreated, ObjectRemoved, ObjectTagging, and so on); a bare s3:* is never a valid choice.

Frequently Asked Questions

Why is the Amazon SNS topic in option D unnecessary for this S3-to-Lambda trigger?

S3 event notifications can invoke a Lambda function directly by using the function ARN as the destination. Adding SNS only introduces an extra topic, subscription and permissions to manage for no functional gain.

Is s3:* a valid S3 event notification type?

No. S3 supports specific event families such as s3:ObjectCreated: and s3:ObjectRemoved:; s3:* cannot be configured, which is why option C would never trigger the Lambda conversion.

Related Analysis

Practice All DEA-C01 Questions

Access 100 questions with complete answers and detailed explanations.

View Full DEA-C01 Practice Test →

← Back to DEA-C01 Study Guide