AWS Lambda serverless blogging platform
Switch branches/tags
Nothing to show
Clone or download
Pull request Compare This branch is 3 commits behind sirceljm:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
install
lambdas
public
tests
.gitignore
LICENSE
README.md
install.js
install_advanced.js
package-lock.json
package.json
run_tests.js
update_templates.js

README.md

Powered by Amazon Web Services

LambdaBlogPlatform

serverless blogging platform built with AWS

Table of Contents

About

alt tag AWS Lambda Blog Platform is a complete blogging solution that uses the following Amazon Web Services for operation:

  • API Gateway
  • Lambda
  • DynamoDB
  • S3
  • Cloudfront
  • SES

It runs completely serverless - free of any inflexible hardware infrastructure. The whole system running as a team of small microservices means that the running expenses are without any overhead even at the smallest scale.

Installation prerequisites

Installation

  • Download this repo, unzip and cd to project folder
  • Run npm install
  • Create a new user in IAM
  • [IAM -> Users -> Add User -> Access type -> check Programmatic access]
  • On the last step click on Download .csv file and save the file in project folder
  • Add permissions to the user
  • [IAM -> Users -> your_user -> Permissions -> Add inline policy -> Custom policy]
  • Copy the following JSON and give your inline policy a name
   {
       "Version": "2012-10-17",
       "Statement": [
           {
               "Sid": "Stmt1481118325000",
               "Effect": "Allow",
               "Action": [
                   "iam:CreatePolicy",
                   "iam:CreateRole",
                   "iam:GetPolicy",
                   "iam:GetRole",
                   "iam:AttachUserPolicy",
                   "iam:AttachRolePolicy",
                   "iam:PassRole",
                   "route53:ListHostedZones",
                   "acm:ListCertificates",
                   "iam:ListUserPolicies",
                   "iam:GetUserPolicy"
               ],
               "Resource": [
                   "*"
               ]
           }
       ]
   }
  • The install script will add other permissions that are necessary for installation
  • Run node install.js
  • The wizard will take you through the process of installation
  • If everything went smoothly you should see your page after CloudFront changes resolve. This usually takes around 15 minutes.

Advanced installation

  • Download this repo, unzip and cd to project folder
  • Run npm install
  • Create a new user in IAM (you will put this user name into install_config.js later)
  • [IAM -> Users -> Add User -> Access type -> check Programmatic access]
  • Copy account keys for the user and make a json file that looks like this: user_access_keys
{
   "accessKeyId": "AK************",
   "secretAccessKey": "BX**********************",
   "region": "eu-west-1"
}
  • Add a new inline policy to the user
  • [IAM -> Users -> your_user -> Permissions -> Add inline policy -> Custom policy -> Select -> Copy JSON below and enter a policy name
{
     "Version": "2012-10-17",
     "Statement": [
         {
             "Sid": "Stmt1481118325000",
             "Effect": "Allow",
             "Action": [
                 "iam:CreatePolicy",
                 "iam:CreateRole",
                 "iam:GetPolicy",
                 "iam:GetRole",
                 "iam:AttachUserPolicy",
                 "iam:AttachRolePolicy",
                 "iam:PassRole",
                 "route53:ListHostedZones",
                 "acm:ListCertificates",
                 "iam:ListUserPolicies",
                 "iam:GetUserPolicy"
             ],
             "Resource": [
                 "*"
             ]
         }
     ]
 }

-> Attach policy]

  • The install script will add other permissions that are necessary for installation
  • Copy and save the Hosted Zone ID for your domain alt tag
  • Copy this certificate ARN - and paste it into install_config.js alt tag
  • Get your recaptcha key (you can edit this later in API Gateway)
  • Copy install/install_config_template.js to install/install_config.js
  • Change values in install/install_config.js
  • Run node install_advanced.js
  • If everything went smoothly you should see your page after CloudFront changes resolve, which usually takes around 15 minutes