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

fix(cli): cdk watch for Lambdas with Advanced Logging Controls do not stream logs to the terminal #29451

Merged
merged 33 commits into from Mar 27, 2024

Conversation

onhate
Copy link
Contributor

@onhate onhate commented Mar 11, 2024

Issue

Closes #29448

Reason for this change

After the release of Advanced Logging Controls for Lambda (see https://aws.amazon.com/blogs/compute/introducing-advanced-logging-controls-for-aws-lambda-functions/) I've decided to move all the logs of my multi-stack deployment to a single unified Log Group per deployed tenant.

It goes likes this:

The main stack creates the LogGroup like /aws/lambda/{tenant};
The secondary stacks refers to the LogGroup using LogGroup.fromLogGroupArn(...);
Then I discovered that running cdk watch on the main stack I can see the cloudwatch logs on my terminal while on the secondary stacks it does not;

I found at that the cloudwatch log group resolver for the logs basically just assumes the log group is /aws/lambda/{physicalId}

https://github.com/aws/aws-cdk/blob/main/packages/aws-cdk/lib/api/logs/find-cloudwatch-logs.ts#L114

Description of changes

Use the Template JSON to resolve the LoggingConfig.LogGroupName of the Lambda Function;

Description of how you validated changes

I've replace the node_modules/aws-cdk of my project with the one built from this PR and I was able to see the logs of my lambda that has custom LogConfig, as you can see it is grabbing the logs of /aws/lambda/dev cloudwatch logs

2024-03-13T10-46-48

Checklist

@github-actions github-actions bot added bug This issue is a bug. p2 labels Mar 11, 2024
@aws-cdk-automation aws-cdk-automation requested a review from a team March 11, 2024 20:41
@github-actions github-actions bot added the beginning-contributor [Pilot] contributed between 0-2 PRs to the CDK label Mar 11, 2024
Copy link
Collaborator

@aws-cdk-automation aws-cdk-automation left a 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.

@aws-cdk-automation aws-cdk-automation added the pr/needs-cli-test-run This PR needs CLI tests run against it. label Mar 11, 2024
@onhate
Copy link
Contributor Author

onhate commented Mar 11, 2024

Exemption Request

as this change is only on the cdk watch logic I could not find a way to write a integration test for it.

@aws-cdk-automation aws-cdk-automation added the pr-linter/exemption-requested The contributor has requested an exemption to the PR Linter feedback. label Mar 11, 2024
@onhate onhate marked this pull request as ready for review March 11, 2024 21:45
@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 Mar 11, 2024
@onhate onhate changed the title fix: use LoggingConfig.LogGroupName when lambda is configured with custom log groups fix(cli): use LoggingConfig.LogGroupName when lambda is configured with custom log groups Mar 12, 2024
@scanlonp
Copy link
Contributor

Hey @onhate, thanks for the quick update. I ran this through the pipeline, but it is failing due to another change we have made. Once I fix the pipeline, I'll throw this in there again, and if it passes, approve it!

@scanlonp
Copy link
Contributor

Also, can you tweak your PR title so that it describes the bug rather than the fix? Along the lines of "Referenced lambda streams not used for cdk watch", but more eloquent.

@onhate onhate changed the title fix(cli): use LoggingConfig.LogGroup for watch streams when lambda is configured with advanced logging controls fix(cli): cdk watch for Lambdas with Advanced Logging Controls do not stream logs to the terminal Mar 22, 2024
@onhate
Copy link
Contributor Author

onhate commented Mar 26, 2024

@scanlonp do you have an update on this matter? thanks.

@scanlonp
Copy link
Contributor

@onhate, I should be good to submit it later today. I will keep you updated on the status of the run.

@scanlonp
Copy link
Contributor

@Mergifyio update

Copy link
Contributor

mergify bot commented Mar 26, 2024

update

✅ Branch has been successfully updated

@aws-cdk-automation
Copy link
Collaborator

➡️ PR build request submitted to test-main-pipeline ⬅️

A maintainer must now check the pipeline and add the pr-linter/cli-integ-tested label once the pipeline succeeds.

@scanlonp scanlonp added pr-linter/cli-integ-tested Assert that any CLI changes have been integ tested and removed pr/needs-cli-test-run This PR needs CLI tests run against it. labels Mar 27, 2024
Copy link
Contributor

@scanlonp scanlonp left a comment

Choose a reason for hiding this comment

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

Passing the test pipeline. Thanks for your patience!

@aws-cdk-automation aws-cdk-automation dismissed their stale review March 27, 2024 06:44

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

@scanlonp scanlonp self-assigned this Mar 27, 2024
Copy link
Contributor

mergify bot commented Mar 27, 2024

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: f941cde
  • Result: SUCCEEDED
  • Build Logs (available for 30 days)

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

@mergify mergify bot merged commit 4dbf5c8 into aws:main Mar 27, 2024
8 of 9 checks passed
Copy link
Contributor

mergify bot commented Mar 27, 2024

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).

@onhate onhate deleted the fix-use-logconfig-for-cdk-watch branch March 27, 2024 13:32
@onhate
Copy link
Contributor Author

onhate commented Mar 27, 2024

Passing the test pipeline. Thanks for your patience!

thanks @scanlonp ! :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
beginning-contributor [Pilot] contributed between 0-2 PRs to the CDK bug This issue is a bug. p1 pr-linter/cli-integ-tested Assert that any CLI changes have been integ tested pr-linter/exempt-integ-test The PR linter will not require integ test changes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

(cdk cli): cdk watch with custom log groups do not stream logs to the terminal
4 participants