LazyStack

Building the PetStore Solution

In this lesson step we will build the initial PetStore solution using the LazyStack Visual Studio Extension.

This tutorial assumes you are using the Windows Visual Studio IDE.

1.1 Create PetStore solution

  1. Configure your developer workstation with Visual Studio IDE for Windows
  2. Create a LazyStackTutorial Folder. We will be creating the PetStore solution under this folder.
  3. Launch Visual Studio.
  4. Click on Create a new project. The "Create a new project" dialog appears.
  5. Type "LazyStackWebApi" into the search field. A list of project templates is presented.
  6. Double Click on the LazyStackWebApi project template. The "Configure your new project" dialog appears.
  7. Enter "PetStore" as the Project Name.
  8. Edit the Location to point to the LazyStackTutorial folder.
  9. Click on the Create button. A solution with your PetStore WebApi project is created.
  10. Select Visual Studio menu item "Build → Rebuild Solution." The solution compiles successfully.

1.2 Download PetStore.yaml and run LazyStack Generator

  1. Click to Download PetStore.yaml file
  2. Move PetStore.yaml from your Downloads folder to the PetStore Solution root folder.
  3. Select Visual Studio menu item "Tools/LazyStack - Generate Projects". Multiple projects and solution folders are created.
    • Controllers folder
      • OrderController project
      • OrderSecureController project
      • PetController project
      • PetSecureController project
    • Lambdas folder
      • Order project
      • OrderSecure project
      • Pet project
      • PetSecure project
    • "Solution Items" folder (files are in the solution's root folder)
      • LazyStack.yaml
      • LocalApis.json
      • PetStore.yaml
      • SAM_Review.yaml
    • Stacks folder
      • Dev folder
        • serverless.template
    • PetStoreClientSDK project
    • PetStoreSchema project

Note the PetStore.yaml file you dropped into the Solution's root folder is now visible in the "Solution Items" solution folder. LazyStack also created default LazyStack.yaml and default LocalApis.yaml files for you and these are also in the "Solution Items" solution folder.

1.3 Edit the LazyStack.yaml file

The Generate Projects command created a default LazyStack.yaml file in your solution's root folder. The file is now visible in the "Solution Items" folder in the solution explorer. We need to update it with your AWS profile and AWS region. Your initial LazyStack.yaml file should look like this:

# LazyStack Version 1.0.0
Stacks:
    Dev:
    ProfileName: default
    RegionName: us-east-1
    StackName: PetStoreDev 
    Stage: Dev
    UriCodeTarget: Debug/netcoreapp3.1
    ...
  1. Open the Solution Items\LazyStack.yaml file.
  2. Edit the ProfileName.

    You may modify the ProfileName if you are not using the profile "default" - Note: the profile "default" is created by the AWS CLI install unless you specify some other named profile.

  3. Edit the RegionName.
  4. Save the file.

1.4 Review the SAM_Review.yaml

The SAM_Review.yaml file was generated in the solution folder. This file contains the stack configuration without stack environment specific content inserted. Stack environments might include Dev, Test and Prod. Fully constituted templates are placed in the serverless.template files placed in the stack environment folder. For instance, the Stacks\Dev\serverless.template file is the template you will later use to publish the PetStoreDev stack to AWS.

You never edit the SAM_Review.yaml file directly.

  1. Open the Solution Items\SAM_Review.yaml file.
  2. Review contents. No need to understand all this content now.

The SAM_Review.yaml file will be updated with new content as we add and configure AWS stack resources during the tutorial. This file is regenerated each time you execute LazyStack -- Generate Projects.

1.5 Review serverless.template file

LazyStack Generate Projects process generates one serverless.template file for each environment. In this case, we have one Stacks Environment called "Dev" so a serverless.template file is generated in the Stacks\Dev folder.

You want to review the SAM template we will later publish to AWS. You never edit this file directly.

  1. Open the Stacks\Dev\serverless.template file.
  2. Review contents. No need to understand all this content now.

The serverless.template file will be updated with new content as we add and configure AWS stack resources during the tutorial. This file is regenerated each time you execute LazyStack -- Generate Projects.

Step Summary

In this lesson step we created a PetStore solution using the LazyStackWebApi project template, downloaded a OpenApi Specification called PetStore.yaml and then used the Tools → LazyStack - Generate Projects to generate projects and configuration files for our stack. We then updated the LazyStack.yaml file AWS ProfileName and RegionName.