Class BundlingOptions.Builder
- All Implemented Interfaces:
software.amazon.jsii.Builder<BundlingOptions>
- Enclosing interface:
BundlingOptions
BundlingOptions
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionSets the value ofBundlingOptions.getAssetHash()
assetHashType
(AssetHashType assetHashType) Sets the value ofBundlingOptions.getAssetHashType()
build()
Builds the configured instance.Sets the value ofBundlingOptions.getBuildArgs()
bundlingFileAccess
(BundlingFileAccess bundlingFileAccess) Sets the value ofBundlingOptions.getBundlingFileAccess()
cgoEnabled
(Boolean cgoEnabled) Sets the value ofBundlingOptions.getCgoEnabled()
Sets the value ofDockerRunOptions.getCommand()
commandHooks
(ICommandHooks commandHooks) Sets the value ofBundlingOptions.getCommandHooks()
dockerImage
(DockerImage dockerImage) Sets the value ofBundlingOptions.getDockerImage()
entrypoint
(List<String> entrypoint) Sets the value ofDockerRunOptions.getEntrypoint()
environment
(Map<String, String> environment) Sets the value ofDockerRunOptions.getEnvironment()
forcedDockerBundling
(Boolean forcedDockerBundling) Sets the value ofBundlingOptions.getForcedDockerBundling()
goBuildFlags
(List<String> goBuildFlags) Sets the value ofBundlingOptions.getGoBuildFlags()
Sets the value ofBundlingOptions.getGoProxies()
Sets the value ofDockerRunOptions.getNetwork()
Sets the value ofDockerRunOptions.getPlatform()
securityOpt
(String securityOpt) Sets the value ofDockerRunOptions.getSecurityOpt()
Sets the value ofDockerRunOptions.getUser()
volumes
(List<? extends DockerVolume> volumes) Sets the value ofDockerRunOptions.getVolumes()
volumesFrom
(List<String> volumesFrom) Sets the value ofDockerRunOptions.getVolumesFrom()
workingDirectory
(String workingDirectory) Sets the value ofDockerRunOptions.getWorkingDirectory()
-
Constructor Details
-
Builder
public Builder()
-
-
Method Details
-
assetHash
Sets the value ofBundlingOptions.getAssetHash()
- Parameters:
assetHash
- Specify a custom hash for this asset. IfassetHashType
is set it must be set toAssetHashType.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.
- Returns:
this
-
assetHashType
Sets the value ofBundlingOptions.getAssetHashType()
- Parameters:
assetHashType
- 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 toOUTPUT
(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 aspublic.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.- Returns:
this
-
buildArgs
Sets the value ofBundlingOptions.getBuildArgs()
- Parameters:
buildArgs
- Build arguments to pass when building the bundling image.- Returns:
this
-
bundlingFileAccess
@Stability(Experimental) public BundlingOptions.Builder bundlingFileAccess(BundlingFileAccess bundlingFileAccess) Sets the value ofBundlingOptions.getBundlingFileAccess()
- Parameters:
bundlingFileAccess
- Which option to use to copy the source files to the docker container and output files back.- Returns:
this
-
cgoEnabled
Sets the value ofBundlingOptions.getCgoEnabled()
- Parameters:
cgoEnabled
- Whether or not to enable cgo during go build. This will set the CGO_ENABLED environment variable- Returns:
this
-
commandHooks
Sets the value ofBundlingOptions.getCommandHooks()
- Parameters:
commandHooks
- Command hooks.- Returns:
this
-
dockerImage
Sets the value ofBundlingOptions.getDockerImage()
- Parameters:
dockerImage
- A custom bundling Docker image.- Returns:
this
-
forcedDockerBundling
@Stability(Experimental) public BundlingOptions.Builder forcedDockerBundling(Boolean forcedDockerBundling) Sets the value ofBundlingOptions.getForcedDockerBundling()
- Parameters:
forcedDockerBundling
- Force bundling in a Docker container even if local bundling is possible.- Returns:
this
-
goBuildFlags
Sets the value ofBundlingOptions.getGoBuildFlags()
- Parameters:
goBuildFlags
- List of additional flags to use while building. For example: ['ldflags "-s -w"']- Returns:
this
-
goProxies
Sets the value ofBundlingOptions.getGoProxies()
- Parameters:
goProxies
- 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:
GoFunction.Builder.create(this, "GoFunction") .entry("app/cmd/api") .bundling(BundlingOptions.builder() .goProxies(List.of(GoFunction.GOOGLE_GOPROXY, "direct")) .build()) .build();
- Returns:
this
-
command
Sets the value ofDockerRunOptions.getCommand()
- Parameters:
command
- The command to run in the container.- Returns:
this
-
entrypoint
Sets the value ofDockerRunOptions.getEntrypoint()
- Parameters:
entrypoint
- The entrypoint to run in the container.- Returns:
this
-
environment
Sets the value ofDockerRunOptions.getEnvironment()
- Parameters:
environment
- The environment variables to pass to the container.- Returns:
this
-
network
Sets the value ofDockerRunOptions.getNetwork()
- Parameters:
network
- Docker Networking options.- Returns:
this
-
platform
Sets the value ofDockerRunOptions.getPlatform()
- Parameters:
platform
- Set platform if server is multi-platform capable. Requires Docker Engine API v1.38+. Example value:linux/amd64
- Returns:
this
-
securityOpt
Sets the value ofDockerRunOptions.getSecurityOpt()
- Parameters:
securityOpt
- Security configuration when running the docker container.- Returns:
this
-
user
Sets the value ofDockerRunOptions.getUser()
- Parameters:
user
- The user to use when running the container.- Returns:
this
-
volumes
Sets the value ofDockerRunOptions.getVolumes()
- Parameters:
volumes
- Docker volumes to mount.- Returns:
this
-
volumesFrom
Sets the value ofDockerRunOptions.getVolumesFrom()
- Parameters:
volumesFrom
- Where to mount the specified volumes from.- Returns:
this
-
workingDirectory
Sets the value ofDockerRunOptions.getWorkingDirectory()
- Parameters:
workingDirectory
- Working directory inside the container.- Returns:
this
-
build
Builds the configured instance.- Specified by:
build
in interfacesoftware.amazon.jsii.Builder<BundlingOptions>
- Returns:
- a new instance of
BundlingOptions
- Throws:
NullPointerException
- if any required attribute was not provided
-