Experimental
@aws-cdk/aws-lambda-go-alpha is an experimental (alpha) package: its API may change in any release, without a major version bump.
BundlingOptions Struct
Bundling options.
Example
new go.GoFunction(this, 'handler', {
entry: 'app/cmd/api',
bundling: {
environment: {
HELLO: 'WORLD',
},
},
});
Properties
assetHashoptionalstringasset_hashoptionalstrassetHashoptionalStringAssetHashoptionalstringAssetHashoptional*string#Default: based on assetHashType
notes
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.
assetHashTypeoptionalAssetHashTypeasset_hash_typeoptionalAssetHashTypeassetHashTypeoptionalAssetHashTypeAssetHashTypeoptionalAssetHashTypeAssetHashTypeoptionalAssetHashType#Default: AssetHashType.OUTPUT. If assetHash is also specified, the default is CUSTOM.
notes
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.
buildArgsoptional{ [key: string]: string }build_argsoptionaltyping.Mapping[str, str]buildArgsoptionalMap<String, String>BuildArgsoptionalIDictionary<string, string>BuildArgsoptional*map[string]*string#Default: no build arguments are passed
bundlingFileAccessoptionalBundlingFileAccessbundling_file_accessoptionalBundlingFileAccessbundlingFileAccessoptionalBundlingFileAccessBundlingFileAccessoptionalBundlingFileAccessBundlingFileAccessoptionalBundlingFileAccess= BundlingFileAccess.BIND_MOUNT#cgoEnabledoptionalbooleancgo_enabledoptionalboolcgoEnabledoptionalBooleanCgoEnabledoptionalboolCgoEnabledoptional*bool= false#This will set the CGO_ENABLED environment variable
commandoptionalstring[]commandoptionaltyping.List[str]commandoptionalList<String>Commandoptionalstring[]Commandoptional*[]*string#Default: run the command defined in the image
commandHooksoptionalICommandHookscommand_hooksoptionalICommandHookscommandHooksoptionalICommandHooksCommandHooksoptionalICommandHooksCommandHooksoptionalICommandHooks#Default: do not run additional commands
⚠️ Security Warning: Commands are executed directly in the shell environment. Only use trusted commands from verified sources. Avoid shell metacharacters that could enable command injection attacks.
dockerImageoptionalDockerImagedocker_imageoptionalDockerImagedockerImageoptionalDockerImageDockerImageoptionalDockerImageDockerImageoptionalDockerImage#Default: use the Docker image provided by
entrypointoptionalstring[]entrypointoptionaltyping.List[str]entrypointoptionalList<String>Entrypointoptionalstring[]Entrypointoptional*[]*string#Default: run the entrypoint defined in the image
environmentoptional{ [key: string]: string }environmentoptionaltyping.Mapping[str, str]environmentoptionalMap<String, String>EnvironmentoptionalIDictionary<string, string>Environmentoptional*map[string]*string#Default: no environment variables.
forcedDockerBundlingoptionalbooleanforced_docker_bundlingoptionalboolforcedDockerBundlingoptionalBooleanForcedDockerBundlingoptionalboolForcedDockerBundlingoptional*bool= false#goBuildFlagsoptionalstring[]go_build_flagsoptionaltyping.List[str]goBuildFlagsoptionalList<String>GoBuildFlagsoptionalstring[]GoBuildFlagsoptional*[]*string= none#notes
For example: ['ldflags "-s -w"']
⚠️ Security Warning: These flags are passed directly to the Go build command. Only use trusted values as they can execute arbitrary commands during bundling. Avoid flags like -toolexec with untrusted arguments, and be cautious with third-party CDK constructs that may contain malicious build flags.
goProxiesoptionalstring[]go_proxiesoptionaltyping.List[str]goProxiesoptionalList<String>GoProxiesoptionalstring[]GoProxiesoptional*[]*string#Default: Direct access
notes
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'],
},
});
networkoptionalstringnetworkoptionalstrnetworkoptionalStringNetworkoptionalstringNetworkoptional*string#Default: no networking options
platformoptionalstringplatformoptionalstrplatformoptionalStringPlatformoptionalstringPlatformoptional*string#Default: no platform specified
Example value: linux/amd64
securityOptoptionalstringsecurity_optoptionalstrsecurityOptoptionalStringSecurityOptoptionalstringSecurityOptoptional*string#Default: no security options
Default: root or image default
volumesoptionalDockerVolume[]volumesoptionaltyping.List[DockerVolume]volumesoptionalList<DockerVolume>VolumesoptionalDockerVolume[]Volumesoptional*[]DockerVolume#Default: no volumes are mounted
volumesFromoptionalstring[]volumes_fromoptionaltyping.List[str]volumesFromoptionalList<String>VolumesFromoptionalstring[]VolumesFromoptional*[]*string#Default: no containers are specified to mount volumes from
workingDirectoryoptionalstringworking_directoryoptionalstrworkingDirectoryoptionalStringWorkingDirectoryoptionalstringWorkingDirectoryoptional*string#Default: image default