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

feat(lambda): provide support for AWS Parameters and Secrets Extension for Lambda #25725

Merged
merged 49 commits into from
Jun 8, 2023

Conversation

colifran
Copy link
Contributor

@colifran colifran commented May 24, 2023

This PR provides support for the AWS Parameters and Secrets Extension for Lambda functions. This extension will allow users to retrieve and cache AWS Secrets Manager secrets and AWS Parameter Store parameters in Lambda functions without using an SDK.

Note: Design was updated from previous PR which had a circular dependency causing go build to break.

Closes #23187


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

…s and added an enum for params and secrets logging level

Signed-off-by: Francis <colifran@amazon.com>
Signed-off-by: Francis <colifran@amazon.com>
…d environment variables based on config

Signed-off-by: Francis <colifran@amazon.com>
…irectory

Signed-off-by: Francis <colifran@amazon.com>
…ce and added permissions to attachParametersAndSecretsExtension method

Signed-off-by: Francis <colifran@amazon.com>
…on of concerns

Signed-off-by: Francis <colifran@amazon.com>
…ParamsAndSecretsExtension

Signed-off-by: Francis <colifran@amazon.com>
Signed-off-by: Francis <colifran@amazon.com>
…stering fact

Signed-off-by: Francis <colifran@amazon.com>
Signed-off-by: Francis <colifran@amazon.com>
Signed-off-by: Francis <colifran@amazon.com>
…able by architecture

Signed-off-by: Francis <colifran@amazon.com>
Signed-off-by: Francis <colifran@amazon.com>
Signed-off-by: Francis <colifran@amazon.com>
Signed-off-by: Francis <colifran@amazon.com>
Signed-off-by: Francis <colifran@amazon.com>
Signed-off-by: Francis <colifran@amazon.com>
Signed-off-by: Francis <colifran@amazon.com>
… message

Signed-off-by: Francis <colifran@amazon.com>
Signed-off-by: Francis <colifran@amazon.com>
…iables as part of the extension

Signed-off-by: Francis <colifran@amazon.com>
Signed-off-by: Francis <colifran@amazon.com>
Signed-off-by: Francis <colifran@amazon.com>
Signed-off-by: Francis <colifran@amazon.com>
… region-info to include version

Signed-off-by: Francis <colifran@amazon.com>
Signed-off-by: Francis <colifran@amazon.com>
Signed-off-by: Francis <colifran@amazon.com>
Signed-off-by: Francis <colifran@amazon.com>
Signed-off-by: Francis <colifran@amazon.com>
Signed-off-by: Francis <colifran@amazon.com>
…de getVersionArn a class method, unit tests

Signed-off-by: Francis <colifran@amazon.com>
Signed-off-by: Francis <colifran@amazon.com>
Signed-off-by: Francis <colifran@amazon.com>
Signed-off-by: Francis <colifran@amazon.com>
Signed-off-by: Francis <colifran@amazon.com>
Signed-off-by: Francis <colifran@amazon.com>
Signed-off-by: Francis <colifran@amazon.com>
Signed-off-by: Francis <colifran@amazon.com>
Signed-off-by: Francis <colifran@amazon.com>
@aws-cdk-automation aws-cdk-automation dismissed their stale review May 30, 2023 17:03

✅ Updated pull request passes all PRLinter validations. Dismissing previous PRLinter review.

@colifran
Copy link
Contributor Author

@rix0rrr I can't directly respond to your first comment for some reason. That said, I made the initial design choice for several reasons:

  1. We use a similar design pattern for lambda insights and ADOT lambda extensions. My thinking was that maintaining a consistent user experience when we're adding support for different lambda extensions would be important.
  2. To me, it makes sense to add a lambda extension to a lambda function and then use _bind internally to bind the extension to the lambda. That said, I wonder if passing a function to a lambda extension would convey that the function is part of the extension vs. the extension being part of the lambda function.

I think you bring up a very valid point in considering making this an external construct rather than a built-in option. Do the two points I made above change your mind at all?

@colifran colifran marked this pull request as ready for review June 1, 2023 12:07
@aws-cdk-automation aws-cdk-automation added the pr/needs-community-review This PR needs a review from a Trusted Community Member or Core Team Member. label Jun 1, 2023
Signed-off-by: Francis <colifran@amazon.com>
Signed-off-by: Francis <colifran@amazon.com>
@mergify
Copy link
Contributor

mergify bot commented Jun 8, 2023

Thank you for contributing! Your pull request will be updated from main and then merged automatically (do not update manually, and be sure to allow changes to be pushed to your fork).

@aws-cdk-automation
Copy link
Collaborator

AWS CodeBuild CI Report

  • CodeBuild project: AutoBuildv2Project1C6BFA3F-wQm2hXv2jqQv
  • Commit ID: 19f9cbb
  • Result: SUCCEEDED
  • Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

@mergify
Copy link
Contributor

mergify bot commented Jun 8, 2023

Thank you for contributing! Your pull request will be updated from main and then merged automatically (do not update manually, and be sure to allow changes to be pushed to your fork).

@mergify mergify bot merged commit 7a74513 into main Jun 8, 2023
@mergify mergify bot deleted the colifran/params-and-secrets-lambda-extension branch June 8, 2023 19:02
mrgrain added a commit that referenced this pull request Jun 9, 2023
mergify bot pushed a commit that referenced this pull request Jun 9, 2023
…ecrets Extension for Lambda" (#25919)

Reverts #25725

This breaks the go build

```


Error: Command (go build -modfile local.go.mod ./...) failed with status 1:
--
3592 | #STDERR> package github.com/aws/aws-cdk-go/awscdk/v2/awsapigateway
3593 | #STDERR>    imports github.com/aws/aws-cdk-go/awscdk/v2/awscognito
3594 | #STDERR>    imports github.com/aws/aws-cdk-go/awscdk/v2/awslambda
3595 | #STDERR>    imports github.com/aws/aws-cdk-go/awscdk/v2/awssecretsmanager
3596 | #STDERR>    imports github.com/aws/aws-cdk-go/awscdk/v2/awslambda: import cycle not allowed
3597 | #STDERR> package github.com/aws/aws-cdk-go/awscdk/v2/awsapigateway
3598 | #STDERR>    imports github.com/aws/aws-cdk-go/awscdk/v2/awscognito
3599 | #STDERR>    imports github.com/aws/aws-cdk-go/awscdk/v2/awslambda
3600 | #STDERR>    imports github.com/aws/aws-cdk-go/awscdk/v2/awssecretsmanager
3601 | #STDERR>    imports github.com/aws/aws-cdk-go/awscdk/v2/awslambda: import cycle not allowed
```


----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
@aws-cdk-automation aws-cdk-automation removed the pr/needs-community-review This PR needs a review from a Trusted Community Member or Core Team Member. label Jun 10, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
contribution/core This is a PR that came from AWS. effort/medium Medium work item – several days of effort feature-request A feature should be added or improved. p1
Projects
None yet
Development

Successfully merging this pull request may close these issues.

(lambda): Make it easy to use "AWS Parameters and Secrets Lambda Extension" with Lambda Functions
4 participants