Skip to content

Deployment module for shipping @architect projects to the cloud

License

Notifications You must be signed in to change notification settings

architect/deploy

Folders and files

NameName
Last commit message
Last commit date
Apr 11, 2025
Jan 23, 2025
Apr 29, 2024
Apr 23, 2021
Nov 19, 2019
Mar 20, 2020
Apr 18, 2020
Jan 23, 2025
Apr 29, 2024
Apr 29, 2024
Jan 23, 2025
Apr 11, 2025

Repository files navigation

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 }, 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.