Amazon emitted the AWS toolkit for Microsoft's Visual Studio Code yesterday in an effort to nudge developers keen on the open-source editor toward its cloud.
VS Code has been a tremendous success for Microsoft as the company has attempted to soften its previously prickly image with developers. The editor often tops lists of preferred tools and, as well as its much-vaunted open-sourcery, also straddles platforms.
Microsoft's arch-rival in the cloud stakes, Amazon, has recognised that developers are keen on the thing and dropped an open-source toolkit aimed at developing serverless applications in AWS rather than, you know, Azure.
The spectre of Azure looms large as one installs the extension. It is very early days for AWS on VS Code, and the Azure lineup is considerably fuller-featured with add-ons for the likes of Cosmos DB, Azure Functions and the Azure App Service.
However, if AWS is your thing and VS Code your editor, then Amazon's emission – which supports Node.js, Python and .NET – is a handy thing to have. Developers can create, debug and deploy a project without leaving the warm embrace of VS Code.
Naturally, it's a bit more complicated than just installing the extension and hitting go. In order to get our setup running to the point where our application returned the inevitable "Hello World", we had to install the AWS Command Line Interface (CLI), AWS Server Application Model (SAM) CLI and Docker.
Amazon points out that SAM isn't strictly necessary, although we'd argue that the extension is a little pointless without it. Debugging, for example, would be a tad problematic.
Building a serverless function locally is a simple case of creating an AWS SAM application, picking a runtime and naming the project. Assuming everything works correctly (and that is a big 'if' – while the extension has lost the Preview status it's enjoyed since November 2018, caution should be exercised) code can be added and the thing run using Docker.
Running and debugging locally is the party trick of the extension. The ability to step through the code to debug the Lambda function is invaluable, saving developers from having to festoon source with logging to work out why a certain line never seems to be reached.
Once complete, the function can then be deployed to AWS and invoked remotely. It doesn't appear to be possible to debug a remote function at present using the extension.
Microsoft would be quick to point out that remote debugging can be a thing with Azure.
Still, this is very much Amazon's party and support for local debugging is a start. The ability to tinker with serverless applications in AWS and CloudFormation stacks is also appealing.
The company just has a bit of a way to go to match the breadth of Azure toys in Visual Studio Code. ®