Class BundlingOptions.Builder

java.lang.Object
software.amazon.awscdk.services.lambda.go.alpha.BundlingOptions.Builder
All Implemented Interfaces:
software.amazon.jsii.Builder<BundlingOptions>
Enclosing interface:
BundlingOptions

@Stability(Experimental) public static final class BundlingOptions.Builder extends Object implements software.amazon.jsii.Builder<BundlingOptions>
A builder for BundlingOptions
  • Constructor Details

    • Builder

      public Builder()
  • Method Details

    • assetHash

      @Stability(Experimental) public BundlingOptions.Builder assetHash(String assetHash)
      Parameters:
      assetHash - 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.

      Returns:
      this
    • assetHashType

      @Stability(Experimental) public BundlingOptions.Builder assetHashType(AssetHashType assetHashType)
      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 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.

      Returns:
      this
    • buildArgs

      @Stability(Experimental) public BundlingOptions.Builder buildArgs(Map<String,String> buildArgs)
      Parameters:
      buildArgs - Build arguments to pass when building the bundling image.
      Returns:
      this
    • bundlingFileAccess

      @Stability(Experimental) public BundlingOptions.Builder bundlingFileAccess(BundlingFileAccess bundlingFileAccess)
      Parameters:
      bundlingFileAccess - Which option to use to copy the source files to the docker container and output files back.
      Returns:
      this
    • cgoEnabled

      @Stability(Experimental) public BundlingOptions.Builder cgoEnabled(Boolean cgoEnabled)
      Parameters:
      cgoEnabled - Whether or not to enable cgo during go build. This will set the CGO_ENABLED environment variable
      Returns:
      this
    • commandHooks

      @Stability(Experimental) public BundlingOptions.Builder commandHooks(ICommandHooks commandHooks)
      Parameters:
      commandHooks - Command hooks.
      Returns:
      this
    • dockerImage

      @Stability(Experimental) public BundlingOptions.Builder dockerImage(DockerImage dockerImage)
      Parameters:
      dockerImage - A custom bundling Docker image.
      Returns:
      this
    • forcedDockerBundling

      @Stability(Experimental) public BundlingOptions.Builder forcedDockerBundling(Boolean forcedDockerBundling)
      Parameters:
      forcedDockerBundling - Force bundling in a Docker container even if local bundling is possible.
      Returns:
      this
    • goBuildFlags

      @Stability(Experimental) public BundlingOptions.Builder goBuildFlags(List<String> goBuildFlags)
      Parameters:
      goBuildFlags - List of additional flags to use while building. For example: ['ldflags "-s -w"']
      Returns:
      this
    • goProxies

      @Stability(Experimental) public BundlingOptions.Builder goProxies(List<String> goProxies)
      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

      @Stability(Stable) public BundlingOptions.Builder command(List<String> command)
      Parameters:
      command - The command to run in the container.
      Returns:
      this
    • entrypoint

      @Stability(Stable) public BundlingOptions.Builder entrypoint(List<String> entrypoint)
      Parameters:
      entrypoint - The entrypoint to run in the container.
      Returns:
      this
    • environment

      @Stability(Stable) public BundlingOptions.Builder environment(Map<String,String> environment)
      Parameters:
      environment - The environment variables to pass to the container.
      Returns:
      this
    • network

      @Stability(Stable) public BundlingOptions.Builder network(String network)
      Parameters:
      network - Docker Networking options.
      Returns:
      this
    • platform

      @Stability(Stable) public BundlingOptions.Builder platform(String platform)
      Parameters:
      platform - Set platform if server is multi-platform capable. Requires Docker Engine API v1.38+. Example value: linux/amd64
      Returns:
      this
    • securityOpt

      @Stability(Stable) public BundlingOptions.Builder securityOpt(String securityOpt)
      Parameters:
      securityOpt - Security configuration when running the docker container.
      Returns:
      this
    • user

      @Stability(Stable) public BundlingOptions.Builder user(String user)
      Sets the value of DockerRunOptions.getUser()
      Parameters:
      user - The user to use when running the container.
      Returns:
      this
    • volumes

      @Stability(Stable) public BundlingOptions.Builder volumes(List<? extends DockerVolume> volumes)
      Parameters:
      volumes - Docker volumes to mount.
      Returns:
      this
    • volumesFrom

      @Stability(Stable) public BundlingOptions.Builder volumesFrom(List<String> volumesFrom)
      Parameters:
      volumesFrom - Where to mount the specified volumes from.
      Returns:
      this
    • workingDirectory

      @Stability(Stable) public BundlingOptions.Builder workingDirectory(String workingDirectory)
      Parameters:
      workingDirectory - Working directory inside the container.
      Returns:
      this
    • build

      @Stability(Experimental) public BundlingOptions build()
      Builds the configured instance.
      Specified by:
      build in interface software.amazon.jsii.Builder<BundlingOptions>
      Returns:
      a new instance of BundlingOptions
      Throws:
      NullPointerException - if any required attribute was not provided