interface BundlingOptions
Language | Type name |
---|---|
.NET | Amazon.CDK.AWS.Lambda.Go.Alpha.BundlingOptions |
Go | github.com/aws/aws-cdk-go/awscdklambdagoalpha/v2#BundlingOptions |
Java | software.amazon.awscdk.services.lambda.go.alpha.BundlingOptions |
Python | aws_cdk.aws_lambda_go_alpha.BundlingOptions |
TypeScript (source) | @aws-cdk/aws-lambda-go-alpha ยป BundlingOptions |
Bundling options.
Example
new go.GoFunction(this, 'handler', {
entry: 'app/cmd/api',
bundling: {
environment: {
HELLO: 'WORLD',
},
},
});
Properties
Name | Type | Description |
---|---|---|
asset | string | Specify a custom hash for this asset. |
asset | Asset | Determines how the asset hash is calculated. Assets will get rebuilt and uploaded only if their hash has changed. |
build | { [string]: string } | Build arguments to pass when building the bundling image. |
bundling | Bundling | Which option to use to copy the source files to the docker container and output files back. |
cgo | boolean | Whether or not to enable cgo during go build. |
command? | string[] | The command to run in the container. |
command | ICommand | Command hooks. |
docker | Docker | A custom bundling Docker image. |
entrypoint? | string[] | The entrypoint to run in the container. |
environment? | { [string]: string } | The environment variables to pass to the container. |
forced | boolean | Force bundling in a Docker container even if local bundling is possible. |
go | string[] | List of additional flags to use while building. |
go | string[] | What Go proxies to use to fetch the packages involved in the build. |
network? | string | Docker Networking options. |
platform? | string | Set platform if server is multi-platform capable. Requires Docker Engine API v1.38+. |
security | string | Security configuration when running the docker container. |
user? | string | The user to use when running the container. |
volumes? | Docker [] | Docker volumes to mount. |
volumes | string[] | Where to mount the specified volumes from. |
working | string | Working directory inside the container. |
assetHash?
Type:
string
(optional, default: based on assetHashType
)
Specify a custom hash for this asset.
If assetHashType
is set it must
be set to AssetHashType.CUSTOM
. For consistency, this custom hash will
be SHA256 hashed and encoded as hex. The resulting hash will be the asset
hash.
NOTE: the hash is used in order to identify a specific revision of the asset, and used for optimizing and caching deployment activities related to this asset such as packaging, uploading to Amazon S3, etc. If you chose to customize the hash, you will need to make sure it is updated every time the asset changes, or otherwise it is possible that some deployments will not be invalidated.
assetHashType?
Type:
Asset
(optional, default: AssetHashType.OUTPUT. If assetHash
is also specified,
the default is CUSTOM
.)
Determines how the asset hash is calculated. Assets will get rebuilt and uploaded only if their hash has changed.
If the asset hash is set to OUTPUT
(default), the hash is calculated
after bundling. This means that any change in the output will cause
the asset to be invalidated and uploaded. Bear in mind that the
go binary that is output can be different depending on the environment
that it was compiled in. If you want to control when the output is changed
it is recommended that you use immutable build images such as
public.ecr.aws/bitnami/golang:1.16.3-debian-10-r16
.
If the asset hash is set to SOURCE
, then only changes to the source
directory will cause the asset to rebuild. If your go project has multiple
Lambda functions this means that an update to any one function could cause
all the functions to be rebuilt and uploaded.
buildArgs?
Type:
{ [string]: string }
(optional, default: no build arguments are passed)
Build arguments to pass when building the bundling image.
bundlingFileAccess?
Type:
Bundling
(optional, default: BundlingFileAccess.BIND_MOUNT)
Which option to use to copy the source files to the docker container and output files back.
cgoEnabled?
Type:
boolean
(optional, default: false)
Whether or not to enable cgo during go build.
This will set the CGO_ENABLED environment variable
command?
Type:
string[]
(optional, default: run the command defined in the image)
The command to run in the container.
commandHooks?
Type:
ICommand
(optional, default: do not run additional commands)
Command hooks.
dockerImage?
Type:
Docker
(optional, default: use the Docker image provided by)
A custom bundling Docker image.
entrypoint?
Type:
string[]
(optional, default: run the entrypoint defined in the image)
The entrypoint to run in the container.
environment?
Type:
{ [string]: string }
(optional, default: no environment variables.)
The environment variables to pass to the container.
forcedDockerBundling?
Type:
boolean
(optional, default: false)
Force bundling in a Docker container even if local bundling is possible.
goBuildFlags?
Type:
string[]
(optional, default: none)
List of additional flags to use while building.
For example: ['ldflags "-s -w"']
goProxies?
Type:
string[]
(optional, default: Direct access)
What Go proxies to use to fetch the packages involved in the build.
Pass a list of proxy addresses in order, and/or the string 'direct'
to
attempt direct access.
By default this construct uses no proxies, but a standard Go install would use the Google proxy by default. To recreate that behavior, do the following:
new go.GoFunction(this, 'GoFunction', {
entry: 'app/cmd/api',
bundling: {
goProxies: [go.GoFunction.GOOGLE_GOPROXY, 'direct'],
},
});
network?
Type:
string
(optional, default: no networking options)
Docker Networking options.
platform?
Type:
string
(optional, default: no platform specified)
Set platform if server is multi-platform capable. Requires Docker Engine API v1.38+.
Example value: linux/amd64
securityOpt?
Type:
string
(optional, default: no security options)
Security configuration when running the docker container.
user?
Type:
string
(optional, default: root or image default)
The user to use when running the container.
volumes?
Type:
Docker
[]
(optional, default: no volumes are mounted)
Docker volumes to mount.
volumesFrom?
Type:
string[]
(optional, default: no containers are specified to mount volumes from)
Where to mount the specified volumes from.
workingDirectory?
Type:
string
(optional, default: image default)
Working directory inside the container.