Documentation
¶
Overview ¶
Creates an EC2 AMI using an Image Builder Pipeline and returns the AMI ID.
Index ¶
- func CheckStateMachineStatusFunction_ClassifyVersionProperty(propertyName *string, locked *bool)
- func CheckStateMachineStatusFunction_FromFunctionArn(scope constructs.Construct, id *string, functionArn *string) awslambda.IFunction
- func CheckStateMachineStatusFunction_FromFunctionAttributes(scope constructs.Construct, id *string, attrs *awslambda.FunctionAttributes) awslambda.IFunction
- func CheckStateMachineStatusFunction_FromFunctionName(scope constructs.Construct, id *string, functionName *string) awslambda.IFunction
- func CheckStateMachineStatusFunction_IsConstruct(x interface{}) *bool
- func CheckStateMachineStatusFunction_IsOwnedResource(construct constructs.IConstruct) *bool
- func CheckStateMachineStatusFunction_IsResource(construct constructs.IConstruct) *bool
- func CheckStateMachineStatusFunction_MetricAll(metricName *string, props *awscloudwatch.MetricOptions) awscloudwatch.Metric
- func CheckStateMachineStatusFunction_MetricAllConcurrentExecutions(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
- func CheckStateMachineStatusFunction_MetricAllDuration(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
- func CheckStateMachineStatusFunction_MetricAllErrors(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
- func CheckStateMachineStatusFunction_MetricAllInvocations(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
- func CheckStateMachineStatusFunction_MetricAllThrottles(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
- func CheckStateMachineStatusFunction_MetricAllUnreservedConcurrentExecutions(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
- func ImagePipeline_IsConstruct(x interface{}) *bool
- func NewCheckStateMachineStatusFunction_Override(c CheckStateMachineStatusFunction, scope constructs.Construct, id *string, ...)
- func NewImagePipeline_Override(i ImagePipeline, scope constructs.Construct, id *string, ...)
- func NewStartStateMachineFunction_Override(s StartStateMachineFunction, scope constructs.Construct, id *string, ...)
- func StartStateMachineFunction_ClassifyVersionProperty(propertyName *string, locked *bool)
- func StartStateMachineFunction_FromFunctionArn(scope constructs.Construct, id *string, functionArn *string) awslambda.IFunction
- func StartStateMachineFunction_FromFunctionAttributes(scope constructs.Construct, id *string, attrs *awslambda.FunctionAttributes) awslambda.IFunction
- func StartStateMachineFunction_FromFunctionName(scope constructs.Construct, id *string, functionName *string) awslambda.IFunction
- func StartStateMachineFunction_IsConstruct(x interface{}) *bool
- func StartStateMachineFunction_IsOwnedResource(construct constructs.IConstruct) *bool
- func StartStateMachineFunction_IsResource(construct constructs.IConstruct) *bool
- func StartStateMachineFunction_MetricAll(metricName *string, props *awscloudwatch.MetricOptions) awscloudwatch.Metric
- func StartStateMachineFunction_MetricAllConcurrentExecutions(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
- func StartStateMachineFunction_MetricAllDuration(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
- func StartStateMachineFunction_MetricAllErrors(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
- func StartStateMachineFunction_MetricAllInvocations(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
- func StartStateMachineFunction_MetricAllThrottles(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
- func StartStateMachineFunction_MetricAllUnreservedConcurrentExecutions(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
- type CheckStateMachineStatusFunction
- type CheckStateMachineStatusFunctionProps
- type IActionCommands
- type IComponentDocument
- type IComponentProps
- type IEbsParameters
- type IInputParameter
- type IPhases
- type IStepCommands
- type ImagePipeline
- type ImagePipelineProps
- type StartStateMachineFunction
- type StartStateMachineFunctionProps
- type VolumeProps
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CheckStateMachineStatusFunction_ClassifyVersionProperty ¶
Record whether specific properties in the `AWS::Lambda::Function` resource should also be associated to the Version resource.
See 'currentVersion' section in the module README for more details.
func CheckStateMachineStatusFunction_FromFunctionArn ¶
func CheckStateMachineStatusFunction_FromFunctionArn(scope constructs.Construct, id *string, functionArn *string) awslambda.IFunction
Import a lambda function into the CDK using its ARN.
For `Function.addPermissions()` to work on this imported lambda, make sure that is in the same account and region as the stack you are importing it into.
func CheckStateMachineStatusFunction_FromFunctionAttributes ¶
func CheckStateMachineStatusFunction_FromFunctionAttributes(scope constructs.Construct, id *string, attrs *awslambda.FunctionAttributes) awslambda.IFunction
Creates a Lambda function object which represents a function not defined within this stack.
For `Function.addPermissions()` to work on this imported lambda, set the sameEnvironment property to true if this imported lambda is in the same account and region as the stack you are importing it into.
func CheckStateMachineStatusFunction_FromFunctionName ¶
func CheckStateMachineStatusFunction_FromFunctionName(scope constructs.Construct, id *string, functionName *string) awslambda.IFunction
Import a lambda function into the CDK using its name.
func CheckStateMachineStatusFunction_IsConstruct ¶
func CheckStateMachineStatusFunction_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func CheckStateMachineStatusFunction_IsOwnedResource ¶
func CheckStateMachineStatusFunction_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
func CheckStateMachineStatusFunction_IsResource ¶
func CheckStateMachineStatusFunction_IsResource(construct constructs.IConstruct) *bool
Check whether the given construct is a Resource.
func CheckStateMachineStatusFunction_MetricAll ¶
func CheckStateMachineStatusFunction_MetricAll(metricName *string, props *awscloudwatch.MetricOptions) awscloudwatch.Metric
Return the given named metric for this Lambda.
func CheckStateMachineStatusFunction_MetricAllConcurrentExecutions ¶
func CheckStateMachineStatusFunction_MetricAllConcurrentExecutions(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
Metric for the number of concurrent executions across all Lambdas. Default: max over 5 minutes.
func CheckStateMachineStatusFunction_MetricAllDuration ¶
func CheckStateMachineStatusFunction_MetricAllDuration(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
Metric for the Duration executing all Lambdas. Default: average over 5 minutes.
func CheckStateMachineStatusFunction_MetricAllErrors ¶
func CheckStateMachineStatusFunction_MetricAllErrors(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
Metric for the number of Errors executing all Lambdas. Default: sum over 5 minutes.
func CheckStateMachineStatusFunction_MetricAllInvocations ¶
func CheckStateMachineStatusFunction_MetricAllInvocations(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
Metric for the number of invocations of all Lambdas. Default: sum over 5 minutes.
func CheckStateMachineStatusFunction_MetricAllThrottles ¶
func CheckStateMachineStatusFunction_MetricAllThrottles(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
Metric for the number of throttled invocations of all Lambdas. Default: sum over 5 minutes.
func CheckStateMachineStatusFunction_MetricAllUnreservedConcurrentExecutions ¶
func CheckStateMachineStatusFunction_MetricAllUnreservedConcurrentExecutions(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
Metric for the number of unreserved concurrent executions across all Lambdas. Default: max over 5 minutes.
func ImagePipeline_IsConstruct ¶
func ImagePipeline_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func NewCheckStateMachineStatusFunction_Override ¶
func NewCheckStateMachineStatusFunction_Override(c CheckStateMachineStatusFunction, scope constructs.Construct, id *string, props *CheckStateMachineStatusFunctionProps)
func NewImagePipeline_Override ¶
func NewImagePipeline_Override(i ImagePipeline, scope constructs.Construct, id *string, props *ImagePipelineProps)
func NewStartStateMachineFunction_Override ¶
func NewStartStateMachineFunction_Override(s StartStateMachineFunction, scope constructs.Construct, id *string, props *StartStateMachineFunctionProps)
func StartStateMachineFunction_ClassifyVersionProperty ¶
Record whether specific properties in the `AWS::Lambda::Function` resource should also be associated to the Version resource.
See 'currentVersion' section in the module README for more details.
func StartStateMachineFunction_FromFunctionArn ¶
func StartStateMachineFunction_FromFunctionArn(scope constructs.Construct, id *string, functionArn *string) awslambda.IFunction
Import a lambda function into the CDK using its ARN.
For `Function.addPermissions()` to work on this imported lambda, make sure that is in the same account and region as the stack you are importing it into.
func StartStateMachineFunction_FromFunctionAttributes ¶
func StartStateMachineFunction_FromFunctionAttributes(scope constructs.Construct, id *string, attrs *awslambda.FunctionAttributes) awslambda.IFunction
Creates a Lambda function object which represents a function not defined within this stack.
For `Function.addPermissions()` to work on this imported lambda, set the sameEnvironment property to true if this imported lambda is in the same account and region as the stack you are importing it into.
func StartStateMachineFunction_FromFunctionName ¶
func StartStateMachineFunction_FromFunctionName(scope constructs.Construct, id *string, functionName *string) awslambda.IFunction
Import a lambda function into the CDK using its name.
func StartStateMachineFunction_IsConstruct ¶
func StartStateMachineFunction_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func StartStateMachineFunction_IsOwnedResource ¶
func StartStateMachineFunction_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
func StartStateMachineFunction_IsResource ¶
func StartStateMachineFunction_IsResource(construct constructs.IConstruct) *bool
Check whether the given construct is a Resource.
func StartStateMachineFunction_MetricAll ¶
func StartStateMachineFunction_MetricAll(metricName *string, props *awscloudwatch.MetricOptions) awscloudwatch.Metric
Return the given named metric for this Lambda.
func StartStateMachineFunction_MetricAllConcurrentExecutions ¶
func StartStateMachineFunction_MetricAllConcurrentExecutions(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
Metric for the number of concurrent executions across all Lambdas. Default: max over 5 minutes.
func StartStateMachineFunction_MetricAllDuration ¶
func StartStateMachineFunction_MetricAllDuration(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
Metric for the Duration executing all Lambdas. Default: average over 5 minutes.
func StartStateMachineFunction_MetricAllErrors ¶
func StartStateMachineFunction_MetricAllErrors(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
Metric for the number of Errors executing all Lambdas. Default: sum over 5 minutes.
func StartStateMachineFunction_MetricAllInvocations ¶
func StartStateMachineFunction_MetricAllInvocations(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
Metric for the number of invocations of all Lambdas. Default: sum over 5 minutes.
func StartStateMachineFunction_MetricAllThrottles ¶
func StartStateMachineFunction_MetricAllThrottles(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
Metric for the number of throttled invocations of all Lambdas. Default: sum over 5 minutes.
func StartStateMachineFunction_MetricAllUnreservedConcurrentExecutions ¶
func StartStateMachineFunction_MetricAllUnreservedConcurrentExecutions(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
Metric for the number of unreserved concurrent executions across all Lambdas. Default: max over 5 minutes.
Types ¶
type CheckStateMachineStatusFunction ¶
type CheckStateMachineStatusFunction interface {
awslambda.Function
// The architecture of this Lambda Function (this is an optional attribute and defaults to X86_64).
Architecture() awslambda.Architecture
// Whether the addPermission() call adds any permissions.
//
// True for new Lambdas, false for version $LATEST and imported Lambdas
// from different accounts.
CanCreatePermissions() *bool
// Access the Connections object.
//
// Will fail if not a VPC-enabled Lambda Function.
Connections() awsec2.Connections
// Returns a `lambda.Version` which represents the current version of this Lambda function. A new version will be created every time the function's configuration changes.
//
// You can specify options for this version using the `currentVersionOptions`
// prop when initializing the `lambda.Function`.
CurrentVersion() awslambda.Version
// The DLQ (as queue) associated with this Lambda Function (this is an optional attribute).
DeadLetterQueue() awssqs.IQueue
// The DLQ (as topic) associated with this Lambda Function (this is an optional attribute).
DeadLetterTopic() awssns.ITopic
// The environment this resource belongs to.
//
// For resources that are created and managed by the CDK
// (generally, those created by creating new class instances like Role, Bucket, etc.),
// this is always the same as the environment of the stack they belong to;
// however, for imported resources
// (those obtained from static methods like fromRoleArn, fromBucketName, etc.),
// that might be different than the stack they were imported into.
Env() *awscdk.ResourceEnvironment
// ARN of this function.
FunctionArn() *string
// Name of this function.
FunctionName() *string
// The principal this Lambda Function is running as.
GrantPrincipal() awsiam.IPrincipal
// Whether or not this Lambda function was bound to a VPC.
//
// If this is is `false`, trying to access the `connections` object will fail.
IsBoundToVpc() *bool
// The `$LATEST` version of this function.
//
// Note that this is reference to a non-specific AWS Lambda version, which
// means the function this version refers to can return different results in
// different invocations.
//
// To obtain a reference to an explicit version which references the current
// function configuration, use `lambdaFunction.currentVersion` instead.
LatestVersion() awslambda.IVersion
// The LogGroup where the Lambda function's logs are made available.
//
// If either `logRetention` is set or this property is called, a CloudFormation custom resource is added to the stack that
// pre-creates the log group as part of the stack deployment, if it already doesn't exist, and sets the correct log retention
// period (never expire, by default).
//
// Further, if the log group already exists and the `logRetention` is not set, the custom resource will reset the log retention
// to never expire even if it was configured with a different value.
LogGroup() awslogs.ILogGroup
// The tree node.
Node() constructs.Node
// The construct node where permissions are attached.
PermissionsNode() constructs.Node
// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
//
// This value will resolve to one of the following:
// - a concrete value (e.g. `"my-awesome-bucket"`)
// - `undefined`, when a name should be generated by CloudFormation
// - a concrete name generated automatically during synthesis, in
// cross-environment scenarios.
PhysicalName() *string
// The ARN(s) to put into the resource field of the generated IAM policy for grantInvoke().
ResourceArnsForGrantInvoke() *[]*string
// Execution role associated with this function.
Role() awsiam.IRole
// The runtime configured for this lambda.
Runtime() awslambda.Runtime
// The stack in which this resource is defined.
Stack() awscdk.Stack
// The timeout configured for this lambda.
Timeout() awscdk.Duration
// Defines an alias for this function.
//
// The alias will automatically be updated to point to the latest version of
// the function as it is being updated during a deployment.
//
// “`ts
// declare const fn: lambda.Function;
//
// fn.addAlias('Live');
//
// // Is equivalent to
//
// new lambda.Alias(this, 'AliasLive', {
// aliasName: 'Live',
// version: fn.currentVersion,
// });
// “`.
AddAlias(aliasName *string, options *awslambda.AliasOptions) awslambda.Alias
// Adds an environment variable to this Lambda function.
//
// If this is a ref to a Lambda function, this operation results in a no-op.
AddEnvironment(key *string, value *string, options *awslambda.EnvironmentOptions) awslambda.Function
// Adds an event source to this function.
//
// Event sources are implemented in the aws-cdk-lib/aws-lambda-event-sources module.
//
// The following example adds an SQS Queue as an event source:
// “`
// import { SqsEventSource } from 'aws-cdk-lib/aws-lambda-event-sources';
// myFunction.addEventSource(new SqsEventSource(myQueue));
// “`.
AddEventSource(source awslambda.IEventSource)
// Adds an event source that maps to this AWS Lambda function.
AddEventSourceMapping(id *string, options *awslambda.EventSourceMappingOptions) awslambda.EventSourceMapping
// Adds a url to this lambda function.
AddFunctionUrl(options *awslambda.FunctionUrlOptions) awslambda.FunctionUrl
// Adds one or more Lambda Layers to this Lambda function.
AddLayers(layers ...awslambda.ILayerVersion)
// Adds a permission to the Lambda resource policy.
// See: Permission for details.
//
AddPermission(id *string, permission *awslambda.Permission)
// Adds a statement to the IAM role assumed by the instance.
AddToRolePolicy(statement awsiam.PolicyStatement)
// Apply the given removal policy to this resource.
//
// The Removal Policy controls what happens to this resource when it stops
// being managed by CloudFormation, either because you've removed it from the
// CDK application or because you've made a change that requires the resource
// to be replaced.
//
// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
// Configures options for asynchronous invocation.
ConfigureAsyncInvoke(options *awslambda.EventInvokeConfigOptions)
// A warning will be added to functions under the following conditions: - permissions that include `lambda:InvokeFunction` are added to the unqualified function.
//
// - function.currentVersion is invoked before or after the permission is created.
//
// This applies only to permissions on Lambda functions, not versions or aliases.
// This function is overridden as a noOp for QualifiedFunctionBase.
ConsiderWarningOnInvokeFunctionPermissions(scope constructs.Construct, action *string)
GeneratePhysicalName() *string
// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
//
// Normally, this token will resolve to `arnAttr`, but if the resource is
// referenced across environments, `arnComponents` will be used to synthesize
// a concrete ARN with the resource's physical name. Make sure to reference
// `this.physicalName` in `arnComponents`.
GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
//
// Normally, this token will resolve to `nameAttr`, but if the resource is
// referenced across environments, it will be resolved to `this.physicalName`,
// which will be a concrete name.
GetResourceNameAttribute(nameAttr *string) *string
// Grant the given identity permissions to invoke this Lambda.
GrantInvoke(grantee awsiam.IGrantable) awsiam.Grant
// Grant multiple principals the ability to invoke this Lambda via CompositePrincipal.
GrantInvokeCompositePrincipal(compositePrincipal awsiam.CompositePrincipal) *[]awsiam.Grant
// Grant the given identity permissions to invoke this Lambda Function URL.
GrantInvokeUrl(grantee awsiam.IGrantable) awsiam.Grant
// Mix additional information into the hash of the Version object.
//
// The Lambda Function construct does its best to automatically create a new
// Version when anything about the Function changes (its code, its layers,
// any of the other properties).
//
// However, you can sometimes source information from places that the CDK cannot
// look into, like the deploy-time values of SSM parameters. In those cases,
// the CDK would not force the creation of a new Version object when it actually
// should.
//
// This method can be used to invalidate the current Version object. Pass in
// any string into this method, and make sure the string changes when you know
// a new Version needs to be created.
//
// This method may be called more than once.
InvalidateVersionBasedOn(x *string)
// Return the given named metric for this Function.
Metric(metricName *string, props *awscloudwatch.MetricOptions) awscloudwatch.Metric
// How long execution of this Lambda takes.
//
// Average over 5 minutes.
MetricDuration(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
// How many invocations of this Lambda fail.
//
// Sum over 5 minutes.
MetricErrors(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
// How often this Lambda is invoked.
//
// Sum over 5 minutes.
MetricInvocations(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
// How often this Lambda is throttled.
//
// Sum over 5 minutes.
MetricThrottles(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
// Returns a string representation of this construct.
ToString() *string
WarnInvokeFunctionPermissions(scope constructs.Construct)
}
An AWS Lambda function which executes src/Lambdas/CheckStateMachineStatus/CheckStateMachineStatus.
func NewCheckStateMachineStatusFunction ¶
func NewCheckStateMachineStatusFunction(scope constructs.Construct, id *string, props *CheckStateMachineStatusFunctionProps) CheckStateMachineStatusFunction
type CheckStateMachineStatusFunctionProps ¶
type CheckStateMachineStatusFunctionProps struct {
// The maximum age of a request that Lambda sends to a function for processing.
//
// Minimum: 60 seconds
// Maximum: 6 hours.
// Default: Duration.hours(6)
//
MaxEventAge awscdk.Duration `field:"optional" json:"maxEventAge" yaml:"maxEventAge"`
// The destination for failed invocations.
// Default: - no destination.
//
OnFailure awslambda.IDestination `field:"optional" json:"onFailure" yaml:"onFailure"`
// The destination for successful invocations.
// Default: - no destination.
//
OnSuccess awslambda.IDestination `field:"optional" json:"onSuccess" yaml:"onSuccess"`
// The maximum number of times to retry when the function returns an error.
//
// Minimum: 0
// Maximum: 2.
// Default: 2.
//
RetryAttempts *float64 `field:"optional" json:"retryAttempts" yaml:"retryAttempts"`
// Specify the configuration of AWS Distro for OpenTelemetry (ADOT) instrumentation.
// See: https://aws-otel.github.io/docs/getting-started/lambda
//
// Default: - No ADOT instrumentation.
//
AdotInstrumentation *awslambda.AdotInstrumentationConfig `field:"optional" json:"adotInstrumentation" yaml:"adotInstrumentation"`
// Whether to allow the Lambda to send all network traffic.
//
// If set to false, you must individually add traffic rules to allow the
// Lambda to connect to network targets.
//
// Do not specify this property if the `securityGroups` or `securityGroup` property is set.
// Instead, configure `allowAllOutbound` directly on the security group.
// Default: true.
//
AllowAllOutbound *bool `field:"optional" json:"allowAllOutbound" yaml:"allowAllOutbound"`
// Lambda Functions in a public subnet can NOT access the internet.
//
// Use this property to acknowledge this limitation and still place the function in a public subnet.
// See: https://stackoverflow.com/questions/52992085/why-cant-an-aws-lambda-function-inside-a-public-subnet-in-a-vpc-connect-to-the/52994841#52994841
//
// Default: false.
//
AllowPublicSubnet *bool `field:"optional" json:"allowPublicSubnet" yaml:"allowPublicSubnet"`
// Sets the application log level for the function.
// Default: "INFO".
//
ApplicationLogLevel *string `field:"optional" json:"applicationLogLevel" yaml:"applicationLogLevel"`
// The system architectures compatible with this lambda function.
// Default: Architecture.X86_64
//
Architecture awslambda.Architecture `field:"optional" json:"architecture" yaml:"architecture"`
// Code signing config associated with this function.
// Default: - Not Sign the Code.
//
CodeSigningConfig awslambda.ICodeSigningConfig `field:"optional" json:"codeSigningConfig" yaml:"codeSigningConfig"`
// Options for the `lambda.Version` resource automatically created by the `fn.currentVersion` method.
// Default: - default options as described in `VersionOptions`.
//
CurrentVersionOptions *awslambda.VersionOptions `field:"optional" json:"currentVersionOptions" yaml:"currentVersionOptions"`
// The SQS queue to use if DLQ is enabled.
//
// If SNS topic is desired, specify `deadLetterTopic` property instead.
// Default: - SQS queue with 14 day retention period if `deadLetterQueueEnabled` is `true`.
//
DeadLetterQueue awssqs.IQueue `field:"optional" json:"deadLetterQueue" yaml:"deadLetterQueue"`
// Enabled DLQ.
//
// If `deadLetterQueue` is undefined,
// an SQS queue with default options will be defined for your Function.
// Default: - false unless `deadLetterQueue` is set, which implies DLQ is enabled.
//
DeadLetterQueueEnabled *bool `field:"optional" json:"deadLetterQueueEnabled" yaml:"deadLetterQueueEnabled"`
// The SNS topic to use as a DLQ.
//
// Note that if `deadLetterQueueEnabled` is set to `true`, an SQS queue will be created
// rather than an SNS topic. Using an SNS topic as a DLQ requires this property to be set explicitly.
// Default: - no SNS topic.
//
DeadLetterTopic awssns.ITopic `field:"optional" json:"deadLetterTopic" yaml:"deadLetterTopic"`
// A description of the function.
// Default: - No description.
//
Description *string `field:"optional" json:"description" yaml:"description"`
// Key-value pairs that Lambda caches and makes available for your Lambda functions.
//
// Use environment variables to apply configuration changes, such
// as test and production environment configurations, without changing your
// Lambda function source code.
// Default: - No environment variables.
//
Environment *map[string]*string `field:"optional" json:"environment" yaml:"environment"`
// The AWS KMS key that's used to encrypt your function's environment variables.
// Default: - AWS Lambda creates and uses an AWS managed customer master key (CMK).
//
EnvironmentEncryption awskms.IKey `field:"optional" json:"environmentEncryption" yaml:"environmentEncryption"`
// The size of the function’s /tmp directory in MiB.
// Default: 512 MiB.
//
EphemeralStorageSize awscdk.Size `field:"optional" json:"ephemeralStorageSize" yaml:"ephemeralStorageSize"`
// Event sources for this function.
//
// You can also add event sources using `addEventSource`.
// Default: - No event sources.
//
Events *[]awslambda.IEventSource `field:"optional" json:"events" yaml:"events"`
// The filesystem configuration for the lambda function.
// Default: - will not mount any filesystem.
//
Filesystem awslambda.FileSystem `field:"optional" json:"filesystem" yaml:"filesystem"`
// A name for the function.
// Default: - AWS CloudFormation generates a unique physical ID and uses that
// ID for the function's name. For more information, see Name Type.
//
FunctionName *string `field:"optional" json:"functionName" yaml:"functionName"`
// Initial policy statements to add to the created Lambda Role.
//
// You can call `addToRolePolicy` to the created lambda to add statements post creation.
// Default: - No policy statements are added to the created Lambda role.
//
InitialPolicy *[]awsiam.PolicyStatement `field:"optional" json:"initialPolicy" yaml:"initialPolicy"`
// Specify the version of CloudWatch Lambda insights to use for monitoring.
// See: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Lambda-Insights-Getting-Started-docker.html
//
// Default: - No Lambda Insights.
//
InsightsVersion awslambda.LambdaInsightsVersion `field:"optional" json:"insightsVersion" yaml:"insightsVersion"`
// A list of layers to add to the function's execution environment.
//
// You can configure your Lambda function to pull in
// additional code during initialization in the form of layers. Layers are packages of libraries or other dependencies
// that can be used by multiple functions.
// Default: - No layers.
//
Layers *[]awslambda.ILayerVersion `field:"optional" json:"layers" yaml:"layers"`
// Sets the logFormat for the function.
// Default: "Text".
//
LogFormat *string `field:"optional" json:"logFormat" yaml:"logFormat"`
// The log group the function sends logs to.
//
// By default, Lambda functions send logs to an automatically created default log group named /aws/lambda/\<function name\>.
// However you cannot change the properties of this auto-created log group using the AWS CDK, e.g. you cannot set a different log retention.
//
// Use the `logGroup` property to create a fully customizable LogGroup ahead of time, and instruct the Lambda function to send logs to it.
//
// Providing a user-controlled log group was rolled out to commercial regions on 2023-11-16.
// If you are deploying to another type of region, please check regional availability first.
// Default: `/aws/lambda/${this.functionName}` - default log group created by Lambda
//
LogGroup awslogs.ILogGroup `field:"optional" json:"logGroup" yaml:"logGroup"`
// The number of days log events are kept in CloudWatch Logs.
//
// When updating
// this property, unsetting it doesn't remove the log retention policy. To
// remove the retention policy, set the value to `INFINITE`.
//
// This is a legacy API and we strongly recommend you move away from it if you can.
// Instead create a fully customizable log group with `logs.LogGroup` and use the `logGroup` property
// to instruct the Lambda function to send logs to it.
// Migrating from `logRetention` to `logGroup` will cause the name of the log group to change.
// Users and code and referencing the name verbatim will have to adjust.
//
// In AWS CDK code, you can access the log group name directly from the LogGroup construct:
// “`ts
// import * as logs from 'aws-cdk-lib/aws-logs';
//
// declare const myLogGroup: logs.LogGroup;
// myLogGroup.logGroupName;
// “`.
// Default: logs.RetentionDays.INFINITE
//
LogRetention awslogs.RetentionDays `field:"optional" json:"logRetention" yaml:"logRetention"`
// When log retention is specified, a custom resource attempts to create the CloudWatch log group.
//
// These options control the retry policy when interacting with CloudWatch APIs.
//
// This is a legacy API and we strongly recommend you migrate to `logGroup` if you can.
// `logGroup` allows you to create a fully customizable log group and instruct the Lambda function to send logs to it.
// Default: - Default AWS SDK retry options.
//
LogRetentionRetryOptions *awslambda.LogRetentionRetryOptions `field:"optional" json:"logRetentionRetryOptions" yaml:"logRetentionRetryOptions"`
// The IAM role for the Lambda function associated with the custom resource that sets the retention policy.
//
// This is a legacy API and we strongly recommend you migrate to `logGroup` if you can.
// `logGroup` allows you to create a fully customizable log group and instruct the Lambda function to send logs to it.
// Default: - A new role is created.
//
LogRetentionRole awsiam.IRole `field:"optional" json:"logRetentionRole" yaml:"logRetentionRole"`
// The amount of memory, in MB, that is allocated to your Lambda function.
//
// Lambda uses this value to proportionally allocate the amount of CPU
// power. For more information, see Resource Model in the AWS Lambda
// Developer Guide.
// Default: 128.
//
MemorySize *float64 `field:"optional" json:"memorySize" yaml:"memorySize"`
// Specify the configuration of Parameters and Secrets Extension.
// See: https://docs.aws.amazon.com/systems-manager/latest/userguide/ps-integration-lambda-extensions.html
//
// Default: - No Parameters and Secrets Extension.
//
ParamsAndSecrets awslambda.ParamsAndSecretsLayerVersion `field:"optional" json:"paramsAndSecrets" yaml:"paramsAndSecrets"`
// Enable profiling.
// See: https://docs.aws.amazon.com/codeguru/latest/profiler-ug/setting-up-lambda.html
//
// Default: - No profiling.
//
Profiling *bool `field:"optional" json:"profiling" yaml:"profiling"`
// Profiling Group.
// See: https://docs.aws.amazon.com/codeguru/latest/profiler-ug/setting-up-lambda.html
//
// Default: - A new profiling group will be created if `profiling` is set.
//
ProfilingGroup awscodeguruprofiler.IProfilingGroup `field:"optional" json:"profilingGroup" yaml:"profilingGroup"`
// The maximum of concurrent executions you want to reserve for the function.
// See: https://docs.aws.amazon.com/lambda/latest/dg/concurrent-executions.html
//
// Default: - No specific limit - account limit.
//
ReservedConcurrentExecutions *float64 `field:"optional" json:"reservedConcurrentExecutions" yaml:"reservedConcurrentExecutions"`
// Lambda execution role.
//
// This is the role that will be assumed by the function upon execution.
// It controls the permissions that the function will have. The Role must
// be assumable by the 'lambda.amazonaws.com' service principal.
//
// The default Role automatically has permissions granted for Lambda execution. If you
// provide a Role, you must add the relevant AWS managed policies yourself.
//
// The relevant managed policies are "service-role/AWSLambdaBasicExecutionRole" and
// "service-role/AWSLambdaVPCAccessExecutionRole".
// Default: - A unique role will be generated for this lambda function.
// Both supplied and generated roles can always be changed by calling `addToRolePolicy`.
//
Role awsiam.IRole `field:"optional" json:"role" yaml:"role"`
// Sets the runtime management configuration for a function's version.
// Default: Auto.
//
RuntimeManagementMode awslambda.RuntimeManagementMode `field:"optional" json:"runtimeManagementMode" yaml:"runtimeManagementMode"`
// The list of security groups to associate with the Lambda's network interfaces.
//
// Only used if 'vpc' is supplied.
// Default: - If the function is placed within a VPC and a security group is
// not specified, either by this or securityGroup prop, a dedicated security
// group will be created for this function.
//
SecurityGroups *[]awsec2.ISecurityGroup `field:"optional" json:"securityGroups" yaml:"securityGroups"`
// Enable SnapStart for Lambda Function.
//
// SnapStart is currently supported only for Java 11, 17 runtime.
// Default: - No snapstart.
//
SnapStart awslambda.SnapStartConf `field:"optional" json:"snapStart" yaml:"snapStart"`
// Sets the system log level for the function.
// Default: "INFO".
//
SystemLogLevel *string `field:"optional" json:"systemLogLevel" yaml:"systemLogLevel"`
// The function execution time (in seconds) after which Lambda terminates the function.
//
// Because the execution time affects cost, set this value
// based on the function's expected execution time.
// Default: Duration.seconds(3)
//
Timeout awscdk.Duration `field:"optional" json:"timeout" yaml:"timeout"`
// Enable AWS X-Ray Tracing for Lambda Function.
// Default: Tracing.Disabled
//
Tracing awslambda.Tracing `field:"optional" json:"tracing" yaml:"tracing"`
// VPC network to place Lambda network interfaces.
//
// Specify this if the Lambda function needs to access resources in a VPC.
// This is required when `vpcSubnets` is specified.
// Default: - Function is not placed within a VPC.
//
Vpc awsec2.IVpc `field:"optional" json:"vpc" yaml:"vpc"`
// Where to place the network interfaces within the VPC.
//
// This requires `vpc` to be specified in order for interfaces to actually be
// placed in the subnets. If `vpc` is not specify, this will raise an error.
//
// Note: Internet access for Lambda Functions requires a NAT Gateway, so picking
// public subnets is not allowed (unless `allowPublicSubnet` is set to `true`).
// Default: - the Vpc default strategy if not specified.
//
VpcSubnets *awsec2.SubnetSelection `field:"optional" json:"vpcSubnets" yaml:"vpcSubnets"`
}
Props for CheckStateMachineStatusFunction.
type IActionCommands ¶
Build commands for the component.
type IComponentDocument ¶
type IComponentDocument interface {
Description() *string
SetDescription(d *string)
Name() *string
SetName(n *string)
Phases() *[]IPhases
SetPhases(p *[]IPhases)
SchemaVersion() *string
SetSchemaVersion(s *string)
}
Component data.
type IComponentProps ¶
type IComponentProps interface {
ComponentDocument() IComponentDocument
SetComponentDocument(c IComponentDocument)
ComponentVersion() *string
SetComponentVersion(c *string)
Description() *string
SetDescription(d *string)
Name() *string
SetName(n *string)
Parameters() *map[string]IInputParameter
SetParameters(p *map[string]IInputParameter)
Platform() *string
SetPlatform(p *string)
SchemaVersion() *string
SetSchemaVersion(s *string)
}
Component props.
type IEbsParameters ¶
type IEbsParameters interface {
// Whether the volume is deleted when the instance is terminated.
// Default: true.
//
DeleteOnTermination() *bool
SetDeleteOnTermination(d *bool)
// Whether the volume is encrypted.
// Default: true.
//
Encrypted() *bool
SetEncrypted(e *bool)
// KMS Key Alias for the volume If not specified, the default AMI encryption key alias will be used Custom KMS Keys Alias need to exist in the other accounts for distribution to work correctly.
// Default: alias/aws/ebs.
//
KmsKeyId() *string
SetKmsKeyId(k *string)
// Size of the volume in GiB.
VolumeSize() *float64
SetVolumeSize(v *float64)
// Type of the volume.
// Default: gp2.
//
VolumeType() *string
SetVolumeType(v *string)
}
type IInputParameter ¶
type IPhases ¶
type IPhases interface {
Name() *string
SetName(n *string)
Steps() *[]IStepCommands
SetSteps(s *[]IStepCommands)
}
Phases for the component.
type IStepCommands ¶
type IStepCommands interface {
Action() *string
SetAction(a *string)
Inputs() IActionCommands
SetInputs(i IActionCommands)
Name() *string
SetName(n *string)
}
type ImagePipeline ¶
type ImagePipeline interface {
constructs.Construct
ImageId() *string
SetImageId(val *string)
ImagePipelineArn() *string
SetImagePipelineArn(val *string)
ImageRecipeComponents() *[]*awsimagebuilder.CfnImageRecipe_ComponentConfigurationProperty
SetImageRecipeComponents(val *[]*awsimagebuilder.CfnImageRecipe_ComponentConfigurationProperty)
// The tree node.
Node() constructs.Node
// Returns a string representation of this construct.
ToString() *string
}
func NewImagePipeline ¶
func NewImagePipeline(scope constructs.Construct, id *string, props *ImagePipelineProps) ImagePipeline
type ImagePipelineProps ¶
type ImagePipelineProps struct {
// List of component props.
Components *[]IComponentProps `field:"required" json:"components" yaml:"components"`
// The source (parent) image that the image recipe uses as its base environment.
//
// The value can be the parent image ARN or an Image Builder AMI ID.
ParentImage *string `field:"required" json:"parentImage" yaml:"parentImage"`
// Vpc to use for the Image Builder Pipeline.
Vpc awsec2.Vpc `field:"required" json:"vpc" yaml:"vpc"`
// Additional policies to add to the instance profile associated with the Instance Configurations.
AdditionalPolicies *[]awsiam.ManagedPolicy `field:"optional" json:"additionalPolicies" yaml:"additionalPolicies"`
// Flag indicating whether the debug image pipeline is enabled or not.
//
// This variable is optional. Default value is false.
// Functionally, this will flag to return as finished immediately after first check to see if the image pipeline has finished.
// This is useful for debugging the image pipeline. However, there will be no AMI value returned.
DebugImagePipeline *bool `field:"optional" json:"debugImagePipeline" yaml:"debugImagePipeline"`
// This variable represents an array of shared account IDs.
//
// It is optional and readonly.
// If it is provided, this AMI will be visible to the accounts in the array.
// In order to share the AMI with other accounts, you must specify a KMS key ID for the EBS volume configuration as AWS does not allow sharing AMIs encrypted with the default AMI encryption key.
DistributionAccountIds *[]*string `field:"optional" json:"distributionAccountIds" yaml:"distributionAccountIds"`
// The alias of the KMS key used for encryption and decryption of content in the distribution.
//
// This property is optional and readonly.
// The default encryption key is not compatible with cross-account AMI sharing.
// If you specify distributionAccountIds, you must specify a non-default encryption key using this property. Otherwise, Image Builder will throw an error.
// Keep in mind that the KMS key in the distribution account must allow the EC2ImageBuilderDistributionCrossAccountRole role to use the key.
DistributionKmsKeyAlias *string `field:"optional" json:"distributionKmsKeyAlias" yaml:"distributionKmsKeyAlias"`
DistributionRegions *[]*string `field:"optional" json:"distributionRegions" yaml:"distributionRegions"`
// Subnet ID for the Infrastructure Configuration.
EbsVolumeConfigurations *[]*VolumeProps `field:"optional" json:"ebsVolumeConfigurations" yaml:"ebsVolumeConfigurations"`
// Email used to receive Image Builder Pipeline Notifications via SNS.
Email *string `field:"optional" json:"email" yaml:"email"`
// Set to true if you want to enable continuous vulnerability scans through AWS Inpector.
EnableVulnScans *bool `field:"optional" json:"enableVulnScans" yaml:"enableVulnScans"`
// Image recipe version (Default: 0.0.1).
ImageRecipeVersion *string `field:"optional" json:"imageRecipeVersion" yaml:"imageRecipeVersion"`
// List of instance types used in the Instance Configuration (Default: [ 't3.medium', 'm5.large', 'm5.xlarge' ]).
InstanceTypes *[]*string `field:"optional" json:"instanceTypes" yaml:"instanceTypes"`
// Platform type Linux or Windows (Default: Linux).
Platform *string `field:"optional" json:"platform" yaml:"platform"`
// Name of the instance profile that will be associated with the Instance Configuration.
ProfileName *string `field:"optional" json:"profileName" yaml:"profileName"`
// List of security group IDs for the Infrastructure Configuration.
SecurityGroupIds *[]*string `field:"optional" json:"securityGroupIds" yaml:"securityGroupIds"`
SecurityGroups *[]*string `field:"optional" json:"securityGroups" yaml:"securityGroups"`
SubnetId *string `field:"optional" json:"subnetId" yaml:"subnetId"`
// UserData script that will override default one (if specified).
// Default: - none.
//
UserDataScript *string `field:"optional" json:"userDataScript" yaml:"userDataScript"`
// Store vulnerability scans through AWS Inspector in ECR using this repo name (if option is enabled).
VulnScansRepoName *string `field:"optional" json:"vulnScansRepoName" yaml:"vulnScansRepoName"`
// Store vulnerability scans through AWS Inspector in ECR using these image tags (if option is enabled).
VulnScansRepoTags *[]*string `field:"optional" json:"vulnScansRepoTags" yaml:"vulnScansRepoTags"`
}
type StartStateMachineFunction ¶
type StartStateMachineFunction interface {
awslambda.Function
// The architecture of this Lambda Function (this is an optional attribute and defaults to X86_64).
Architecture() awslambda.Architecture
// Whether the addPermission() call adds any permissions.
//
// True for new Lambdas, false for version $LATEST and imported Lambdas
// from different accounts.
CanCreatePermissions() *bool
// Access the Connections object.
//
// Will fail if not a VPC-enabled Lambda Function.
Connections() awsec2.Connections
// Returns a `lambda.Version` which represents the current version of this Lambda function. A new version will be created every time the function's configuration changes.
//
// You can specify options for this version using the `currentVersionOptions`
// prop when initializing the `lambda.Function`.
CurrentVersion() awslambda.Version
// The DLQ (as queue) associated with this Lambda Function (this is an optional attribute).
DeadLetterQueue() awssqs.IQueue
// The DLQ (as topic) associated with this Lambda Function (this is an optional attribute).
DeadLetterTopic() awssns.ITopic
// The environment this resource belongs to.
//
// For resources that are created and managed by the CDK
// (generally, those created by creating new class instances like Role, Bucket, etc.),
// this is always the same as the environment of the stack they belong to;
// however, for imported resources
// (those obtained from static methods like fromRoleArn, fromBucketName, etc.),
// that might be different than the stack they were imported into.
Env() *awscdk.ResourceEnvironment
// ARN of this function.
FunctionArn() *string
// Name of this function.
FunctionName() *string
// The principal this Lambda Function is running as.
GrantPrincipal() awsiam.IPrincipal
// Whether or not this Lambda function was bound to a VPC.
//
// If this is is `false`, trying to access the `connections` object will fail.
IsBoundToVpc() *bool
// The `$LATEST` version of this function.
//
// Note that this is reference to a non-specific AWS Lambda version, which
// means the function this version refers to can return different results in
// different invocations.
//
// To obtain a reference to an explicit version which references the current
// function configuration, use `lambdaFunction.currentVersion` instead.
LatestVersion() awslambda.IVersion
// The LogGroup where the Lambda function's logs are made available.
//
// If either `logRetention` is set or this property is called, a CloudFormation custom resource is added to the stack that
// pre-creates the log group as part of the stack deployment, if it already doesn't exist, and sets the correct log retention
// period (never expire, by default).
//
// Further, if the log group already exists and the `logRetention` is not set, the custom resource will reset the log retention
// to never expire even if it was configured with a different value.
LogGroup() awslogs.ILogGroup
// The tree node.
Node() constructs.Node
// The construct node where permissions are attached.
PermissionsNode() constructs.Node
// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
//
// This value will resolve to one of the following:
// - a concrete value (e.g. `"my-awesome-bucket"`)
// - `undefined`, when a name should be generated by CloudFormation
// - a concrete name generated automatically during synthesis, in
// cross-environment scenarios.
PhysicalName() *string
// The ARN(s) to put into the resource field of the generated IAM policy for grantInvoke().
ResourceArnsForGrantInvoke() *[]*string
// Execution role associated with this function.
Role() awsiam.IRole
// The runtime configured for this lambda.
Runtime() awslambda.Runtime
// The stack in which this resource is defined.
Stack() awscdk.Stack
// The timeout configured for this lambda.
Timeout() awscdk.Duration
// Defines an alias for this function.
//
// The alias will automatically be updated to point to the latest version of
// the function as it is being updated during a deployment.
//
// “`ts
// declare const fn: lambda.Function;
//
// fn.addAlias('Live');
//
// // Is equivalent to
//
// new lambda.Alias(this, 'AliasLive', {
// aliasName: 'Live',
// version: fn.currentVersion,
// });
// “`.
AddAlias(aliasName *string, options *awslambda.AliasOptions) awslambda.Alias
// Adds an environment variable to this Lambda function.
//
// If this is a ref to a Lambda function, this operation results in a no-op.
AddEnvironment(key *string, value *string, options *awslambda.EnvironmentOptions) awslambda.Function
// Adds an event source to this function.
//
// Event sources are implemented in the aws-cdk-lib/aws-lambda-event-sources module.
//
// The following example adds an SQS Queue as an event source:
// “`
// import { SqsEventSource } from 'aws-cdk-lib/aws-lambda-event-sources';
// myFunction.addEventSource(new SqsEventSource(myQueue));
// “`.
AddEventSource(source awslambda.IEventSource)
// Adds an event source that maps to this AWS Lambda function.
AddEventSourceMapping(id *string, options *awslambda.EventSourceMappingOptions) awslambda.EventSourceMapping
// Adds a url to this lambda function.
AddFunctionUrl(options *awslambda.FunctionUrlOptions) awslambda.FunctionUrl
// Adds one or more Lambda Layers to this Lambda function.
AddLayers(layers ...awslambda.ILayerVersion)
// Adds a permission to the Lambda resource policy.
// See: Permission for details.
//
AddPermission(id *string, permission *awslambda.Permission)
// Adds a statement to the IAM role assumed by the instance.
AddToRolePolicy(statement awsiam.PolicyStatement)
// Apply the given removal policy to this resource.
//
// The Removal Policy controls what happens to this resource when it stops
// being managed by CloudFormation, either because you've removed it from the
// CDK application or because you've made a change that requires the resource
// to be replaced.
//
// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
// Configures options for asynchronous invocation.
ConfigureAsyncInvoke(options *awslambda.EventInvokeConfigOptions)
// A warning will be added to functions under the following conditions: - permissions that include `lambda:InvokeFunction` are added to the unqualified function.
//
// - function.currentVersion is invoked before or after the permission is created.
//
// This applies only to permissions on Lambda functions, not versions or aliases.
// This function is overridden as a noOp for QualifiedFunctionBase.
ConsiderWarningOnInvokeFunctionPermissions(scope constructs.Construct, action *string)
GeneratePhysicalName() *string
// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
//
// Normally, this token will resolve to `arnAttr`, but if the resource is
// referenced across environments, `arnComponents` will be used to synthesize
// a concrete ARN with the resource's physical name. Make sure to reference
// `this.physicalName` in `arnComponents`.
GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
//
// Normally, this token will resolve to `nameAttr`, but if the resource is
// referenced across environments, it will be resolved to `this.physicalName`,
// which will be a concrete name.
GetResourceNameAttribute(nameAttr *string) *string
// Grant the given identity permissions to invoke this Lambda.
GrantInvoke(grantee awsiam.IGrantable) awsiam.Grant
// Grant multiple principals the ability to invoke this Lambda via CompositePrincipal.
GrantInvokeCompositePrincipal(compositePrincipal awsiam.CompositePrincipal) *[]awsiam.Grant
// Grant the given identity permissions to invoke this Lambda Function URL.
GrantInvokeUrl(grantee awsiam.IGrantable) awsiam.Grant
// Mix additional information into the hash of the Version object.
//
// The Lambda Function construct does its best to automatically create a new
// Version when anything about the Function changes (its code, its layers,
// any of the other properties).
//
// However, you can sometimes source information from places that the CDK cannot
// look into, like the deploy-time values of SSM parameters. In those cases,
// the CDK would not force the creation of a new Version object when it actually
// should.
//
// This method can be used to invalidate the current Version object. Pass in
// any string into this method, and make sure the string changes when you know
// a new Version needs to be created.
//
// This method may be called more than once.
InvalidateVersionBasedOn(x *string)
// Return the given named metric for this Function.
Metric(metricName *string, props *awscloudwatch.MetricOptions) awscloudwatch.Metric
// How long execution of this Lambda takes.
//
// Average over 5 minutes.
MetricDuration(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
// How many invocations of this Lambda fail.
//
// Sum over 5 minutes.
MetricErrors(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
// How often this Lambda is invoked.
//
// Sum over 5 minutes.
MetricInvocations(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
// How often this Lambda is throttled.
//
// Sum over 5 minutes.
MetricThrottles(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
// Returns a string representation of this construct.
ToString() *string
WarnInvokeFunctionPermissions(scope constructs.Construct)
}
An AWS Lambda function which executes src/Lambdas/StartStateMachine/StartStateMachine.
func NewStartStateMachineFunction ¶
func NewStartStateMachineFunction(scope constructs.Construct, id *string, props *StartStateMachineFunctionProps) StartStateMachineFunction
type StartStateMachineFunctionProps ¶
type StartStateMachineFunctionProps struct {
// The maximum age of a request that Lambda sends to a function for processing.
//
// Minimum: 60 seconds
// Maximum: 6 hours.
// Default: Duration.hours(6)
//
MaxEventAge awscdk.Duration `field:"optional" json:"maxEventAge" yaml:"maxEventAge"`
// The destination for failed invocations.
// Default: - no destination.
//
OnFailure awslambda.IDestination `field:"optional" json:"onFailure" yaml:"onFailure"`
// The destination for successful invocations.
// Default: - no destination.
//
OnSuccess awslambda.IDestination `field:"optional" json:"onSuccess" yaml:"onSuccess"`
// The maximum number of times to retry when the function returns an error.
//
// Minimum: 0
// Maximum: 2.
// Default: 2.
//
RetryAttempts *float64 `field:"optional" json:"retryAttempts" yaml:"retryAttempts"`
// Specify the configuration of AWS Distro for OpenTelemetry (ADOT) instrumentation.
// See: https://aws-otel.github.io/docs/getting-started/lambda
//
// Default: - No ADOT instrumentation.
//
AdotInstrumentation *awslambda.AdotInstrumentationConfig `field:"optional" json:"adotInstrumentation" yaml:"adotInstrumentation"`
// Whether to allow the Lambda to send all network traffic.
//
// If set to false, you must individually add traffic rules to allow the
// Lambda to connect to network targets.
//
// Do not specify this property if the `securityGroups` or `securityGroup` property is set.
// Instead, configure `allowAllOutbound` directly on the security group.
// Default: true.
//
AllowAllOutbound *bool `field:"optional" json:"allowAllOutbound" yaml:"allowAllOutbound"`
// Lambda Functions in a public subnet can NOT access the internet.
//
// Use this property to acknowledge this limitation and still place the function in a public subnet.
// See: https://stackoverflow.com/questions/52992085/why-cant-an-aws-lambda-function-inside-a-public-subnet-in-a-vpc-connect-to-the/52994841#52994841
//
// Default: false.
//
AllowPublicSubnet *bool `field:"optional" json:"allowPublicSubnet" yaml:"allowPublicSubnet"`
// Sets the application log level for the function.
// Default: "INFO".
//
ApplicationLogLevel *string `field:"optional" json:"applicationLogLevel" yaml:"applicationLogLevel"`
// The system architectures compatible with this lambda function.
// Default: Architecture.X86_64
//
Architecture awslambda.Architecture `field:"optional" json:"architecture" yaml:"architecture"`
// Code signing config associated with this function.
// Default: - Not Sign the Code.
//
CodeSigningConfig awslambda.ICodeSigningConfig `field:"optional" json:"codeSigningConfig" yaml:"codeSigningConfig"`
// Options for the `lambda.Version` resource automatically created by the `fn.currentVersion` method.
// Default: - default options as described in `VersionOptions`.
//
CurrentVersionOptions *awslambda.VersionOptions `field:"optional" json:"currentVersionOptions" yaml:"currentVersionOptions"`
// The SQS queue to use if DLQ is enabled.
//
// If SNS topic is desired, specify `deadLetterTopic` property instead.
// Default: - SQS queue with 14 day retention period if `deadLetterQueueEnabled` is `true`.
//
DeadLetterQueue awssqs.IQueue `field:"optional" json:"deadLetterQueue" yaml:"deadLetterQueue"`
// Enabled DLQ.
//
// If `deadLetterQueue` is undefined,
// an SQS queue with default options will be defined for your Function.
// Default: - false unless `deadLetterQueue` is set, which implies DLQ is enabled.
//
DeadLetterQueueEnabled *bool `field:"optional" json:"deadLetterQueueEnabled" yaml:"deadLetterQueueEnabled"`
// The SNS topic to use as a DLQ.
//
// Note that if `deadLetterQueueEnabled` is set to `true`, an SQS queue will be created
// rather than an SNS topic. Using an SNS topic as a DLQ requires this property to be set explicitly.
// Default: - no SNS topic.
//
DeadLetterTopic awssns.ITopic `field:"optional" json:"deadLetterTopic" yaml:"deadLetterTopic"`
// A description of the function.
// Default: - No description.
//
Description *string `field:"optional" json:"description" yaml:"description"`
// Key-value pairs that Lambda caches and makes available for your Lambda functions.
//
// Use environment variables to apply configuration changes, such
// as test and production environment configurations, without changing your
// Lambda function source code.
// Default: - No environment variables.
//
Environment *map[string]*string `field:"optional" json:"environment" yaml:"environment"`
// The AWS KMS key that's used to encrypt your function's environment variables.
// Default: - AWS Lambda creates and uses an AWS managed customer master key (CMK).
//
EnvironmentEncryption awskms.IKey `field:"optional" json:"environmentEncryption" yaml:"environmentEncryption"`
// The size of the function’s /tmp directory in MiB.
// Default: 512 MiB.
//
EphemeralStorageSize awscdk.Size `field:"optional" json:"ephemeralStorageSize" yaml:"ephemeralStorageSize"`
// Event sources for this function.
//
// You can also add event sources using `addEventSource`.
// Default: - No event sources.
//
Events *[]awslambda.IEventSource `field:"optional" json:"events" yaml:"events"`
// The filesystem configuration for the lambda function.
// Default: - will not mount any filesystem.
//
Filesystem awslambda.FileSystem `field:"optional" json:"filesystem" yaml:"filesystem"`
// A name for the function.
// Default: - AWS CloudFormation generates a unique physical ID and uses that
// ID for the function's name. For more information, see Name Type.
//
FunctionName *string `field:"optional" json:"functionName" yaml:"functionName"`
// Initial policy statements to add to the created Lambda Role.
//
// You can call `addToRolePolicy` to the created lambda to add statements post creation.
// Default: - No policy statements are added to the created Lambda role.
//
InitialPolicy *[]awsiam.PolicyStatement `field:"optional" json:"initialPolicy" yaml:"initialPolicy"`
// Specify the version of CloudWatch Lambda insights to use for monitoring.
// See: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Lambda-Insights-Getting-Started-docker.html
//
// Default: - No Lambda Insights.
//
InsightsVersion awslambda.LambdaInsightsVersion `field:"optional" json:"insightsVersion" yaml:"insightsVersion"`
// A list of layers to add to the function's execution environment.
//
// You can configure your Lambda function to pull in
// additional code during initialization in the form of layers. Layers are packages of libraries or other dependencies
// that can be used by multiple functions.
// Default: - No layers.
//
Layers *[]awslambda.ILayerVersion `field:"optional" json:"layers" yaml:"layers"`
// Sets the logFormat for the function.
// Default: "Text".
//
LogFormat *string `field:"optional" json:"logFormat" yaml:"logFormat"`
// The log group the function sends logs to.
//
// By default, Lambda functions send logs to an automatically created default log group named /aws/lambda/\<function name\>.
// However you cannot change the properties of this auto-created log group using the AWS CDK, e.g. you cannot set a different log retention.
//
// Use the `logGroup` property to create a fully customizable LogGroup ahead of time, and instruct the Lambda function to send logs to it.
//
// Providing a user-controlled log group was rolled out to commercial regions on 2023-11-16.
// If you are deploying to another type of region, please check regional availability first.
// Default: `/aws/lambda/${this.functionName}` - default log group created by Lambda
//
LogGroup awslogs.ILogGroup `field:"optional" json:"logGroup" yaml:"logGroup"`
// The number of days log events are kept in CloudWatch Logs.
//
// When updating
// this property, unsetting it doesn't remove the log retention policy. To
// remove the retention policy, set the value to `INFINITE`.
//
// This is a legacy API and we strongly recommend you move away from it if you can.
// Instead create a fully customizable log group with `logs.LogGroup` and use the `logGroup` property
// to instruct the Lambda function to send logs to it.
// Migrating from `logRetention` to `logGroup` will cause the name of the log group to change.
// Users and code and referencing the name verbatim will have to adjust.
//
// In AWS CDK code, you can access the log group name directly from the LogGroup construct:
// “`ts
// import * as logs from 'aws-cdk-lib/aws-logs';
//
// declare const myLogGroup: logs.LogGroup;
// myLogGroup.logGroupName;
// “`.
// Default: logs.RetentionDays.INFINITE
//
LogRetention awslogs.RetentionDays `field:"optional" json:"logRetention" yaml:"logRetention"`
// When log retention is specified, a custom resource attempts to create the CloudWatch log group.
//
// These options control the retry policy when interacting with CloudWatch APIs.
//
// This is a legacy API and we strongly recommend you migrate to `logGroup` if you can.
// `logGroup` allows you to create a fully customizable log group and instruct the Lambda function to send logs to it.
// Default: - Default AWS SDK retry options.
//
LogRetentionRetryOptions *awslambda.LogRetentionRetryOptions `field:"optional" json:"logRetentionRetryOptions" yaml:"logRetentionRetryOptions"`
// The IAM role for the Lambda function associated with the custom resource that sets the retention policy.
//
// This is a legacy API and we strongly recommend you migrate to `logGroup` if you can.
// `logGroup` allows you to create a fully customizable log group and instruct the Lambda function to send logs to it.
// Default: - A new role is created.
//
LogRetentionRole awsiam.IRole `field:"optional" json:"logRetentionRole" yaml:"logRetentionRole"`
// The amount of memory, in MB, that is allocated to your Lambda function.
//
// Lambda uses this value to proportionally allocate the amount of CPU
// power. For more information, see Resource Model in the AWS Lambda
// Developer Guide.
// Default: 128.
//
MemorySize *float64 `field:"optional" json:"memorySize" yaml:"memorySize"`
// Specify the configuration of Parameters and Secrets Extension.
// See: https://docs.aws.amazon.com/systems-manager/latest/userguide/ps-integration-lambda-extensions.html
//
// Default: - No Parameters and Secrets Extension.
//
ParamsAndSecrets awslambda.ParamsAndSecretsLayerVersion `field:"optional" json:"paramsAndSecrets" yaml:"paramsAndSecrets"`
// Enable profiling.
// See: https://docs.aws.amazon.com/codeguru/latest/profiler-ug/setting-up-lambda.html
//
// Default: - No profiling.
//
Profiling *bool `field:"optional" json:"profiling" yaml:"profiling"`
// Profiling Group.
// See: https://docs.aws.amazon.com/codeguru/latest/profiler-ug/setting-up-lambda.html
//
// Default: - A new profiling group will be created if `profiling` is set.
//
ProfilingGroup awscodeguruprofiler.IProfilingGroup `field:"optional" json:"profilingGroup" yaml:"profilingGroup"`
// The maximum of concurrent executions you want to reserve for the function.
// See: https://docs.aws.amazon.com/lambda/latest/dg/concurrent-executions.html
//
// Default: - No specific limit - account limit.
//
ReservedConcurrentExecutions *float64 `field:"optional" json:"reservedConcurrentExecutions" yaml:"reservedConcurrentExecutions"`
// Lambda execution role.
//
// This is the role that will be assumed by the function upon execution.
// It controls the permissions that the function will have. The Role must
// be assumable by the 'lambda.amazonaws.com' service principal.
//
// The default Role automatically has permissions granted for Lambda execution. If you
// provide a Role, you must add the relevant AWS managed policies yourself.
//
// The relevant managed policies are "service-role/AWSLambdaBasicExecutionRole" and
// "service-role/AWSLambdaVPCAccessExecutionRole".
// Default: - A unique role will be generated for this lambda function.
// Both supplied and generated roles can always be changed by calling `addToRolePolicy`.
//
Role awsiam.IRole `field:"optional" json:"role" yaml:"role"`
// Sets the runtime management configuration for a function's version.
// Default: Auto.
//
RuntimeManagementMode awslambda.RuntimeManagementMode `field:"optional" json:"runtimeManagementMode" yaml:"runtimeManagementMode"`
// The list of security groups to associate with the Lambda's network interfaces.
//
// Only used if 'vpc' is supplied.
// Default: - If the function is placed within a VPC and a security group is
// not specified, either by this or securityGroup prop, a dedicated security
// group will be created for this function.
//
SecurityGroups *[]awsec2.ISecurityGroup `field:"optional" json:"securityGroups" yaml:"securityGroups"`
// Enable SnapStart for Lambda Function.
//
// SnapStart is currently supported only for Java 11, 17 runtime.
// Default: - No snapstart.
//
SnapStart awslambda.SnapStartConf `field:"optional" json:"snapStart" yaml:"snapStart"`
// Sets the system log level for the function.
// Default: "INFO".
//
SystemLogLevel *string `field:"optional" json:"systemLogLevel" yaml:"systemLogLevel"`
// The function execution time (in seconds) after which Lambda terminates the function.
//
// Because the execution time affects cost, set this value
// based on the function's expected execution time.
// Default: Duration.seconds(3)
//
Timeout awscdk.Duration `field:"optional" json:"timeout" yaml:"timeout"`
// Enable AWS X-Ray Tracing for Lambda Function.
// Default: Tracing.Disabled
//
Tracing awslambda.Tracing `field:"optional" json:"tracing" yaml:"tracing"`
// VPC network to place Lambda network interfaces.
//
// Specify this if the Lambda function needs to access resources in a VPC.
// This is required when `vpcSubnets` is specified.
// Default: - Function is not placed within a VPC.
//
Vpc awsec2.IVpc `field:"optional" json:"vpc" yaml:"vpc"`
// Where to place the network interfaces within the VPC.
//
// This requires `vpc` to be specified in order for interfaces to actually be
// placed in the subnets. If `vpc` is not specify, this will raise an error.
//
// Note: Internet access for Lambda Functions requires a NAT Gateway, so picking
// public subnets is not allowed (unless `allowPublicSubnet` is set to `true`).
// Default: - the Vpc default strategy if not specified.
//
VpcSubnets *awsec2.SubnetSelection `field:"optional" json:"vpcSubnets" yaml:"vpcSubnets"`
}
Props for StartStateMachineFunction.
type VolumeProps ¶
type VolumeProps struct {
// Name of the volume.
DeviceName *string `field:"required" json:"deviceName" yaml:"deviceName"`
// EBS Block Store Parameters.
//
// By default, the 'kmsKeyId' of EBS volume is set to 'amiEncryptionKey.keyId',
// and 'encrypted' is set to 'true'. If you wish to use a different KMS Key,
// you may do so. However, please make sure that the necessary permissions
// and compliance requirements for the KMS Key are already set up.
Ebs IEbsParameters `field:"required" json:"ebs" yaml:"ebs"`
}
Source Files
¶
- CheckStateMachineStatusFunction.go
- CheckStateMachineStatusFunctionProps.go
- CheckStateMachineStatusFunction__checks.go
- IActionCommands.go
- IActionCommands__checks.go
- IComponentDocument.go
- IComponentDocument__checks.go
- IComponentProps.go
- IComponentProps__checks.go
- IEbsParameters.go
- IEbsParameters__checks.go
- IInputParameter.go
- IInputParameter__checks.go
- IPhases.go
- IPhases__checks.go
- IStepCommands.go
- IStepCommands__checks.go
- ImagePipeline.go
- ImagePipelineProps.go
- ImagePipeline__checks.go
- StartStateMachineFunction.go
- StartStateMachineFunctionProps.go
- StartStateMachineFunction__checks.go
- VolumeProps.go
- main.go