Architect serverless framework module for deploying applications to cloud infrastructure
npm i @architect/deploy
let deploy = require('@architect/deploy')
You need to have the sam
command-line utility available on your $PATH
. Check out AWS' docs for instructions on how to install this.
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.
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.
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.