6.7.96 • Published 1 month ago

aws-architect v6.7.96

Weekly downloads
224
License
Apache-2.0
Repository
github
Last release
1 month ago

AWS Architect

A hardened orchestrator for deploying Lambda microservices and S3 backed websites to AWS, using best practices, and an SDK that handles every possible edge case, with a focus on safety.

This is an open source project managed by the Authress Engineering team.

Features

  • Standardized CF template to deploy microservice to Lambda, API Gateway, Route 53, etc..
  • Standardized CF template for S3 bucket hosting for a website
  • Default configuration to automatically handle the creation of pull request deployments to test infrastructure before production
  • Working templated sample and make.js file to run locally and CI build.
  • Lambda/API Gateway setup for seamless integration.
  • Automatic creation of AWS resources when using including:
    • Lambda functions
    • API Gateway resources
    • Environments for managing resources in AWS
    • S3 Buckets and directories
    • S3 static website hosting
  • Developer testing platform, to run lambdas and static content as a local express Node.js service, to test locally. Integrates with OpenAPI-Factory

Usage

Library Functions

let packageMetadataFile = path.join(__dirname, 'package.json');
let packageMetadata = require(packageMetadataFile);

let apiOptions = {
  sourceDirectory: path.join(__dirname, 'src'),
  description: 'This is the description of the lambda function',
  regions: ['eu-west-1']
};
let contentOptions = {
  bucket: 'WEBSITE_BUCKET_NAME',
  contentDirectory: path.join(__dirname, 'content')
};
let awsArchitect = new AwsArchitect(packageMetadata, apiOptions, contentOptions);

// Package a directory in a zip archive and deploy to an S3 bucket, required for stage deployment and CF stack deployment
let options = {
  bucket: 'BUCKET_NAME'
};
publishLambdaArtifactPromise(options = {}) {...}

// Validate a cloud formation stack template using CloudFormation
validateTemplate(stackTemplate) {...}

// Deploy a Cloudformation template to AWS, should be used to create all the infrastructure required and run only on master branches
let stackConfiguration = {
  stackName: 'STACK_NAME'
  changeSetName: 'NAME_OF_CHANGE_SET'
};
let parameters = { /** PARAMETERS_FOR_YOUR_TEMPLATE, but also include these unless being overwritten in your template */
  serviceName: packageMetadata.name,
  serviceDescription: packageMetadata.description,
  dnsName: packageMetadata.name.toLowerCase()
};
deployTemplate(stackTemplate, stackConfiguration, parameters) {...}

// Deploy the stage of your microservice stack, to be called for each build in master or a pull-request.
publishAndDeployStagePromise(options) {
  // options.stage
  // options.functionName
  // options.deploymentBucketName
  // options.deploymentKeyName
}

// Deploy just a new version of a lambda function
deployLambdaFunctionVersion(options) {
  // options.stage
  // options.functionName
  // options.deploymentBucketName
  // options.deploymentKeyName
}

// Removes a deployed stage, to be used on pull-request created stages (API gateway has a limit fo 5 stages)
removeStagePromise(stage) {...}

// Creates a website, see below
publishWebsite(version, options) {...}

// Debug the running service on port at http://localhost:port/api
run(port, logger) {...}

Example: S3 Website Deployment

AWS Architect has the ability to set up and configure an S3 bucket for static website hosting. It provides a mechanism as well to deploy your content files directly to S3. Specify bucket in the configuration options for contentOptions, and configure the PublishWebsite function in the make.js file.

  awsArchitect.publishWebsite('deadc0de-1', options)
  .then((result) => console.log(`${JSON.stringify(result, null, 2)}`))
  .catch((failure) => console.log(`Failed to upload website ${failure} - ${JSON.stringify(failure, null, 2)}`));

  .promoteToStage('deadc0de-1', 'production')
  .then((result) => console.log(`${JSON.stringify(result, null, 2)}`))
  .catch((failure) => console.log(`Failed copying stage to production ${failure} - ${JSON.stringify(failure, null, 2)}`));

Configuration Options: Publishing the website has an options object which defaults to:

{
  // provide overrides for paths to change bucket cache control policy, default 600 seconds,
  cacheControlRegexMap: [
    { regex: '/index.html/', value: 'public, max-age=10' },
    { explicit: 'only.this.static.file', value: 'public, max-age=10' }
    { value: 'public, max-age=600' }
  ]
}

CLI: Creating a microservice: init

This will also configure your aws account to allow your build system to automatically deploy to AWS. Run locally

  • Create git repository and clone locally
  • npm install aws-architect -g
  • aws-architect init
  • npm install
  • Update:
    • package.json: package name, the package name is used to name your resources
    • make.js: Deployment bucket, Resource, and DNS name parameters which are used for CF deployment

Built-in SAM and CFN templates:

See template service documentation for how individual parts of the service are configured.

Also

AWS Documentation

6.7.96

1 month ago

6.7.94

1 month ago

6.7.93

2 months ago

6.7.91

2 months ago

6.7.89

2 months ago

6.7.86

3 months ago

6.7.87

3 months ago

6.7.85

4 months ago

6.7.82

5 months ago

6.7.83

5 months ago

6.7.78

7 months ago

6.7.79

7 months ago

6.7.70

9 months ago

6.7.71

9 months ago

6.7.72

9 months ago

6.7.77

7 months ago

6.7.67

9 months ago

6.7.69

9 months ago

6.7.64

10 months ago

6.7.66

10 months ago

6.7.80

7 months ago

6.7.62

1 year ago

6.7.59

1 year ago

6.7.61

1 year ago

6.6.48

1 year ago

6.6.49

1 year ago

6.7.57

1 year ago

6.7.58

1 year ago

6.7.51

1 year ago

6.7.52

1 year ago

6.7.53

1 year ago

6.7.55

1 year ago

6.6.44

2 years ago

6.6.45

1 year ago

6.6.46

1 year ago

6.6.47

1 year ago

6.6.40

2 years ago

6.6.41

2 years ago

6.6.42

2 years ago

6.6.43

2 years ago

6.6.38

2 years ago

6.6.33

2 years ago

6.6.34

2 years ago

6.6.35

2 years ago

6.6.36

2 years ago

6.6.37

2 years ago

6.6.31

2 years ago

6.6.32

2 years ago

6.6.24

2 years ago

6.6.26

2 years ago

6.6.28

2 years ago

0.0.25

2 years ago

6.6.30

2 years ago

6.6.23

2 years ago

6.6.21

2 years ago

6.6.19

2 years ago

6.6.16

2 years ago

6.6.17

2 years ago

6.6.18

2 years ago

6.6.12

2 years ago

6.6.13

2 years ago

6.6.15

2 years ago

6.6.11

3 years ago

6.6.9

3 years ago

6.6.10

3 years ago

6.6.7

3 years ago

6.6.8

3 years ago

6.6.4

3 years ago

6.5.3

3 years ago

6.5.714

3 years ago

6.5.711

3 years ago

6.5.709

3 years ago

6.5.707

3 years ago

6.5.705

3 years ago

6.5.703

3 years ago

6.5.701

3 years ago

6.5.699

3 years ago

6.5.697

3 years ago

6.5.695

3 years ago

6.5.693

3 years ago

6.5.691

3 years ago

6.5.689

3 years ago

6.5.687

3 years ago

6.5.685

3 years ago

6.5.683

3 years ago

6.5.679

3 years ago

6.5.677

3 years ago

6.5.675

3 years ago

6.5.673

3 years ago

6.5.681

3 years ago

6.5.671

3 years ago

6.5.667

3 years ago

6.5.665

3 years ago

6.5.663

3 years ago

6.5.661

3 years ago

6.5.659

3 years ago

6.5.657

3 years ago

6.5.655

3 years ago

6.5.653

3 years ago

6.5.651

3 years ago

6.5.649

3 years ago

6.5.647

3 years ago

6.5.645

3 years ago

6.5.643

3 years ago

6.5.641

3 years ago

6.5.639

3 years ago

6.5.637

3 years ago

6.5.635

3 years ago

6.4.633

4 years ago

6.4.631

4 years ago

6.4.629

4 years ago

6.4.627

4 years ago

6.4.625

4 years ago

6.4.622

4 years ago

6.4.621

4 years ago

6.4.618

4 years ago

6.4.616

4 years ago

6.4.614

4 years ago

6.4.612

4 years ago

6.4.609

4 years ago

6.4.607

4 years ago

6.4.605

4 years ago

6.4.603

4 years ago

6.4.601

4 years ago

6.4.599

4 years ago

6.3.597

4 years ago

6.3.587

4 years ago

6.3.589

4 years ago

6.3.593

4 years ago

6.3.595

4 years ago

6.3.591

4 years ago

6.3.585

4 years ago

6.2.582

4 years ago

6.3.583

4 years ago

6.3.580

4 years ago

6.3.578

4 years ago

6.2.576

4 years ago

6.2.574

4 years ago

6.2.572

4 years ago

6.2.569

4 years ago

6.2.567

5 years ago

6.2.564

5 years ago

6.2.562

5 years ago

6.2.560

5 years ago

6.2.557

5 years ago

6.2.554

5 years ago

6.2.552

5 years ago

6.2.549

5 years ago

6.2.548

5 years ago

6.2.544

5 years ago

6.2.542

5 years ago

6.2.540

5 years ago

6.2.538

5 years ago

6.2.534

5 years ago

6.2.532

5 years ago

6.2.529

5 years ago

6.2.526

5 years ago

6.2.522

5 years ago

6.2.518

5 years ago

6.2.515

5 years ago

6.2.512

5 years ago

6.1.511

5 years ago

6.0.510

5 years ago

6.2.508

5 years ago

6.2.506

5 years ago

6.2.504

5 years ago

6.2.502

5 years ago

6.1.500

5 years ago

6.1.498

5 years ago

6.1.495

5 years ago

6.1.492

5 years ago

6.1.489

5 years ago

6.1.486

5 years ago

6.1.484

5 years ago

6.1.482

5 years ago

6.1.479

6 years ago

6.1.477

6 years ago

6.1.475

6 years ago

6.1.473

6 years ago

6.1.471

6 years ago

6.0.469

6 years ago

6.0.466

6 years ago

6.0.464

6 years ago

6.0.460

6 years ago

6.0.457

6 years ago

6.0.454

6 years ago

6.0.450

6 years ago

6.0.440

6 years ago

6.0.438

6 years ago

6.0.436

6 years ago

6.0.432

6 years ago

6.0.430

6 years ago

6.0.427

6 years ago

6.0.425

6 years ago

6.0.423

6 years ago

6.0.421

6 years ago

6.0.419

6 years ago

6.0.417

6 years ago

6.0.415

6 years ago

6.0.413

6 years ago

6.0.411

6 years ago

6.0.409

6 years ago

6.0.407

6 years ago

6.0.405

6 years ago

6.0.403

6 years ago

6.0.401

6 years ago

6.0.399

6 years ago

6.0.397

6 years ago

6.0.395

6 years ago

6.0.393

6 years ago

6.0.391

6 years ago

6.0.389

6 years ago

6.0.387

6 years ago

6.0.385

6 years ago

6.0.383

6 years ago

6.0.381

6 years ago

6.0.379

6 years ago

6.0.377

6 years ago

6.0.375

6 years ago

6.0.371

6 years ago

6.0.369

6 years ago

6.0.367

6 years ago

5.1.365

6 years ago

5.1.363

6 years ago

5.1.361

6 years ago

5.1.359

6 years ago

5.1.357

6 years ago

5.1.355

6 years ago

5.1.353

6 years ago

5.1.351

6 years ago

5.1.349

6 years ago

5.1.347

6 years ago

5.1.345

6 years ago

5.1.343

6 years ago

5.1.339

6 years ago

5.1.336

6 years ago

5.1.334

6 years ago

5.1.332

6 years ago

5.0.330

6 years ago

5.0.328

6 years ago

5.0.326

6 years ago

5.0.324

6 years ago

5.0.322

6 years ago

5.0.320

6 years ago

5.0.318

6 years ago

5.0.316

6 years ago

5.0.314

6 years ago

4.2.313

6 years ago

5.0.311

6 years ago

4.2.310

6 years ago

5.0.308

6 years ago

5.0.306

6 years ago

5.0.304

6 years ago

5.0.302

6 years ago

5.0.300

6 years ago

5.0.297

6 years ago

5.0.295

6 years ago

5.0.293

6 years ago

4.2.292

6 years ago

5.0.290

6 years ago

4.2.289

6 years ago

5.0.287

6 years ago

4.2.286

6 years ago

5.0.284

6 years ago

4.2.283

6 years ago

5.0.281

6 years ago

4.2.280

6 years ago

5.0.278

6 years ago

4.2.277

6 years ago

4.2.275

6 years ago

5.0.274

6 years ago

5.0.271

6 years ago

5.0.269

6 years ago

5.0.267

6 years ago

4.2.266

6 years ago

5.0.264

6 years ago

5.0.262

6 years ago

4.2.260

6 years ago

4.2.258

6 years ago

4.2.256

6 years ago

4.2.254

6 years ago

4.2.251

6 years ago

4.2.249

6 years ago

4.2.247

6 years ago

4.2.245

6 years ago

4.2.243

6 years ago

4.2.241

6 years ago

4.2.239

6 years ago

4.2.237

6 years ago

4.2.235

6 years ago

4.2.233

6 years ago

4.2.231

6 years ago

4.1.229

6 years ago

4.1.227

6 years ago

4.1.225

6 years ago

4.1.223

6 years ago

4.1.221

6 years ago

4.0.215

7 years ago

3.7.213

7 years ago

3.6.211

7 years ago

3.5.207

7 years ago

3.4.205

7 years ago

3.3.203

7 years ago

3.3.201

7 years ago

3.3.199

7 years ago

3.2.197

7 years ago

3.2.195

7 years ago

3.2.193

7 years ago

3.2.191

7 years ago

3.2.189

7 years ago

3.2.187

7 years ago

3.2.185

8 years ago

3.2.183

8 years ago

3.2.181

8 years ago

3.2.179

8 years ago

3.1.177

8 years ago

3.0.176

8 years ago

3.1.174

8 years ago

3.0.173

8 years ago

3.1.171

8 years ago

3.1.169

8 years ago

3.0.167

8 years ago

3.0.165

8 years ago

3.0.163

8 years ago

3.0.161

8 years ago

3.0.159

8 years ago

3.0.157

8 years ago

3.0.155

8 years ago

3.0.153

8 years ago

3.0.151

8 years ago

3.0.149

8 years ago

3.0.147

8 years ago

3.0.145

8 years ago

3.0.143

8 years ago

3.0.141

8 years ago

3.0.139

8 years ago

3.0.136

8 years ago

3.0.134

8 years ago

3.0.132

8 years ago

2.1.130

8 years ago

2.1.128

8 years ago

2.1.126

8 years ago

2.1.124

8 years ago

2.1.122

8 years ago

2.1.120

8 years ago

2.1.118

8 years ago

2.1.116

8 years ago

2.1.114

8 years ago

2.1.112

8 years ago

2.1.110

8 years ago

2.1.108

8 years ago

2.1.106

8 years ago

2.1.103

8 years ago

2.1.102

8 years ago

2.1.100

8 years ago

2.0.98

8 years ago

2.0.96

8 years ago

2.0.94

8 years ago

2.0.92

8 years ago

2.0.90

8 years ago

2.0.88

8 years ago

2.0.86

8 years ago

2.0.84

8 years ago

2.0.82

8 years ago

1.1.80

8 years ago

1.0.79

8 years ago

1.1.72

8 years ago

1.1.71

8 years ago

1.0.67

8 years ago

1.0.60

8 years ago

1.0.58

8 years ago

1.0.51

8 years ago

1.0.29

9 years ago

1.0.28

9 years ago

1.0.22

9 years ago

1.0.20

9 years ago

1.0.18

9 years ago

1.0.16

9 years ago

1.0.14

9 years ago

0.0.0

9 years ago