Class BundlingOptions.Jsii$Proxy

java.lang.Object
software.amazon.jsii.JsiiObject
software.amazon.awscdk.services.lambda.go.BundlingOptions.Jsii$Proxy
All Implemented Interfaces:
BundlingOptions, software.amazon.jsii.JsiiSerializable
Enclosing interface:
BundlingOptions

@Stability(Experimental) @Internal public static final class BundlingOptions.Jsii$Proxy extends software.amazon.jsii.JsiiObject implements BundlingOptions
An implementation for BundlingOptions
  • Constructor Details

    • Jsii$Proxy

      protected Jsii$Proxy(software.amazon.jsii.JsiiObjectRef objRef)
      Constructor that initializes the object based on values retrieved from the JsiiObject.
      Parameters:
      objRef - Reference to the JSII managed object.
    • Jsii$Proxy

      protected Jsii$Proxy(BundlingOptions.Builder builder)
      Constructor that initializes the object based on literal property values passed by the BundlingOptions.Builder.
  • Method Details

    • getAssetHash

      public final String getAssetHash()
      Description copied from interface: BundlingOptions
      (experimental) 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.

      Default: - based on `assetHashType`

      Specified by:
      getAssetHash in interface BundlingOptions
    • getAssetHashType

      public final AssetHashType getAssetHashType()
      Description copied from interface: BundlingOptions
      (experimental) 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.

      Default: - AssetHashType.OUTPUT. If `assetHash` is also specified, the default is `CUSTOM`.

      Specified by:
      getAssetHashType in interface BundlingOptions
    • getBuildArgs

      public final Map<String,String> getBuildArgs()
      Description copied from interface: BundlingOptions
      (experimental) Build arguments to pass when building the bundling image.

      Default: - no build arguments are passed

      Specified by:
      getBuildArgs in interface BundlingOptions
    • getCgoEnabled

      public final Boolean getCgoEnabled()
      Description copied from interface: BundlingOptions
      (experimental) Whether or not to enable cgo during go build.

      This will set the CGO_ENABLED environment variable

      Default: - false

      Specified by:
      getCgoEnabled in interface BundlingOptions
    • getCommandHooks

      public final ICommandHooks getCommandHooks()
      Description copied from interface: BundlingOptions
      (experimental) Command hooks.

      Default: - do not run additional commands

      Specified by:
      getCommandHooks in interface BundlingOptions
    • getDockerImage

      public final DockerImage getDockerImage()
      Description copied from interface: BundlingOptions
      (experimental) A custom bundling Docker image.

      Default: - use the Docker image provided by

      Specified by:
      getDockerImage in interface BundlingOptions
    • getEnvironment

      public final Map<String,String> getEnvironment()
      Description copied from interface: BundlingOptions
      (experimental) Environment variables defined when go runs.

      Default: - no environment variables are defined.

      Specified by:
      getEnvironment in interface BundlingOptions
    • getForcedDockerBundling

      public final Boolean getForcedDockerBundling()
      Description copied from interface: BundlingOptions
      (experimental) Force bundling in a Docker container even if local bundling is possible.

      Default: - false

      Specified by:
      getForcedDockerBundling in interface BundlingOptions
    • getGoBuildFlags

      public final List<String> getGoBuildFlags()
      Description copied from interface: BundlingOptions
      (experimental) List of additional flags to use while building.

      For example: ['ldflags "-s -w"']

      Default: - none

      Specified by:
      getGoBuildFlags in interface BundlingOptions
    • getGoProxies

      public final List<String> getGoProxies()
      Description copied from interface: BundlingOptions
      (experimental) 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();
       

      Default: - Direct access

      Specified by:
      getGoProxies in interface BundlingOptions
    • $jsii$toJson

      @Internal public com.fasterxml.jackson.databind.JsonNode $jsii$toJson()
      Specified by:
      $jsii$toJson in interface software.amazon.jsii.JsiiSerializable
    • equals

      public final boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public final int hashCode()
      Overrides:
      hashCode in class Object