@aws
Define AWS specific configuration for an entire project or per function.
Syntax
region
AWS region ID where the project will be deployed.
- Defaults to
us-west-2
profile
Local AWS profile name to use with this project, as defined in your local AWS configuration.
- Can also be specified in
AWS_PROFILE
environment variable - Required to deploy to AWS
runtime
Lambda runtime, as defined by the lambda-runtimes
library.
Note: please refer to the runtime support matrix for local Sandbox support
Runtime | Versions | Example | Alias1 |
---|---|---|---|
Node.js | 20.x (default), 18.x, 16.x | nodejs20.x |
node nodejs node.js |
Python | 3.12 (default), 3.11, 3.10, 3.9, 3.8 | python3.12 |
python py |
Ruby | 3.2 (default) | ruby3.2 |
ruby rb |
.NET | 6 (default), 7 | dotnet6 |
dotnet .net |
Java | 21 (default), 17, 11, 8.al2, 11 | java21 |
java |
- Runtime aliases always use Architect’s current default runtime version (e.g.
py
is effectivelypython3.12
).
bucket
Bucket name (in same region) for CloudFormation deployment artifacts.
If not specified, a secure deployment bucket will be automatically created.
policies
Configure custom Lambda function policies
, enabling granular and specific privileges and access controls.
The policies
setting takes one or more IAM policy ARNs or AWS-managed policy names (e.g. AmazonDynamoDBFullAccess
).
Configuring one or more policies will completely remove all of Architect’s default Lambda privileges. To restore Architect’s default privileges, include a policy named architect-default-policies
.
Note:
architect-default-policies
is an internal Architect framework setting based on the least-privilege permissions specific to your project. It is not a managed / public IAM policy, and will not be found in your AWS console.
layers
Configure Lambda function layers
with max 5 Lambda Layer ARNs. Lambda Layers must be in the same region as they are deployed.
architecture
Lambda CPU Architecture of your functions.
arm64
(default) - 64-bit ARM architecturex86_64
- 64-bit x86 architecture
storage
Lambda ephemeral storage (a “scratch” file system in /tmp
for each Lambda). A number between 512
(default) - 10240
in MB.
apigateway
API Gateway API type, can be one of:
http
(default) -HTTP
API + Lambda payload format version 2.0httpv2
– alias ofhttp
httpv1
-HTTP
API + Lambda payload format version 1.0 (akaREST
)rest
-REST
API + original API Gateway payload format (note: only supported when using theplugin-rest-api
plugin)
Note: if configuring
apigateway rest
mode, you must use the@architect/plugin-rest-api
in order to deploy yourREST
API to AWS
Environment Variables
Alternatively, if you want a less granular approach, you can declare your preferred region and profile in your shell config like .bashrc
(more information here).
If you have AWS exports in your shell config and @aws
specified in your app.arc
project, the @aws
section will win.
Examples
For example, to deploy Ruby to the northern California AWS AZ, with your AWS work
profile’s credentials, and specific policies use:
arc
@aws
runtime ruby
region us-west-1
profile work
storage 5000 # in MB
policies
S3CrudPolicy
architect-default-policies
json
{
"aws": {
"runtime": "ruby",
"region": "us-west-1",
"profile": "work",
"storage": 5000,
"policies": [
"S3CrudPolicy",
"architect-default-policies"
]
}
}
yaml
---
aws:
runtime: ruby
region: us-west-1
profile: work
storage: 5000
architecture: arm64
policies:
- S3CrudPolicy
- architect-default-policies
To deploy to Oregon AWS AZ with your AWS default
profile’s credential and a custom Lambda runtime (be sure to set runtime
to provided
), use:
@aws
region us-west-2
profile default
runtime provided
layers arn:aws:lambda:us-west-2:800406105498:layer:nsolid-node-10:6