@untangler/deploy
v1.0.10
Published
Deploys @architect projects
Downloads
1
Readme
@architect/deploy
Architect serverless framework module for deploying applications to cloud infrastructure
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 }, 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.
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.