Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add validation for S3 NotificationConfiguration in Serverless Functin… #2473

Merged
merged 2 commits into from
Aug 23, 2022

Conversation

hawflau
Copy link
Contributor

@hawflau hawflau commented Aug 22, 2022

Issue #, if available:
N/A/

Description of changes:
Add Validation for NotifcationConfiguration in a S3 Bucket if it is used in a Serverless Function as an event source.

Description of how you validated changes:
Updated test to catch this error.

Checklist:

  • Add/update unit tests using:
  • Add/update integration tests
  • make pr passes
  • Update documentation
  • Verify transformed template deploys and application functions as expected
  • Do these changes include any template validations?
    • Did the newly validated properties support intrinsics prior to adding the validations? (If unsure, please review Intrinsic Functions before proceeding).
      • Does the pull request ensure that intrinsics remain functional with the new validations?

Examples?

Please reach out in the comments, if you want to add an example. Examples will be
added to sam init through https://github.com/awslabs/aws-sam-cli-app-templates/

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

@@ -407,13 +407,16 @@ def _inject_notification_configuration(self, function, bucket):
notification_config = {}
properties["NotificationConfiguration"] = notification_config

if not isinstance(notification_config, dict):
raise InvalidResourceException(bucket_id, "Invalid type for NotificationConfiguration. Must be a dict.")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is dict the right wording here? I only ask because dict is pretty Python specific. How does CloudFormation communicate things like this?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CloudFormation doesn't seem have a generic name for an object/dict (e.g. it's called NotificationConfiguration type for this case).

Instead of "dict", I think we can just say "Invalid type for NotificationConfiguration". I think it's informative enough for customer to find out how to fix it.

@codecov-commenter
Copy link

codecov-commenter commented Aug 22, 2022

Codecov Report

Merging #2473 (7a41cbf) into develop (e7a1496) will increase coverage by 0.90%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##           develop    #2473      +/-   ##
===========================================
+ Coverage    93.58%   94.49%   +0.90%     
===========================================
  Files           90       98       +8     
  Lines         6124     7299    +1175     
  Branches      1260     1523     +263     
===========================================
+ Hits          5731     6897    +1166     
- Misses         183      194      +11     
+ Partials       210      208       -2     
Impacted Files Coverage Δ
samtranslator/region_configuration.py 77.77% <0.00%> (-22.23%) ⬇️
samtranslator/model/codedeploy.py 90.90% <0.00%> (-9.10%) ⬇️
samtranslator/validator/validator.py 91.80% <0.00%> (-3.85%) ⬇️
samtranslator/model/exceptions.py 97.67% <0.00%> (-2.33%) ⬇️
samtranslator/open_api/open_api.py 90.16% <0.00%> (-1.81%) ⬇️
samtranslator/model/s3_utils/uri_parser.py 68.42% <0.00%> (-0.81%) ⬇️
samtranslator/yaml_helper.py 89.47% <0.00%> (-0.53%) ⬇️
samtranslator/translator/logical_id_generator.py 90.62% <0.00%> (-0.29%) ⬇️
samtranslator/model/apigateway.py 96.98% <0.00%> (-0.18%) ⬇️
samtranslator/intrinsics/resource_refs.py 95.83% <0.00%> (-0.17%) ⬇️
... and 46 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

@jfuss jfuss merged commit 5730edd into aws:develop Aug 23, 2022
@hawflau hawflau deleted the fix-s3-event-source-notification-injection branch August 23, 2022 19:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants