BundlingOptions

class aws_cdk.aws_lambda_go.BundlingOptions(*, asset_hash=None, asset_hash_type=None, build_args=None, cgo_enabled=None, command_hooks=None, docker_image=None, environment=None, forced_docker_bundling=None, go_build_flags=None)

Bases: object

(experimental) Bundling options.

Parameters
  • asset_hash (Optional[str]) – (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

  • asset_hash_type (Optional[AssetHashType]) – (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.

  • build_args (Optional[Mapping[str, str]]) – (experimental) Build arguments to pass when building the bundling image. Default: - no build arguments are passed

  • cgo_enabled (Optional[bool]) – (experimental) Whether or not to enable cgo during go build. This will set the CGO_ENABLED environment variable Default: - false

  • command_hooks (Optional[ICommandHooks]) – (experimental) Command hooks. Default: - do not run additional commands

  • docker_image (Optional[DockerImage]) – (experimental) A custom bundling Docker image. Default: - use the Docker image provided by

  • environment (Optional[Mapping[str, str]]) – (experimental) Environment variables defined when go runs. Default: - no environment variables are defined.

  • forced_docker_bundling (Optional[bool]) – (experimental) Force bundling in a Docker container even if local bundling is possible. Default: - false

  • go_build_flags (Optional[Sequence[str]]) – (experimental) List of additional flags to use while building. For example: [‘ldflags “-s -w”’] Default: - none

Stability

experimental

ExampleMetadata

infused

Example:

lambda_.GoFunction(self, "handler",
    entry="app/cmd/api",
    bundling=lambda.BundlingOptions(
        environment={
            "HELLO": "WORLD"
        }
    )
)

Attributes

asset_hash

(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

Stability

experimental

Return type

Optional[str]

asset_hash_type

(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.

Stability

experimental

Return type

Optional[AssetHashType]

build_args

(experimental) Build arguments to pass when building the bundling image.

Default
  • no build arguments are passed

Stability

experimental

Return type

Optional[Mapping[str, str]]

cgo_enabled

(experimental) Whether or not to enable cgo during go build.

This will set the CGO_ENABLED environment variable

Default
  • false

Stability

experimental

Return type

Optional[bool]

command_hooks

(experimental) Command hooks.

Default
  • do not run additional commands

Stability

experimental

Return type

Optional[ICommandHooks]

docker_image

(experimental) A custom bundling Docker image.

Default
  • use the Docker image provided by

Stability

experimental

Aws-cdk

/aws-lambda-go

Return type

Optional[DockerImage]

environment

(experimental) Environment variables defined when go runs.

Default
  • no environment variables are defined.

Stability

experimental

Return type

Optional[Mapping[str, str]]

forced_docker_bundling

(experimental) Force bundling in a Docker container even if local bundling is possible.

Default
  • false

Stability

experimental

Return type

Optional[bool]

go_build_flags

(experimental) List of additional flags to use while building.

For example: [‘ldflags “-s -w”’]

Default
  • none

Stability

experimental

Return type

Optional[List[str]]