Giter VIP home page Giter VIP logo

cloudmosaic-dotnet's Introduction

.NET on AWS: Building End-to-End Serverless .NET Applications

This guide presents the CloudMosaic serverless demo application first shown in the AWS re:Invent 2018 session Developing with .NET Core on AWS: What's New. The guide acts as a workshop with the modules and steps to follow to deploy the application in your own account.

Note: the CI/CD content from the original re:Invent session is not currently discussed in this sample but the necessary AWS CodeBuild files have been retained alongside the code assets for reference.

Application

CloudMosaic is an application that enables registered and signed-in users to create mosaicked images. A mosaicked image is one in which blocks of pixels in the original source image are replaced by smaller image tiles, selected from a user-specified tile gallery. Users can upload zip files containing images to be processed and used as tiles in galleries. When a user zooms into a mosaicked image they can see the individual tile images that make up the mosaic.

The sample illustrates modern, serverless, .NET Core applications on AWS. It uses the AWS SDK for .NET to work with AWS services from within application code, as well as tools from AWS to integrate with Visual Studio (on Windows) and the dotnet CLI (on Windows, macOS, and Linux) to make working with serverless application development on AWS easy and convenient.

Following the instructions in this sample you will gain experience in deploying to and using the following AWS services, with the tools you are already familiar with - namely Visual Studio and AWS extensions for the dotnet CLI:

The instructions in this sample can be used by those working on Windows, macOS, or Linux.

The overall architecture of the application is shown below. Individual modules will dive into the architecture of the three primary subsystems (tile gallery ingestion, mosaic rendering workflow, and web front-end).

Overall architecture

Prerequisite installations

To perform the steps in this workshop on Windows, macOS, or Linux you will first need to install some tools. Follow the instructions below for your chosen environment, and then proceed to configure those tools with an AWS credential profile], using module 1, enabling you to work with AWS services using the tools.

Windows Users

If you are using Windows as your platform of choice, we recommend you install the following toolchain to make the most of this workshop.

  • Visual Studio 2019 (the free community edition of Visual Studio is sufficient). You can also use Visual Studio 2017 if you wish.

    Note 1: The IDE must be installed with the .NET Core, ASP.NET Core and F# workloads.
    Note 2: If you are using Windows but do not want to use Visual Studio, you can install the .NET Core SDK (AWS Lambda supports .NET Core 2.1) and use the AWS extensions for the dotnet CLI (see below).

  • .NET Core SDK version 2.1

    Note: AWS Lambda supports .NET Core 2.1, so be sure to install the correct SDK version

  • AWS extensions for the dotnet CLI:

    • To install the tools needed for this guide, run the following commands from a command shell

      dotnet tool install -g Amazon.Lambda.Tools
      dotnet tool install -g Amazon.ECS.Tools
  • Docker for Windows

    Note 1: Linux-based containers will be used in this guide.
    Note 2: After installing, be sure to log out and log back in again so that your user account is correctly updated to work with Docker.
    Note 3: If you are using Windows 10 Home, please install Docker Toolbox instead as Docker for Windows is not supported on Windows 10 Home.

macOS or Linux Users

This Guide

The guide consists of a series of modules that you should work through in order to configure and deploy the sample application to AWS. Module 1 is used to set up the AWS tools and user credentials for the remaining modules. If you already have these configured you can skip straight to module 2 to begin the guide.

Important Note: This guide creates chargeable AWS resources. You may wish to remove these resources upon completion of the guide to avoid incurring future charges to your account. To do this, be sure to follow the instructions in Module 7: Resource cleanup.

Modules

Follow the modules in order to successfully configure and deploy the sample application to AWS.

cloudmosaic-dotnet's People

Contributors

normj avatar stevejroberts avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.