Documentation ¶
Index ¶
- func LogGroupTargetInput_FromObject(options *LogGroupTargetInputOptions) awsevents.RuleTargetInput
- func NewApiDestination_Override(a ApiDestination, apiDestination awsevents.IApiDestination, ...)
- func NewApiGateway_Override(a ApiGateway, restApi awsapigateway.RestApi, props *ApiGatewayProps)
- func NewAwsApi_Override(a AwsApi, props *AwsApiProps)
- func NewBatchJob_Override(b BatchJob, jobQueueArn *string, jobQueueScope constructs.IConstruct, ...)
- func NewCloudWatchLogGroup_Override(c CloudWatchLogGroup, logGroup awslogs.ILogGroup, props *LogGroupProps)
- func NewCodeBuildProject_Override(c CodeBuildProject, project awscodebuild.IProject, ...)
- func NewCodePipeline_Override(c CodePipeline, pipeline awscodepipeline.IPipeline, ...)
- func NewEcsTask_Override(e EcsTask, props *EcsTaskProps)
- func NewEventBus_Override(e EventBus, eventBus awsevents.IEventBus, props *EventBusProps)
- func NewKinesisFirehoseStream_Override(k KinesisFirehoseStream, stream awskinesisfirehose.CfnDeliveryStream, ...)
- func NewKinesisStream_Override(k KinesisStream, stream awskinesis.IStream, props *KinesisStreamProps)
- func NewLambdaFunction_Override(l LambdaFunction, handler awslambda.IFunction, props *LambdaFunctionProps)
- func NewLogGroupTargetInput_Override(l LogGroupTargetInput)
- func NewSfnStateMachine_Override(s SfnStateMachine, machine awsstepfunctions.IStateMachine, ...)
- func NewSnsTopic_Override(s SnsTopic, topic awssns.ITopic, props *SnsTopicProps)
- func NewSqsQueue_Override(s SqsQueue, queue awssqs.IQueue, props *SqsQueueProps)
- type ApiDestination
- type ApiDestinationProps
- type ApiGateway
- type ApiGatewayProps
- type AwsApi
- type AwsApiInput
- type AwsApiProps
- type BatchJob
- type BatchJobProps
- type CloudWatchLogGroup
- type CodeBuildProject
- type CodeBuildProjectProps
- type CodePipeline
- type CodePipelineTargetOptions
- type ContainerOverride
- type EcsTask
- type EcsTaskProps
- type EventBus
- type EventBusProps
- type KinesisFirehoseStream
- type KinesisFirehoseStreamProps
- type KinesisStream
- type KinesisStreamProps
- type LambdaFunction
- type LambdaFunctionProps
- type LogGroupProps
- type LogGroupTargetInput
- type LogGroupTargetInputOptions
- type SfnStateMachine
- type SfnStateMachineProps
- type SnsTopic
- type SnsTopicProps
- type SqsQueue
- type SqsQueueProps
- type TargetBaseProps
- type TaskEnvironmentVariable
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func LogGroupTargetInput_FromObject ¶ added in v2.29.0
func LogGroupTargetInput_FromObject(options *LogGroupTargetInputOptions) awsevents.RuleTargetInput
Pass a JSON object to the the log group event target.
May contain strings returned by `EventField.from()` to substitute in parts of the matched event.
func NewApiDestination_Override ¶ added in v2.13.0
func NewApiDestination_Override(a ApiDestination, apiDestination awsevents.IApiDestination, props *ApiDestinationProps)
func NewApiGateway_Override ¶
func NewApiGateway_Override(a ApiGateway, restApi awsapigateway.RestApi, props *ApiGatewayProps)
func NewAwsApi_Override ¶
func NewAwsApi_Override(a AwsApi, props *AwsApiProps)
func NewBatchJob_Override ¶
func NewBatchJob_Override(b BatchJob, jobQueueArn *string, jobQueueScope constructs.IConstruct, jobDefinitionArn *string, jobDefinitionScope constructs.IConstruct, props *BatchJobProps)
func NewCloudWatchLogGroup_Override ¶
func NewCloudWatchLogGroup_Override(c CloudWatchLogGroup, logGroup awslogs.ILogGroup, props *LogGroupProps)
func NewCodeBuildProject_Override ¶
func NewCodeBuildProject_Override(c CodeBuildProject, project awscodebuild.IProject, props *CodeBuildProjectProps)
func NewCodePipeline_Override ¶
func NewCodePipeline_Override(c CodePipeline, pipeline awscodepipeline.IPipeline, options *CodePipelineTargetOptions)
func NewEcsTask_Override ¶
func NewEcsTask_Override(e EcsTask, props *EcsTaskProps)
func NewEventBus_Override ¶
func NewEventBus_Override(e EventBus, eventBus awsevents.IEventBus, props *EventBusProps)
func NewKinesisFirehoseStream_Override ¶
func NewKinesisFirehoseStream_Override(k KinesisFirehoseStream, stream awskinesisfirehose.CfnDeliveryStream, props *KinesisFirehoseStreamProps)
func NewKinesisStream_Override ¶
func NewKinesisStream_Override(k KinesisStream, stream awskinesis.IStream, props *KinesisStreamProps)
func NewLambdaFunction_Override ¶
func NewLambdaFunction_Override(l LambdaFunction, handler awslambda.IFunction, props *LambdaFunctionProps)
func NewLogGroupTargetInput_Override ¶ added in v2.29.0
func NewLogGroupTargetInput_Override(l LogGroupTargetInput)
func NewSfnStateMachine_Override ¶
func NewSfnStateMachine_Override(s SfnStateMachine, machine awsstepfunctions.IStateMachine, props *SfnStateMachineProps)
func NewSnsTopic_Override ¶
func NewSnsTopic_Override(s SnsTopic, topic awssns.ITopic, props *SnsTopicProps)
func NewSqsQueue_Override ¶
func NewSqsQueue_Override(s SqsQueue, queue awssqs.IQueue, props *SqsQueueProps)
Types ¶
type ApiDestination ¶ added in v2.13.0
type ApiDestination interface { awsevents.IRuleTarget // Returns a RuleTarget that can be used to trigger API destinations from an EventBridge event. Bind(_rule awsevents.IRule, _id *string) *awsevents.RuleTargetConfig }
Use an API Destination rule target.
Example:
connection := events.NewConnection(this, jsii.String("Connection"), &connectionProps{ authorization: events.authorization.apiKey(jsii.String("x-api-key"), awscdk.SecretValue.secretsManager(jsii.String("ApiSecretName"))), description: jsii.String("Connection with API Key x-api-key"), }) destination := events.NewApiDestination(this, jsii.String("Destination"), &apiDestinationProps{ connection: connection, endpoint: jsii.String("https://example.com"), description: jsii.String("Calling example.com with API key x-api-key"), }) rule := events.NewRule(this, jsii.String("Rule"), &ruleProps{ schedule: events.schedule.rate(cdk.duration.minutes(jsii.Number(1))), targets: []iRuleTarget{ targets.NewApiDestination(destination), }, })
func NewApiDestination ¶ added in v2.13.0
func NewApiDestination(apiDestination awsevents.IApiDestination, props *ApiDestinationProps) ApiDestination
type ApiDestinationProps ¶ added in v2.13.0
type ApiDestinationProps struct { // The SQS queue to be used as deadLetterQueue. Check out the [considerations for using a dead-letter queue](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html#dlq-considerations). // // The events not successfully delivered are automatically retried for a specified period of time, // depending on the retry policy of the target. // If an event is not delivered before all retry attempts are exhausted, it will be sent to the dead letter queue. DeadLetterQueue awssqs.IQueue `field:"optional" json:"deadLetterQueue" yaml:"deadLetterQueue"` // The maximum age of a request that Lambda sends to a function for processing. // // Minimum value of 60. // Maximum value of 86400. MaxEventAge awscdk.Duration `field:"optional" json:"maxEventAge" yaml:"maxEventAge"` // The maximum number of times to retry when the function returns an error. // // Minimum value of 0. // Maximum value of 185. RetryAttempts *float64 `field:"optional" json:"retryAttempts" yaml:"retryAttempts"` // The event to send. Event awsevents.RuleTargetInput `field:"optional" json:"event" yaml:"event"` // The role to assume before invoking the target. EventRole awsiam.IRole `field:"optional" json:"eventRole" yaml:"eventRole"` // Additional headers sent to the API Destination. // // These are merged with headers specified on the Connection, with // the headers on the Connection taking precedence. // // You can only specify secret values on the Connection. HeaderParameters *map[string]*string `field:"optional" json:"headerParameters" yaml:"headerParameters"` // Path parameters to insert in place of path wildcards (`*`). // // If the API destination has a wilcard in the path, these path parts // will be inserted in that place. PathParameterValues *[]*string `field:"optional" json:"pathParameterValues" yaml:"pathParameterValues"` // Additional query string parameters sent to the API Destination. // // These are merged with headers specified on the Connection, with // the headers on the Connection taking precedence. // // You can only specify secret values on the Connection. QueryStringParameters *map[string]*string `field:"optional" json:"queryStringParameters" yaml:"queryStringParameters"` }
Customize the EventBridge Api Destinations Target.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import cdk "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" var queue queue var role role var ruleTargetInput ruleTargetInput apiDestinationProps := &apiDestinationProps{ deadLetterQueue: queue, event: ruleTargetInput, eventRole: role, headerParameters: map[string]*string{ "headerParametersKey": jsii.String("headerParameters"), }, maxEventAge: cdk.duration.minutes(jsii.Number(30)), pathParameterValues: []*string{ jsii.String("pathParameterValues"), }, queryStringParameters: map[string]*string{ "queryStringParametersKey": jsii.String("queryStringParameters"), }, retryAttempts: jsii.Number(123), }
type ApiGateway ¶
type ApiGateway interface { awsevents.IRuleTarget RestApi() awsapigateway.RestApi // Returns a RuleTarget that can be used to trigger this API Gateway REST APIs as a result from an EventBridge event. // See: https://docs.aws.amazon.com/eventbridge/latest/userguide/resource-based-policies-eventbridge.html#sqs-permissions // Bind(rule awsevents.IRule, _id *string) *awsevents.RuleTargetConfig }
Use an API Gateway REST APIs as a target for Amazon EventBridge rules.
Example:
import api "github.com/aws/aws-cdk-go/awscdk" import lambda "github.com/aws/aws-cdk-go/awscdk" rule := events.NewRule(this, jsii.String("Rule"), &ruleProps{ schedule: events.schedule.rate(cdk.duration.minutes(jsii.Number(1))), }) fn := lambda.NewFunction(this, jsii.String("MyFunc"), &functionProps{ handler: jsii.String("index.handler"), runtime: lambda.runtime_NODEJS_14_X(), code: lambda.code.fromInline(jsii.String("exports.handler = e => {}")), }) restApi := api.NewLambdaRestApi(this, jsii.String("MyRestAPI"), &lambdaRestApiProps{ handler: fn, }) dlq := sqs.NewQueue(this, jsii.String("DeadLetterQueue")) rule.addTarget( targets.NewApiGateway(restApi, &apiGatewayProps{ path: jsii.String("/*/test"), method: jsii.String("GET"), stage: jsii.String("prod"), pathParameterValues: []*string{ jsii.String("path-value"), }, headerParameters: map[string]*string{ "Header1": jsii.String("header1"), }, queryStringParameters: map[string]*string{ "QueryParam1": jsii.String("query-param-1"), }, deadLetterQueue: dlq, }))
func NewApiGateway ¶
func NewApiGateway(restApi awsapigateway.RestApi, props *ApiGatewayProps) ApiGateway
type ApiGatewayProps ¶
type ApiGatewayProps struct { // The SQS queue to be used as deadLetterQueue. Check out the [considerations for using a dead-letter queue](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html#dlq-considerations). // // The events not successfully delivered are automatically retried for a specified period of time, // depending on the retry policy of the target. // If an event is not delivered before all retry attempts are exhausted, it will be sent to the dead letter queue. DeadLetterQueue awssqs.IQueue `field:"optional" json:"deadLetterQueue" yaml:"deadLetterQueue"` // The maximum age of a request that Lambda sends to a function for processing. // // Minimum value of 60. // Maximum value of 86400. MaxEventAge awscdk.Duration `field:"optional" json:"maxEventAge" yaml:"maxEventAge"` // The maximum number of times to retry when the function returns an error. // // Minimum value of 0. // Maximum value of 185. RetryAttempts *float64 `field:"optional" json:"retryAttempts" yaml:"retryAttempts"` // The role to assume before invoking the target (i.e., the pipeline) when the given rule is triggered. EventRole awsiam.IRole `field:"optional" json:"eventRole" yaml:"eventRole"` // The headers to be set when requesting API. HeaderParameters *map[string]*string `field:"optional" json:"headerParameters" yaml:"headerParameters"` // The method for api resource invoked by the rule. Method *string `field:"optional" json:"method" yaml:"method"` // The api resource invoked by the rule. // // We can use wildcards('*') to specify the path. In that case, // an equal number of real values must be specified for pathParameterValues. Path *string `field:"optional" json:"path" yaml:"path"` // The path parameter values to be used to populate to wildcards("*") of requesting api path. PathParameterValues *[]*string `field:"optional" json:"pathParameterValues" yaml:"pathParameterValues"` // This will be the post request body send to the API. PostBody awsevents.RuleTargetInput `field:"optional" json:"postBody" yaml:"postBody"` // The query parameters to be set when requesting API. QueryStringParameters *map[string]*string `field:"optional" json:"queryStringParameters" yaml:"queryStringParameters"` // The deploy stage of api gateway invoked by the rule. Stage *string `field:"optional" json:"stage" yaml:"stage"` }
Customize the API Gateway Event Target.
Example:
import api "github.com/aws/aws-cdk-go/awscdk" import lambda "github.com/aws/aws-cdk-go/awscdk" rule := events.NewRule(this, jsii.String("Rule"), &ruleProps{ schedule: events.schedule.rate(cdk.duration.minutes(jsii.Number(1))), }) fn := lambda.NewFunction(this, jsii.String("MyFunc"), &functionProps{ handler: jsii.String("index.handler"), runtime: lambda.runtime_NODEJS_14_X(), code: lambda.code.fromInline(jsii.String("exports.handler = e => {}")), }) restApi := api.NewLambdaRestApi(this, jsii.String("MyRestAPI"), &lambdaRestApiProps{ handler: fn, }) dlq := sqs.NewQueue(this, jsii.String("DeadLetterQueue")) rule.addTarget( targets.NewApiGateway(restApi, &apiGatewayProps{ path: jsii.String("/*/test"), method: jsii.String("GET"), stage: jsii.String("prod"), pathParameterValues: []*string{ jsii.String("path-value"), }, headerParameters: map[string]*string{ "Header1": jsii.String("header1"), }, queryStringParameters: map[string]*string{ "QueryParam1": jsii.String("query-param-1"), }, deadLetterQueue: dlq, }))
type AwsApi ¶
type AwsApi interface { awsevents.IRuleTarget // Returns a RuleTarget that can be used to trigger this AwsApi as a result from an EventBridge event. Bind(rule awsevents.IRule, id *string) *awsevents.RuleTargetConfig }
Use an AWS Lambda function that makes API calls as an event rule target.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" var parameters interface{} var policyStatement policyStatement awsApi := awscdk.Aws_events_targets.NewAwsApi(&awsApiProps{ action: jsii.String("action"), service: jsii.String("service"), // the properties below are optional apiVersion: jsii.String("apiVersion"), catchErrorPattern: jsii.String("catchErrorPattern"), parameters: parameters, policyStatement: policyStatement, })
func NewAwsApi ¶
func NewAwsApi(props *AwsApiProps) AwsApi
type AwsApiInput ¶
type AwsApiInput struct { // The service action to call. // See: https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/index.html // Action *string `field:"required" json:"action" yaml:"action"` // The service to call. // See: https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/index.html // Service *string `field:"required" json:"service" yaml:"service"` // API version to use for the service. // See: https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/locking-api-versions.html // ApiVersion *string `field:"optional" json:"apiVersion" yaml:"apiVersion"` // The regex pattern to use to catch API errors. // // The `code` property of the // `Error` object will be tested against this pattern. If there is a match an // error will not be thrown. CatchErrorPattern *string `field:"optional" json:"catchErrorPattern" yaml:"catchErrorPattern"` // The parameters for the service action. // See: https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/index.html // Parameters interface{} `field:"optional" json:"parameters" yaml:"parameters"` }
Rule target input for an AwsApi target.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" var parameters interface{} awsApiInput := &awsApiInput{ action: jsii.String("action"), service: jsii.String("service"), // the properties below are optional apiVersion: jsii.String("apiVersion"), catchErrorPattern: jsii.String("catchErrorPattern"), parameters: parameters, }
type AwsApiProps ¶
type AwsApiProps struct { // The service action to call. // See: https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/index.html // Action *string `field:"required" json:"action" yaml:"action"` // The service to call. // See: https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/index.html // Service *string `field:"required" json:"service" yaml:"service"` // API version to use for the service. // See: https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/locking-api-versions.html // ApiVersion *string `field:"optional" json:"apiVersion" yaml:"apiVersion"` // The regex pattern to use to catch API errors. // // The `code` property of the // `Error` object will be tested against this pattern. If there is a match an // error will not be thrown. CatchErrorPattern *string `field:"optional" json:"catchErrorPattern" yaml:"catchErrorPattern"` // The parameters for the service action. // See: https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/index.html // Parameters interface{} `field:"optional" json:"parameters" yaml:"parameters"` // The IAM policy statement to allow the API call. // // Use only if // resource restriction is needed. PolicyStatement awsiam.PolicyStatement `field:"optional" json:"policyStatement" yaml:"policyStatement"` }
Properties for an AwsApi target.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" var parameters interface{} var policyStatement policyStatement awsApiProps := &awsApiProps{ action: jsii.String("action"), service: jsii.String("service"), // the properties below are optional apiVersion: jsii.String("apiVersion"), catchErrorPattern: jsii.String("catchErrorPattern"), parameters: parameters, policyStatement: policyStatement, }
type BatchJob ¶
type BatchJob interface { awsevents.IRuleTarget // Returns a RuleTarget that can be used to trigger queue this batch job as a result from an EventBridge event. Bind(rule awsevents.IRule, _id *string) *awsevents.RuleTargetConfig }
Use an AWS Batch Job / Queue as an event rule target.
Most likely the code will look something like this: `new BatchJob(jobQueue.jobQueueArn, jobQueue, jobDefinition.jobDefinitionArn, jobDefinition)`
In the future this API will be improved to be fully typed.
Example:
// Example automatically generated from non-compiling source. May contain errors. import batch "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" jobQueue := batch.NewJobQueue(this, jsii.String("MyQueue"), map[string][]map[string]interface{}{ "computeEnvironments": []map[string]interface{}{ map[string]interface{}{ "computeEnvironment": batch.NewComputeEnvironment(this, jsii.String("ComputeEnvironment"), map[string]*bool{ "managed": jsii.Boolean(false), }), "order": jsii.Number(1), }, }, }) jobDefinition := batch.NewJobDefinition(this, jsii.String("MyJob"), map[string]map[string]repositoryImage{ "container": map[string]repositoryImage{ "image": awscdk.ContainerImage.fromRegistry(jsii.String("test-repo")), }, }) queue := sqs.NewQueue(this, jsii.String("Queue")) rule := events.NewRule(this, jsii.String("Rule"), &ruleProps{ schedule: events.schedule.rate(cdk.duration.hours(jsii.Number(1))), }) rule.addTarget(targets.NewBatchJob(jobQueue.jobQueueArn, jobQueue, jobDefinition.jobDefinitionArn, jobDefinition, &batchJobProps{ deadLetterQueue: queue, event: events.ruleTargetInput.fromObject(map[string]*string{ "SomeParam": jsii.String("SomeValue"), }), retryAttempts: jsii.Number(2), maxEventAge: cdk.*duration.hours(jsii.Number(2)), }))
func NewBatchJob ¶
func NewBatchJob(jobQueueArn *string, jobQueueScope constructs.IConstruct, jobDefinitionArn *string, jobDefinitionScope constructs.IConstruct, props *BatchJobProps) BatchJob
type BatchJobProps ¶
type BatchJobProps struct { // The SQS queue to be used as deadLetterQueue. Check out the [considerations for using a dead-letter queue](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html#dlq-considerations). // // The events not successfully delivered are automatically retried for a specified period of time, // depending on the retry policy of the target. // If an event is not delivered before all retry attempts are exhausted, it will be sent to the dead letter queue. DeadLetterQueue awssqs.IQueue `field:"optional" json:"deadLetterQueue" yaml:"deadLetterQueue"` // The maximum age of a request that Lambda sends to a function for processing. // // Minimum value of 60. // Maximum value of 86400. MaxEventAge awscdk.Duration `field:"optional" json:"maxEventAge" yaml:"maxEventAge"` // The maximum number of times to retry when the function returns an error. // // Minimum value of 0. // Maximum value of 185. RetryAttempts *float64 `field:"optional" json:"retryAttempts" yaml:"retryAttempts"` // The number of times to attempt to retry, if the job fails. // // Valid values are 1–10. Attempts *float64 `field:"optional" json:"attempts" yaml:"attempts"` // The event to send to the Lambda. // // This will be the payload sent to the Lambda Function. Event awsevents.RuleTargetInput `field:"optional" json:"event" yaml:"event"` // The name of the submitted job. JobName *string `field:"optional" json:"jobName" yaml:"jobName"` // The size of the array, if this is an array batch job. // // Valid values are integers between 2 and 10,000. Size *float64 `field:"optional" json:"size" yaml:"size"` }
Customize the Batch Job Event Target.
Example:
// Example automatically generated from non-compiling source. May contain errors. import batch "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" jobQueue := batch.NewJobQueue(this, jsii.String("MyQueue"), map[string][]map[string]interface{}{ "computeEnvironments": []map[string]interface{}{ map[string]interface{}{ "computeEnvironment": batch.NewComputeEnvironment(this, jsii.String("ComputeEnvironment"), map[string]*bool{ "managed": jsii.Boolean(false), }), "order": jsii.Number(1), }, }, }) jobDefinition := batch.NewJobDefinition(this, jsii.String("MyJob"), map[string]map[string]repositoryImage{ "container": map[string]repositoryImage{ "image": awscdk.ContainerImage.fromRegistry(jsii.String("test-repo")), }, }) queue := sqs.NewQueue(this, jsii.String("Queue")) rule := events.NewRule(this, jsii.String("Rule"), &ruleProps{ schedule: events.schedule.rate(cdk.duration.hours(jsii.Number(1))), }) rule.addTarget(targets.NewBatchJob(jobQueue.jobQueueArn, jobQueue, jobDefinition.jobDefinitionArn, jobDefinition, &batchJobProps{ deadLetterQueue: queue, event: events.ruleTargetInput.fromObject(map[string]*string{ "SomeParam": jsii.String("SomeValue"), }), retryAttempts: jsii.Number(2), maxEventAge: cdk.*duration.hours(jsii.Number(2)), }))
type CloudWatchLogGroup ¶
type CloudWatchLogGroup interface { awsevents.IRuleTarget // Returns a RuleTarget that can be used to log an event into a CloudWatch LogGroup. Bind(_rule awsevents.IRule, _id *string) *awsevents.RuleTargetConfig }
Use an AWS CloudWatch LogGroup as an event rule target.
Example:
// Example automatically generated from non-compiling source. May contain errors. import logs "github.com/aws/aws-cdk-go/awscdk" var logGroup logGroup var rule rule rule.addTarget(targets.NewCloudWatchLogGroup(logGroup, &logGroupProps{ logEvent: targets.logGroupTargetInput(map[string]*string{ "message": JSON.stringify(map[string]*string{ "CustomField": jsii.String("CustomValue"), }), }), }))
func NewCloudWatchLogGroup ¶
func NewCloudWatchLogGroup(logGroup awslogs.ILogGroup, props *LogGroupProps) CloudWatchLogGroup
type CodeBuildProject ¶
type CodeBuildProject interface { awsevents.IRuleTarget // Allows using build projects as event rule targets. Bind(_rule awsevents.IRule, _id *string) *awsevents.RuleTargetConfig }
Start a CodeBuild build when an Amazon EventBridge rule is triggered.
Example:
import sns "github.com/aws/aws-cdk-go/awscdk" import targets "github.com/aws/aws-cdk-go/awscdk" var repo repository var project pipelineProject var myTopic topic // starts a CodeBuild project when a commit is pushed to the "main" branch of the repo repo.onCommit(jsii.String("CommitToMain"), &onCommitOptions{ target: targets.NewCodeBuildProject(project), branches: []*string{ jsii.String("main"), }, }) // publishes a message to an Amazon SNS topic when a comment is made on a pull request rule := repo.onCommentOnPullRequest(jsii.String("CommentOnPullRequest"), &onEventOptions{ target: targets.NewSnsTopic(myTopic), })
func NewCodeBuildProject ¶
func NewCodeBuildProject(project awscodebuild.IProject, props *CodeBuildProjectProps) CodeBuildProject
type CodeBuildProjectProps ¶
type CodeBuildProjectProps struct { // The SQS queue to be used as deadLetterQueue. Check out the [considerations for using a dead-letter queue](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html#dlq-considerations). // // The events not successfully delivered are automatically retried for a specified period of time, // depending on the retry policy of the target. // If an event is not delivered before all retry attempts are exhausted, it will be sent to the dead letter queue. DeadLetterQueue awssqs.IQueue `field:"optional" json:"deadLetterQueue" yaml:"deadLetterQueue"` // The maximum age of a request that Lambda sends to a function for processing. // // Minimum value of 60. // Maximum value of 86400. MaxEventAge awscdk.Duration `field:"optional" json:"maxEventAge" yaml:"maxEventAge"` // The maximum number of times to retry when the function returns an error. // // Minimum value of 0. // Maximum value of 185. RetryAttempts *float64 `field:"optional" json:"retryAttempts" yaml:"retryAttempts"` // The event to send to CodeBuild. // // This will be the payload for the StartBuild API. Event awsevents.RuleTargetInput `field:"optional" json:"event" yaml:"event"` // The role to assume before invoking the target (i.e., the codebuild) when the given rule is triggered. EventRole awsiam.IRole `field:"optional" json:"eventRole" yaml:"eventRole"` }
Customize the CodeBuild Event Target.
Example:
import codebuild "github.com/aws/aws-cdk-go/awscdk" import codecommit "github.com/aws/aws-cdk-go/awscdk" repo := codecommit.NewRepository(this, jsii.String("MyRepo"), &repositoryProps{ repositoryName: jsii.String("aws-cdk-codebuild-events"), }) project := codebuild.NewProject(this, jsii.String("MyProject"), &projectProps{ source: codebuild.source.codeCommit(&codeCommitSourceProps{ repository: repo, }), }) deadLetterQueue := sqs.NewQueue(this, jsii.String("DeadLetterQueue")) // trigger a build when a commit is pushed to the repo onCommitRule := repo.onCommit(jsii.String("OnCommit"), &onCommitOptions{ target: targets.NewCodeBuildProject(project, &codeBuildProjectProps{ deadLetterQueue: deadLetterQueue, }), branches: []*string{ jsii.String("master"), }, })
type CodePipeline ¶
type CodePipeline interface { awsevents.IRuleTarget // Returns the rule target specification. // // NOTE: Do not use the various `inputXxx` options. They can be set in a call to `addTarget`. Bind(_rule awsevents.IRule, _id *string) *awsevents.RuleTargetConfig }
Allows the pipeline to be used as an EventBridge rule target.
Example:
// A pipeline being used as a target for a CloudWatch event rule. import targets "github.com/aws/aws-cdk-go/awscdk" import events "github.com/aws/aws-cdk-go/awscdk" var pipeline pipeline // kick off the pipeline every day rule := events.NewRule(this, jsii.String("Daily"), &ruleProps{ schedule: events.schedule.rate(awscdk.Duration.days(jsii.Number(1))), }) rule.addTarget(targets.NewCodePipeline(pipeline))
func NewCodePipeline ¶
func NewCodePipeline(pipeline awscodepipeline.IPipeline, options *CodePipelineTargetOptions) CodePipeline
type CodePipelineTargetOptions ¶
type CodePipelineTargetOptions struct { // The SQS queue to be used as deadLetterQueue. Check out the [considerations for using a dead-letter queue](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html#dlq-considerations). // // The events not successfully delivered are automatically retried for a specified period of time, // depending on the retry policy of the target. // If an event is not delivered before all retry attempts are exhausted, it will be sent to the dead letter queue. DeadLetterQueue awssqs.IQueue `field:"optional" json:"deadLetterQueue" yaml:"deadLetterQueue"` // The maximum age of a request that Lambda sends to a function for processing. // // Minimum value of 60. // Maximum value of 86400. MaxEventAge awscdk.Duration `field:"optional" json:"maxEventAge" yaml:"maxEventAge"` // The maximum number of times to retry when the function returns an error. // // Minimum value of 0. // Maximum value of 185. RetryAttempts *float64 `field:"optional" json:"retryAttempts" yaml:"retryAttempts"` // The role to assume before invoking the target (i.e., the pipeline) when the given rule is triggered. EventRole awsiam.IRole `field:"optional" json:"eventRole" yaml:"eventRole"` }
Customization options when creating a {@link CodePipeline} event target.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import cdk "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" var queue queue var role role codePipelineTargetOptions := &codePipelineTargetOptions{ deadLetterQueue: queue, eventRole: role, maxEventAge: cdk.duration.minutes(jsii.Number(30)), retryAttempts: jsii.Number(123), }
type ContainerOverride ¶
type ContainerOverride struct { // Name of the container inside the task definition. ContainerName *string `field:"required" json:"containerName" yaml:"containerName"` // Command to run inside the container. Command *[]*string `field:"optional" json:"command" yaml:"command"` // The number of cpu units reserved for the container. Cpu *float64 `field:"optional" json:"cpu" yaml:"cpu"` // Variables to set in the container's environment. Environment *[]*TaskEnvironmentVariable `field:"optional" json:"environment" yaml:"environment"` // Hard memory limit on the container. MemoryLimit *float64 `field:"optional" json:"memoryLimit" yaml:"memoryLimit"` // Soft memory limit on the container. MemoryReservation *float64 `field:"optional" json:"memoryReservation" yaml:"memoryReservation"` }
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" containerOverride := &containerOverride{ containerName: jsii.String("containerName"), // the properties below are optional command: []*string{ jsii.String("command"), }, cpu: jsii.Number(123), environment: []taskEnvironmentVariable{ &taskEnvironmentVariable{ name: jsii.String("name"), value: jsii.String("value"), }, }, memoryLimit: jsii.Number(123), memoryReservation: jsii.Number(123), }
type EcsTask ¶
type EcsTask interface { awsevents.IRuleTarget // The security groups associated with the task. // // Only applicable with awsvpc network mode. SecurityGroups() *[]awsec2.ISecurityGroup // Allows using tasks as target of EventBridge events. Bind(_rule awsevents.IRule, _id *string) *awsevents.RuleTargetConfig }
Start a task on an ECS cluster.
Example:
import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" var cluster cluster var taskDefinition taskDefinition var role role ecsTaskTarget := awscdk.NewEcsTask(&ecsTaskProps{ cluster: cluster, taskDefinition: taskDefinition, role: role, }) awscdk.NewRule(this, jsii.String("ScheduleRule"), &ruleProps{ schedule: awscdk.Schedule.cron(&cronOptions{ minute: jsii.String("0"), hour: jsii.String("4"), }), targets: []iRuleTarget{ ecsTaskTarget, }, })
func NewEcsTask ¶
func NewEcsTask(props *EcsTaskProps) EcsTask
type EcsTaskProps ¶
type EcsTaskProps struct { // The SQS queue to be used as deadLetterQueue. Check out the [considerations for using a dead-letter queue](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html#dlq-considerations). // // The events not successfully delivered are automatically retried for a specified period of time, // depending on the retry policy of the target. // If an event is not delivered before all retry attempts are exhausted, it will be sent to the dead letter queue. DeadLetterQueue awssqs.IQueue `field:"optional" json:"deadLetterQueue" yaml:"deadLetterQueue"` // The maximum age of a request that Lambda sends to a function for processing. // // Minimum value of 60. // Maximum value of 86400. MaxEventAge awscdk.Duration `field:"optional" json:"maxEventAge" yaml:"maxEventAge"` // The maximum number of times to retry when the function returns an error. // // Minimum value of 0. // Maximum value of 185. RetryAttempts *float64 `field:"optional" json:"retryAttempts" yaml:"retryAttempts"` // Cluster where service will be deployed. Cluster awsecs.ICluster `field:"required" json:"cluster" yaml:"cluster"` // Task Definition of the task that should be started. TaskDefinition awsecs.ITaskDefinition `field:"required" json:"taskDefinition" yaml:"taskDefinition"` // Container setting overrides. // // Key is the name of the container to override, value is the // values you want to override. ContainerOverrides *[]*ContainerOverride `field:"optional" json:"containerOverrides" yaml:"containerOverrides"` // The platform version on which to run your task. // // Unless you have specific compatibility requirements, you don't need to specify this. // See: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html // PlatformVersion awsecs.FargatePlatformVersion `field:"optional" json:"platformVersion" yaml:"platformVersion"` // Existing IAM role to run the ECS task. Role awsiam.IRole `field:"optional" json:"role" yaml:"role"` // Existing security groups to use for the task's ENIs. // // (Only applicable in case the TaskDefinition is configured for AwsVpc networking). SecurityGroups *[]awsec2.ISecurityGroup `field:"optional" json:"securityGroups" yaml:"securityGroups"` // In what subnets to place the task's ENIs. // // (Only applicable in case the TaskDefinition is configured for AwsVpc networking). SubnetSelection *awsec2.SubnetSelection `field:"optional" json:"subnetSelection" yaml:"subnetSelection"` // How many tasks should be started when this event is triggered. TaskCount *float64 `field:"optional" json:"taskCount" yaml:"taskCount"` }
Properties to define an ECS Event Task.
Example:
import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" var cluster cluster var taskDefinition taskDefinition var role role ecsTaskTarget := awscdk.NewEcsTask(&ecsTaskProps{ cluster: cluster, taskDefinition: taskDefinition, role: role, }) awscdk.NewRule(this, jsii.String("ScheduleRule"), &ruleProps{ schedule: awscdk.Schedule.cron(&cronOptions{ minute: jsii.String("0"), hour: jsii.String("4"), }), targets: []iRuleTarget{ ecsTaskTarget, }, })
type EventBus ¶
type EventBus interface { awsevents.IRuleTarget // Returns the rule target specification. // // NOTE: Do not use the various `inputXxx` options. They can be set in a call to `addTarget`. Bind(rule awsevents.IRule, _id *string) *awsevents.RuleTargetConfig }
Notify an existing Event Bus of an event.
Example:
rule := events.NewRule(this, jsii.String("Rule"), &ruleProps{ schedule: events.schedule.expression(jsii.String("rate(1 minute)")), }) rule.addTarget(targets.NewEventBus(events.eventBus.fromEventBusArn(this, jsii.String("External"), jsii.String("arn:aws:events:eu-west-1:999999999999:event-bus/test-bus"))))
func NewEventBus ¶
func NewEventBus(eventBus awsevents.IEventBus, props *EventBusProps) EventBus
type EventBusProps ¶
type EventBusProps struct { // The SQS queue to be used as deadLetterQueue. Check out the [considerations for using a dead-letter queue](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html#dlq-considerations). // // The events not successfully delivered are automatically retried for a specified period of time, // depending on the retry policy of the target. // If an event is not delivered before all retry attempts are exhausted, it will be sent to the dead letter queue. DeadLetterQueue awssqs.IQueue `field:"optional" json:"deadLetterQueue" yaml:"deadLetterQueue"` // Role to be used to publish the event. Role awsiam.IRole `field:"optional" json:"role" yaml:"role"` }
Configuration properties of an Event Bus event.
Cannot extend TargetBaseProps. Retry policy is not supported for Event bus targets.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" var queue queue var role role eventBusProps := &eventBusProps{ deadLetterQueue: queue, role: role, }
type KinesisFirehoseStream ¶
type KinesisFirehoseStream interface { awsevents.IRuleTarget // Returns a RuleTarget that can be used to trigger this Firehose Stream as a result from a Event Bridge event. Bind(_rule awsevents.IRule, _id *string) *awsevents.RuleTargetConfig }
Customize the Firehose Stream Event Target.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" var cfnDeliveryStream cfnDeliveryStream var ruleTargetInput ruleTargetInput kinesisFirehoseStream := awscdk.Aws_events_targets.NewKinesisFirehoseStream(cfnDeliveryStream, &kinesisFirehoseStreamProps{ message: ruleTargetInput, })
func NewKinesisFirehoseStream ¶
func NewKinesisFirehoseStream(stream awskinesisfirehose.CfnDeliveryStream, props *KinesisFirehoseStreamProps) KinesisFirehoseStream
type KinesisFirehoseStreamProps ¶
type KinesisFirehoseStreamProps struct { // The message to send to the stream. // // Must be a valid JSON text passed to the target stream. Message awsevents.RuleTargetInput `field:"optional" json:"message" yaml:"message"` }
Customize the Firehose Stream Event Target.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" var ruleTargetInput ruleTargetInput kinesisFirehoseStreamProps := &kinesisFirehoseStreamProps{ message: ruleTargetInput, }
type KinesisStream ¶
type KinesisStream interface { awsevents.IRuleTarget // Returns a RuleTarget that can be used to trigger this Kinesis Stream as a result from a CloudWatch event. Bind(_rule awsevents.IRule, _id *string) *awsevents.RuleTargetConfig }
Use a Kinesis Stream as a target for AWS CloudWatch event rules.
Example:
// put to a Kinesis stream every time code is committed // to a CodeCommit repository repository.onCommit(jsii.String("onCommit"), &onCommitOptions{ target: targets.NewKinesisStream(stream), })
func NewKinesisStream ¶
func NewKinesisStream(stream awskinesis.IStream, props *KinesisStreamProps) KinesisStream
type KinesisStreamProps ¶
type KinesisStreamProps struct { // The message to send to the stream. // // Must be a valid JSON text passed to the target stream. Message awsevents.RuleTargetInput `field:"optional" json:"message" yaml:"message"` // Partition Key Path for records sent to this stream. PartitionKeyPath *string `field:"optional" json:"partitionKeyPath" yaml:"partitionKeyPath"` }
Customize the Kinesis Stream Event Target.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" var ruleTargetInput ruleTargetInput kinesisStreamProps := &kinesisStreamProps{ message: ruleTargetInput, partitionKeyPath: jsii.String("partitionKeyPath"), }
type LambdaFunction ¶
type LambdaFunction interface { awsevents.IRuleTarget // Returns a RuleTarget that can be used to trigger this Lambda as a result from an EventBridge event. Bind(rule awsevents.IRule, _id *string) *awsevents.RuleTargetConfig }
Use an AWS Lambda function as an event rule target.
Example:
import lambda "github.com/aws/aws-cdk-go/awscdk" fn := lambda.NewFunction(this, jsii.String("MyFunc"), &functionProps{ runtime: lambda.runtime_NODEJS_14_X(), handler: jsii.String("index.handler"), code: lambda.code.fromInline(jsii.String("exports.handler = handler.toString()")), }) rule := events.NewRule(this, jsii.String("rule"), &ruleProps{ eventPattern: &eventPattern{ source: []*string{ jsii.String("aws.ec2"), }, }, }) queue := sqs.NewQueue(this, jsii.String("Queue")) rule.addTarget(targets.NewLambdaFunction(fn, &lambdaFunctionProps{ deadLetterQueue: queue, // Optional: add a dead letter queue maxEventAge: cdk.duration.hours(jsii.Number(2)), // Optional: set the maxEventAge retry policy retryAttempts: jsii.Number(2), }))
func NewLambdaFunction ¶
func NewLambdaFunction(handler awslambda.IFunction, props *LambdaFunctionProps) LambdaFunction
type LambdaFunctionProps ¶
type LambdaFunctionProps struct { // The SQS queue to be used as deadLetterQueue. Check out the [considerations for using a dead-letter queue](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html#dlq-considerations). // // The events not successfully delivered are automatically retried for a specified period of time, // depending on the retry policy of the target. // If an event is not delivered before all retry attempts are exhausted, it will be sent to the dead letter queue. DeadLetterQueue awssqs.IQueue `field:"optional" json:"deadLetterQueue" yaml:"deadLetterQueue"` // The maximum age of a request that Lambda sends to a function for processing. // // Minimum value of 60. // Maximum value of 86400. MaxEventAge awscdk.Duration `field:"optional" json:"maxEventAge" yaml:"maxEventAge"` // The maximum number of times to retry when the function returns an error. // // Minimum value of 0. // Maximum value of 185. RetryAttempts *float64 `field:"optional" json:"retryAttempts" yaml:"retryAttempts"` // The event to send to the Lambda. // // This will be the payload sent to the Lambda Function. Event awsevents.RuleTargetInput `field:"optional" json:"event" yaml:"event"` }
Customize the Lambda Event Target.
Example:
import lambda "github.com/aws/aws-cdk-go/awscdk" fn := lambda.NewFunction(this, jsii.String("MyFunc"), &functionProps{ runtime: lambda.runtime_NODEJS_14_X(), handler: jsii.String("index.handler"), code: lambda.code.fromInline(jsii.String("exports.handler = handler.toString()")), }) rule := events.NewRule(this, jsii.String("rule"), &ruleProps{ eventPattern: &eventPattern{ source: []*string{ jsii.String("aws.ec2"), }, }, }) queue := sqs.NewQueue(this, jsii.String("Queue")) rule.addTarget(targets.NewLambdaFunction(fn, &lambdaFunctionProps{ deadLetterQueue: queue, // Optional: add a dead letter queue maxEventAge: cdk.duration.hours(jsii.Number(2)), // Optional: set the maxEventAge retry policy retryAttempts: jsii.Number(2), }))
type LogGroupProps ¶
type LogGroupProps struct { // The SQS queue to be used as deadLetterQueue. Check out the [considerations for using a dead-letter queue](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html#dlq-considerations). // // The events not successfully delivered are automatically retried for a specified period of time, // depending on the retry policy of the target. // If an event is not delivered before all retry attempts are exhausted, it will be sent to the dead letter queue. DeadLetterQueue awssqs.IQueue `field:"optional" json:"deadLetterQueue" yaml:"deadLetterQueue"` // The maximum age of a request that Lambda sends to a function for processing. // // Minimum value of 60. // Maximum value of 86400. MaxEventAge awscdk.Duration `field:"optional" json:"maxEventAge" yaml:"maxEventAge"` // The maximum number of times to retry when the function returns an error. // // Minimum value of 0. // Maximum value of 185. RetryAttempts *float64 `field:"optional" json:"retryAttempts" yaml:"retryAttempts"` // The event to send to the CloudWatch LogGroup. // // This will be the event logged into the CloudWatch LogGroup. // Deprecated: use logEvent instead. Event awsevents.RuleTargetInput `field:"optional" json:"event" yaml:"event"` // The event to send to the CloudWatch LogGroup. // // This will be the event logged into the CloudWatch LogGroup. LogEvent LogGroupTargetInput `field:"optional" json:"logEvent" yaml:"logEvent"` }
Customize the CloudWatch LogGroup Event Target.
Example:
// Example automatically generated from non-compiling source. May contain errors. import logs "github.com/aws/aws-cdk-go/awscdk" var logGroup logGroup var rule rule rule.addTarget(targets.NewCloudWatchLogGroup(logGroup, &logGroupProps{ logEvent: targets.logGroupTargetInput(map[string]interface{}{ "timestamp": events.EventField.from(jsii.String("$.time")), "message": events.EventField.from(jsii.String("$.detail-type")), }), }))
type LogGroupTargetInput ¶ added in v2.29.0
type LogGroupTargetInput interface { // Return the input properties for this input object. Bind(rule awsevents.IRule) *awsevents.RuleTargetInputProperties }
The input to send to the CloudWatch LogGroup target.
Example:
// Example automatically generated from non-compiling source. May contain errors. import logs "github.com/aws/aws-cdk-go/awscdk" var logGroup logGroup var rule rule rule.addTarget(targets.NewCloudWatchLogGroup(logGroup, &logGroupProps{ logEvent: targets.logGroupTargetInput(map[string]interface{}{ "timestamp": events.EventField.from(jsii.String("$.time")), "message": events.EventField.from(jsii.String("$.detail-type")), }), }))
type LogGroupTargetInputOptions ¶ added in v2.29.0
type LogGroupTargetInputOptions struct { // The value provided here will be used in the Log "message" field. // // This field must be a string. If an object is passed (e.g. JSON data) // it will not throw an error, but the message that makes it to // CloudWatch logs will be incorrect. This is a likely scenario if // doing something like: EventField.fromPath('$.detail') since in most cases // the `detail` field contains JSON data. Message interface{} `field:"optional" json:"message" yaml:"message"` // The timestamp that will appear in the CloudWatch Logs record. Timestamp interface{} `field:"optional" json:"timestamp" yaml:"timestamp"` }
Options used when creating a target input template.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" var message interface{} var timestamp interface{} logGroupTargetInputOptions := &logGroupTargetInputOptions{ message: message, timestamp: timestamp, }
type SfnStateMachine ¶
type SfnStateMachine interface { awsevents.IRuleTarget Machine() awsstepfunctions.IStateMachine // Returns a properties that are used in an Rule to trigger this State Machine. // See: https://docs.aws.amazon.com/eventbridge/latest/userguide/resource-based-policies-eventbridge.html#sns-permissions // Bind(_rule awsevents.IRule, _id *string) *awsevents.RuleTargetConfig }
Use a StepFunctions state machine as a target for Amazon EventBridge rules.
Example:
import iam "github.com/aws/aws-cdk-go/awscdk" import sfn "github.com/aws/aws-cdk-go/awscdk" rule := events.NewRule(this, jsii.String("Rule"), &ruleProps{ schedule: events.schedule.rate(cdk.duration.minutes(jsii.Number(1))), }) dlq := sqs.NewQueue(this, jsii.String("DeadLetterQueue")) role := iam.NewRole(this, jsii.String("Role"), &roleProps{ assumedBy: iam.NewServicePrincipal(jsii.String("events.amazonaws.com")), }) stateMachine := sfn.NewStateMachine(this, jsii.String("SM"), &stateMachineProps{ definition: sfn.NewWait(this, jsii.String("Hello"), &waitProps{ time: sfn.waitTime.duration(cdk.*duration.seconds(jsii.Number(10))), }), }) rule.addTarget(targets.NewSfnStateMachine(stateMachine, &sfnStateMachineProps{ input: events.ruleTargetInput.fromObject(map[string]*string{ "SomeParam": jsii.String("SomeValue"), }), deadLetterQueue: dlq, role: role, }))
func NewSfnStateMachine ¶
func NewSfnStateMachine(machine awsstepfunctions.IStateMachine, props *SfnStateMachineProps) SfnStateMachine
type SfnStateMachineProps ¶
type SfnStateMachineProps struct { // The SQS queue to be used as deadLetterQueue. Check out the [considerations for using a dead-letter queue](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html#dlq-considerations). // // The events not successfully delivered are automatically retried for a specified period of time, // depending on the retry policy of the target. // If an event is not delivered before all retry attempts are exhausted, it will be sent to the dead letter queue. DeadLetterQueue awssqs.IQueue `field:"optional" json:"deadLetterQueue" yaml:"deadLetterQueue"` // The maximum age of a request that Lambda sends to a function for processing. // // Minimum value of 60. // Maximum value of 86400. MaxEventAge awscdk.Duration `field:"optional" json:"maxEventAge" yaml:"maxEventAge"` // The maximum number of times to retry when the function returns an error. // // Minimum value of 0. // Maximum value of 185. RetryAttempts *float64 `field:"optional" json:"retryAttempts" yaml:"retryAttempts"` // The input to the state machine execution. Input awsevents.RuleTargetInput `field:"optional" json:"input" yaml:"input"` // The IAM role to be assumed to execute the State Machine. Role awsiam.IRole `field:"optional" json:"role" yaml:"role"` }
Customize the Step Functions State Machine target.
Example:
import iam "github.com/aws/aws-cdk-go/awscdk" import sfn "github.com/aws/aws-cdk-go/awscdk" rule := events.NewRule(this, jsii.String("Rule"), &ruleProps{ schedule: events.schedule.rate(cdk.duration.minutes(jsii.Number(1))), }) dlq := sqs.NewQueue(this, jsii.String("DeadLetterQueue")) role := iam.NewRole(this, jsii.String("Role"), &roleProps{ assumedBy: iam.NewServicePrincipal(jsii.String("events.amazonaws.com")), }) stateMachine := sfn.NewStateMachine(this, jsii.String("SM"), &stateMachineProps{ definition: sfn.NewWait(this, jsii.String("Hello"), &waitProps{ time: sfn.waitTime.duration(cdk.*duration.seconds(jsii.Number(10))), }), }) rule.addTarget(targets.NewSfnStateMachine(stateMachine, &sfnStateMachineProps{ input: events.ruleTargetInput.fromObject(map[string]*string{ "SomeParam": jsii.String("SomeValue"), }), deadLetterQueue: dlq, role: role, }))
type SnsTopic ¶
type SnsTopic interface { awsevents.IRuleTarget Topic() awssns.ITopic // Returns a RuleTarget that can be used to trigger this SNS topic as a result from an EventBridge event. // See: https://docs.aws.amazon.com/eventbridge/latest/userguide/resource-based-policies-eventbridge.html#sns-permissions // Bind(_rule awsevents.IRule, _id *string) *awsevents.RuleTargetConfig }
Use an SNS topic as a target for Amazon EventBridge rules.
Example:
// publish to an SNS topic every time code is committed // to a CodeCommit repository repository.onCommit(jsii.String("onCommit"), &onCommitOptions{ target: targets.NewSnsTopic(topic), })
func NewSnsTopic ¶
func NewSnsTopic(topic awssns.ITopic, props *SnsTopicProps) SnsTopic
type SnsTopicProps ¶
type SnsTopicProps struct { // The SQS queue to be used as deadLetterQueue. Check out the [considerations for using a dead-letter queue](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html#dlq-considerations). // // The events not successfully delivered are automatically retried for a specified period of time, // depending on the retry policy of the target. // If an event is not delivered before all retry attempts are exhausted, it will be sent to the dead letter queue. DeadLetterQueue awssqs.IQueue `field:"optional" json:"deadLetterQueue" yaml:"deadLetterQueue"` // The maximum age of a request that Lambda sends to a function for processing. // // Minimum value of 60. // Maximum value of 86400. MaxEventAge awscdk.Duration `field:"optional" json:"maxEventAge" yaml:"maxEventAge"` // The maximum number of times to retry when the function returns an error. // // Minimum value of 0. // Maximum value of 185. RetryAttempts *float64 `field:"optional" json:"retryAttempts" yaml:"retryAttempts"` // The message to send to the topic. Message awsevents.RuleTargetInput `field:"optional" json:"message" yaml:"message"` }
Customize the SNS Topic Event Target.
Example:
var onCommitRule rule var topic topic onCommitRule.addTarget(targets.NewSnsTopic(topic, &snsTopicProps{ message: events.ruleTargetInput.fromText( fmt.Sprintf("A commit was pushed to the repository %v on branch %v", codecommit.referenceEvent.repositoryName, codecommit.*referenceEvent.referenceName)), }))
type SqsQueue ¶
type SqsQueue interface { awsevents.IRuleTarget Queue() awssqs.IQueue // Returns a RuleTarget that can be used to trigger this SQS queue as a result from an EventBridge event. // See: https://docs.aws.amazon.com/eventbridge/latest/userguide/resource-based-policies-eventbridge.html#sqs-permissions // Bind(rule awsevents.IRule, _id *string) *awsevents.RuleTargetConfig }
Use an SQS Queue as a target for Amazon EventBridge rules.
Example:
// publish to an SQS queue every time code is committed // to a CodeCommit repository repository.onCommit(jsii.String("onCommit"), &onCommitOptions{ target: targets.NewSqsQueue(queue), })
func NewSqsQueue ¶
func NewSqsQueue(queue awssqs.IQueue, props *SqsQueueProps) SqsQueue
type SqsQueueProps ¶
type SqsQueueProps struct { // The SQS queue to be used as deadLetterQueue. Check out the [considerations for using a dead-letter queue](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html#dlq-considerations). // // The events not successfully delivered are automatically retried for a specified period of time, // depending on the retry policy of the target. // If an event is not delivered before all retry attempts are exhausted, it will be sent to the dead letter queue. DeadLetterQueue awssqs.IQueue `field:"optional" json:"deadLetterQueue" yaml:"deadLetterQueue"` // The maximum age of a request that Lambda sends to a function for processing. // // Minimum value of 60. // Maximum value of 86400. MaxEventAge awscdk.Duration `field:"optional" json:"maxEventAge" yaml:"maxEventAge"` // The maximum number of times to retry when the function returns an error. // // Minimum value of 0. // Maximum value of 185. RetryAttempts *float64 `field:"optional" json:"retryAttempts" yaml:"retryAttempts"` // The message to send to the queue. // // Must be a valid JSON text passed to the target queue. Message awsevents.RuleTargetInput `field:"optional" json:"message" yaml:"message"` // Message Group ID for messages sent to this queue. // // Required for FIFO queues, leave empty for regular queues. MessageGroupId *string `field:"optional" json:"messageGroupId" yaml:"messageGroupId"` }
Customize the SQS Queue Event Target.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import cdk "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" var queue queue var ruleTargetInput ruleTargetInput sqsQueueProps := &sqsQueueProps{ deadLetterQueue: queue, maxEventAge: cdk.duration.minutes(jsii.Number(30)), message: ruleTargetInput, messageGroupId: jsii.String("messageGroupId"), retryAttempts: jsii.Number(123), }
type TargetBaseProps ¶
type TargetBaseProps struct { // The SQS queue to be used as deadLetterQueue. Check out the [considerations for using a dead-letter queue](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html#dlq-considerations). // // The events not successfully delivered are automatically retried for a specified period of time, // depending on the retry policy of the target. // If an event is not delivered before all retry attempts are exhausted, it will be sent to the dead letter queue. DeadLetterQueue awssqs.IQueue `field:"optional" json:"deadLetterQueue" yaml:"deadLetterQueue"` // The maximum age of a request that Lambda sends to a function for processing. // // Minimum value of 60. // Maximum value of 86400. MaxEventAge awscdk.Duration `field:"optional" json:"maxEventAge" yaml:"maxEventAge"` // The maximum number of times to retry when the function returns an error. // // Minimum value of 0. // Maximum value of 185. RetryAttempts *float64 `field:"optional" json:"retryAttempts" yaml:"retryAttempts"` }
The generic properties for an RuleTarget.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import cdk "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" var queue queue targetBaseProps := &targetBaseProps{ deadLetterQueue: queue, maxEventAge: cdk.duration.minutes(jsii.Number(30)), retryAttempts: jsii.Number(123), }
type TaskEnvironmentVariable ¶
type TaskEnvironmentVariable struct { // Name for the environment variable. // // Exactly one of `name` and `namePath` must be specified. Name *string `field:"required" json:"name" yaml:"name"` // Value of the environment variable. // // Exactly one of `value` and `valuePath` must be specified. Value *string `field:"required" json:"value" yaml:"value"` }
An environment variable to be set in the container run as a task.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" taskEnvironmentVariable := &taskEnvironmentVariable{ name: jsii.String("name"), value: jsii.String("value"), }
Source Files ¶
- awseventstargets.go
- awseventstargets_ApiDestination.go
- awseventstargets_ApiDestinationProps.go
- awseventstargets_ApiDestination__runtime_type_checks.go
- awseventstargets_ApiGateway.go
- awseventstargets_ApiGatewayProps.go
- awseventstargets_ApiGateway__runtime_type_checks.go
- awseventstargets_AwsApi.go
- awseventstargets_AwsApiInput.go
- awseventstargets_AwsApiProps.go
- awseventstargets_AwsApi__runtime_type_checks.go
- awseventstargets_BatchJob.go
- awseventstargets_BatchJobProps.go
- awseventstargets_BatchJob__runtime_type_checks.go
- awseventstargets_CloudWatchLogGroup.go
- awseventstargets_CloudWatchLogGroup__runtime_type_checks.go
- awseventstargets_CodeBuildProject.go
- awseventstargets_CodeBuildProjectProps.go
- awseventstargets_CodeBuildProject__runtime_type_checks.go
- awseventstargets_CodePipeline.go
- awseventstargets_CodePipelineTargetOptions.go
- awseventstargets_CodePipeline__runtime_type_checks.go
- awseventstargets_ContainerOverride.go
- awseventstargets_EcsTask.go
- awseventstargets_EcsTaskProps.go
- awseventstargets_EcsTask__runtime_type_checks.go
- awseventstargets_EventBus.go
- awseventstargets_EventBusProps.go
- awseventstargets_EventBus__runtime_type_checks.go
- awseventstargets_KinesisFirehoseStream.go
- awseventstargets_KinesisFirehoseStreamProps.go
- awseventstargets_KinesisFirehoseStream__runtime_type_checks.go
- awseventstargets_KinesisStream.go
- awseventstargets_KinesisStreamProps.go
- awseventstargets_KinesisStream__runtime_type_checks.go
- awseventstargets_LambdaFunction.go
- awseventstargets_LambdaFunctionProps.go
- awseventstargets_LambdaFunction__runtime_type_checks.go
- awseventstargets_LogGroupProps.go
- awseventstargets_LogGroupTargetInput.go
- awseventstargets_LogGroupTargetInputOptions.go
- awseventstargets_LogGroupTargetInput__runtime_type_checks.go
- awseventstargets_SfnStateMachine.go
- awseventstargets_SfnStateMachineProps.go
- awseventstargets_SfnStateMachine__runtime_type_checks.go
- awseventstargets_SnsTopic.go
- awseventstargets_SnsTopicProps.go
- awseventstargets_SnsTopic__runtime_type_checks.go
- awseventstargets_SqsQueue.go
- awseventstargets_SqsQueueProps.go
- awseventstargets_SqsQueue__runtime_type_checks.go
- awseventstargets_TargetBaseProps.go
- awseventstargets_TaskEnvironmentVariable.go