Skip to content

Latest commit

 

History

History
55 lines (26 loc) · 3.03 KB

readme.md

File metadata and controls

55 lines (26 loc) · 3.03 KB

Architect serverless framework module for deploying applications to cloud infrastructure

GitHub CI status

Installation

npm i @architect/deploy
let deploy = require('@architect/deploy')

Requirements

You need to have the sam command-line utility available on your $PATH. Check out AWS' docs for instructions on how to install this.

API

deploy.direct({ isDryRun, srcDirs }, callback)

Deploys function code directly to one or more staging (or production) environment Lambdas by ommitting CloudFormation and directly updating code payloads. This is very useful for live debugging; changes made with direct deploys should be considered temporary.

deploy.sam({ verbose, production, stackname }, callback)

Deploys all infrastructure associated to your @architect app.

Set verbose to truthy to enable chatty mode. By default will only push to the staging environment unless production is truthy.

Set stackname to set the name of the CloudFormation stack. Optional, defaults to the ${projectName}${stage}.

deploy.static({ bucket, credentials, fingerprint, prefix, prune, region, verbose, production }, callback)

All parameters are optional.

Pushes static assets from the public/ folder of @architect apps to S3, as defined by your @architect app's .arc file. Respects fingerprint (true or external), prefix, prune, and ignore params or @static pragma directives (more information available on the @static arc guide).

By default will only publish to the staging environment unless production is truthy. Set verbose to truthy to enable chatty mode.

aws-sdk caveat

Deploy requires aws-sdk; earlier versions included aws-sdk in peerDependencies, which prior to npm 7 would not automatically install aws-sdk. This is because Architect assumes you already have aws-sdk installed via Architect, or that it's available at runtime if you're using Deploy in a Lambda.

However, npm 7 (once again) changed the behavior of peerDependencies, now automatically installing all peerDependencies (instead of merely printing a reminder). This means any Lambdas that use Deploy would get a >50MB dependency payload if deployed on a machine with npm 7.

As such, please ensure aws-sdk is installed to your project or globally to your machine. We are sorry to make this a userland issue, but we feel this is preferable to unnecessarily and invisibly causing aws-sdk to be double-installed in Lambdas, negatively impacting coldstart times and adding to bug vectors.