-
Notifications
You must be signed in to change notification settings - Fork 3.9k
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(s3-deployment): switch CDKBucketDeployment Lambda architecture to ARM_64 #30042
feat(s3-deployment): switch CDKBucketDeployment Lambda architecture to ARM_64 #30042
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The pull request linter has failed. See the aws-cdk-automation comment below for failure reasons. If you believe this pull request should receive an exemption, please comment and provide a justification.
A comment requesting an exemption should contain the text Exemption Request
. Additionally, if clarification is needed add Clarification Request
to a comment.
66e748e
to
7c4eda2
Compare
7c4eda2
to
1cd8587
Compare
Exemption Request: This change does not need an entry in the README |
The integration test of the appconfig-alpha package was outdated and needed to be updated.
AWS CodeBuild CI Report
Powered by github-codebuild-logs, available on the AWS Serverless Application Repository |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How did we validate this works correctly? I have a couple concerns with this:
- The Lambda Function that is getting updated from x86 to arm is using a Lambda Layer that is not built for arm. Since
AwsCliLayer
is using https://github.com/cdklabs/awscdk-asset-awscli which looks to only be built on an non arm version: https://github.com/cdklabs/awscdk-asset-awscli/blob/awscli-v1/main/layer/Dockerfile#L1. - I also worry when ARM is added to Lambda for new regions and if they are in all the existing regions. I need to follow up on this internally but usually blanket things like this don't always work on. Which leads me to wanting to expose
architecture
as a property on the Construct and allowing customers to change this instead of us flipping under the hood. - It's possible someone is building on top of this construct and switching the arch without a way for these customers to keep the current arch is a breaking changing.
I think 1 is really important to get right. Which means we need to stage multiple changes here. We will need AwsCliLayer
to be able to support both archs of Lambda before we can even look at 2/3. I will follow up internally but I think we need to be exposing this as a property on the Construct not just updating the value.
There also looks to be other changes in this PR that are outside of the Lambda Arch update. Please remove them as it makes it harder as a reviewer to understand the side effects of changes you are making. I can't tell if the appconfig tests are changing because of the intent of the PR or because you made other changes.
The pull request linter fails with the following errors:
PRs must pass status checks before we can provide a meaningful review. If you would like to request an exemption from the status checks or clarification on feedback, please leave a comment on this PR containing ✅ A exemption request has been requested. Please wait for a maintainer's review. |
@jfuss Thank you for your review/reply! Actually I'm a bit confused with 1) because I deployed all the integration tests here so if the Layer does not support ARM, how is it then possible that the integration tests succeeded? And additonally I don't understand why the Dockerfile that you linked indicates that it is only built on an non arm version. I guess I lack some knowledge on containers here, but when I google that image I see that it is also available for ARM. Can you explain how I can see that this is only built for ARM? Regarding 2): I think opening up the lambdas and make the architecture configurable is a really good idea here. Regarding the additonal changes: No, I didn't made any additional changes. I adjusted the appconfig test because the integration test was not working like it was implemented there (to be specific: the used bucket could not be deleted because it contained files). |
This PR cannot be merged because it has conflicts. Please resolve them. The PR will be considered stale and closed if it remains in an unmergeable state. |
1 similar comment
This PR cannot be merged because it has conflicts. Please resolve them. The PR will be considered stale and closed if it remains in an unmergeable state. |
@daschaa Sorry for the delayed response, I had to take a couple unexpected days off last week.
It's possible, so it's not surprising but my worry is at some point a change breaks things. Let me try to articulate things better here. So the
What I would expect is, a change to
Can you submit them in a different diff. I usually don't care that much but it would really help me as I don't have deep familiarity with the codebase. So I heavily rely on the diff to help me understand possible impact. |
This PR cannot be merged because it has conflicts. Please resolve them. The PR will be considered stale and closed if it remains in an unmergeable state. |
1 similar comment
This PR cannot be merged because it has conflicts. Please resolve them. The PR will be considered stale and closed if it remains in an unmergeable state. |
@jfuss Thanks for the clarification and the detailed writeup, now I understand the issue! Opening up the underlying lambda functions would be a really good idea, because for our enterprise context we also have to ensure that all lambdas are running inside a VPC (compliance reasons). Right now we solve this by using an aspect, but it would be a lot easier if the CDK just allows to put additional properties to the (internal) lambda functions. |
This PR cannot be merged because it has conflicts. Please resolve them. The PR will be considered stale and closed if it remains in an unmergeable state. |
4 similar comments
This PR cannot be merged because it has conflicts. Please resolve them. The PR will be considered stale and closed if it remains in an unmergeable state. |
This PR cannot be merged because it has conflicts. Please resolve them. The PR will be considered stale and closed if it remains in an unmergeable state. |
This PR cannot be merged because it has conflicts. Please resolve them. The PR will be considered stale and closed if it remains in an unmergeable state. |
This PR cannot be merged because it has conflicts. Please resolve them. The PR will be considered stale and closed if it remains in an unmergeable state. |
This PR has been in the MERGE CONFLICTS state for 3 weeks, and looks abandoned. To keep this PR from being closed, please continue work on it. If not, it will automatically be closed in a week. |
Issue # (if applicable)
Closes #29996
Reason for this change
Reduce costs for s3 bucket deployments.
Description of changes
Change LambdaFunction architecture
Description of how you validated changes
Run tests
Checklist
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license