Skip to main content

Sktan AWS CDK Base Stack - Single Page Application Base

This base stack is designed to provide the bare minimum requirements required to support a serverless single page application styled website on AWS.

Resources Created

  • Cloudfront Distribution
  • Website Assets S3 Bucket
  • Staging Deployment S3 Bucket
  • Lambda Function (to copy assets from the staging s3 bucket to the website assets bucket)

Prerequisites

  • Python 3.6+ and pip
  • sktan_cdk.single_page_app
pip install sktan-cdk.single-page-app

Deploying as is

If you want to use the stack as is, you will be able to use this like any other CDK stack and then run cdk synth to view your results:

Folder Structure

example-spa-website
|-- app.py
|-- cdk.json
|-- website_html
|   |-- index.html
|   |-- css
|   |   |-- example.css
|   |-- images
|   |   |-- logo.jpg

app.py

from aws_cdk import core
import sktan_cdk.single_page_app

app = core.App()

spa_app = single_page_app(app, "example-spa-website", website_identifier='www-example-com')
spa_app.create_website_bucket('website_html')
spa_app.create_cloudfront_distribution(cloudfront_alias={
  'acm_cert_ref': 'arn:aws:acm:us-east-1:123456789012:certificate/example-certificate-arn-format',
  'names': [
    'www.example.com'
  ]
})
app.synth()

Extending the stack

If you'd like to use this stack as a basis for your application, then you are free to extend it to implement additional functionality.

import sktan_cdk.single_page_app
from aws_cdk import (
  aws_s3 as s3
)

class existing_s3_bucket_website(single_page_app):
  def create_website_bucket(self, deployment_path: typing.Optional[str]):
    s3.fromBucketArn(self, self.__website_identifier, 'arn:aws:s3:::www-example-com')

Metadata

Release files for sktan-cdk.single-page-app 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sktan-cdk.single-page-app 0.1.0
File Size Uploaded
sktan_cdk.single_page_app-0.1.0.tar.gz 4.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sktan-cdk.single-page-app 0.1.0
File Interpreter ABI Platform
sktan_cdk.single_page_app-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 9.0 kB

Release files / sktan_cdk.single_page_app-0.1.0.tar.gz

Download URL sktan_cdk.single_page_app-0.1.0.tar.gz
Size 4.2 kB
Tags Source
SHA-256 checksum
How to use checksums
805497ee9b920e217c63854ddc3cebb61f3e12126b96a4fb712c87753b5e2ab1
BLAKE2b-256 checksum
How to use checksums
05d33b8164abf5bf349c244d137adcf70a566f7d1b59275fb389fc0d12346c24
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.42.0 CPython/3.7.4

Release files / sktan_cdk.single_page_app-0.1.0-py3-none-any.whl

Download URL sktan_cdk.single_page_app-0.1.0-py3-none-any.whl
Size 4.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0c6a6eaaf337d4249393e1c842dd916013988fad2a97ca4de0ffb4037608b27f
BLAKE2b-256 checksum
How to use checksums
8396c80765920e9e8b50bcc31f4312b37077394af9a99679e5fd0b796db3536c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.42.0 CPython/3.7.4

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page