Deploys @architect projects

Usage no npm install needed!

<script type="module">
  import architectDeploy from 'https://cdn.skypack.dev/@architect/deploy';



Architect serverless framework module for deploying applications to cloud infrastructure

GitHub CI status


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.


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.