CDK Corner – March 2021
Social – Community Engagement
The CDK team has started live streaming on the AWS Twitch Channel! The CDK Construction Zone is a semi regular series with members of the CDK Team diving into, and demonstrating how to build a CDK Construct. The series is dedicated to building CDK Triggers, with the code from this series stored inside the awslabs/cdk-triggers repository. Want to know when the next time CDK Team is live? Check the AWS Twitch Broadcast calendar to see when the next episode of CDK Construction Zone will air.
Updates to the CDK
As always, the CDK Community and Team was diligently coding in the CDK Laboratory bringing new and interesting updates.
Level-ups to existing CDK Constructs:
Lambda Module adds support for Code.fromDockerBuild() When building with
aws-lambda, a common workflow can include transferring code in from an external asset, such as a Container. For example, you might have an AWS Lambda Function that has some code that creates an in-memory array of JSON objects generated from a database. But this array is built during the deploy step of a pipeline to be injected into the code base, with a container asset housing the array. Previously, this functionality wasn’t supported by CDK, but PR#12258 brings with it the ability the use a Container asset stored in /asset of the project, which is then zipped up and uploaded to an S3 Bucket, before deployment of the Stack.
CDK now supports scope-level permissions boundaries From the CDK Team in PR#12777. This perhaps understated feature is a win for CDK users who need to increase the security posture in their AWS account. Users can now explicitly set scope-level boundaries for their CDK Application. This helps issues such as a CDK Stack inheriting an IAM Role from another source with a larger permissions boundary than the CDK Stack expects to have for itself.
aws-stepfunctions-tasks now supports
eks:call, allowing customers who use Kubernetes the ability to interact with the k8s native API in
stepfunctions-tasks, with CDK Contributor NovakGu getting this functionality over the finish line started from previous work, finished in PR#12779
The CDK CLI received a Pull Request from CDK Contributor swar8080, extending
cdk deploy with new parameters while using
--no-execute. This allows you to set a unique
change-set-name on a deployment, a nice improvement if your environment requires or prefers to use non-random names.
CDK contributor christophgysin submitted PR#12829, a change that implements
aws-stepfunctions. This allows a StepFunctions object to be passed from the library, to another construct granting permission to it, rather than using the Role property. Subtle changes like this result in a tidier CDK code base for your projects.
Notable New Level 2 Construct:
It’s always great to see a new AWS L2 Construct make its way into the AWS Construct Library. It’s even more exciting to see a new L2 Construct come from the community. CDK Contributor mitchlloyd authored PR#12464, adding the
aws-kinesisanalytics-flink construct library. giving initial support for
Flink in Kinesis Projects. Read more about the new library in its API Docs.
New Level 1 Constructs from CloudFormation
Two updates of the
cfnspec were released in February: Versions 27, and 28. These updates bring in many numerous updates to L1 Constructs in AWS CDK, among other changes. The changelog contains a dive deep into the details.
Other Notable Fixes:
If you have ever split
Route across stacks, you may have found yourself caught in a circular dependency. Thanks to several community contributors in PR#13010, this bug is resolved. Thanks everyone!
The detailed submission in PR#12920 discusses removal policies for stateful L2 resources, rectifying violations from
cfn-lint. This is an insightful bugfix as it implements opinionated behavior, and showcases the CDK Team as they collaborate on thoughtful decisions when delivering a release to the community.
cfn-diff has been silently rounding all version strings down to zero, if the
version string is in a zero range. What started as an issue reported for
aws-imagebuilder, turned into an overall CDK fix in PR#13022, reported by CDK Contributor nigel-heaney
CloudFormation has supported region-agnostic EC2 Instance Deployment for some time, the common use case being the ability to map an Amazon Linux 2 AMI to multiple AWS Regions. PR#12546 from CDK Contributor wchaws gives
aws-ec2 access to region-agnostic AMIs via
Learning: Check out these Videos
AWS Community Builder Blake Green held a 3-part streaming series on the recently launched AWS CDK Primer on aws.training. Side note: If you’re interested in becoming an AWS Developer Community Builder like Blake, take a look at the Program Portal for more information.
AWS Amplify Senior Developer Advocate Nader Dabit has a great video on building an authenticated GraphQL API with AWS CDK
Are you a Developer who is looking to learn how to use CDK in the world of .NET Development? Check out this great video from AWS Solutions Architect Taz Hussein on setting up a CDK Project with .NET!
A couple of changes submitted by the community that I enjoyed come from two contributors:
Changes that make it easier for Developers to onboard in a new project are always appreciated. mmuller88 spent time putting PR#12404 together, fixing a code example in the CDK Documentation for
CDK Contributor robertd built their first L2 Construct in this PR#12743, adding useful L2 Constructs to
aws-cloudfront: The ability use
KeyGroups at the L2 Construct level. Thanks Robert!
First time Contributors
And finally, congratulations and rounds of applause for these folks who had their first Pull Request merged to the CDK Repository in the month of February!
Thanks for reading this update of the CDK Corner! See you next time!