Event Rule
Provides an EventBridge Rule resource.
Note: EventBridge was formerly known as CloudWatch Events. The functionality is identical.
Example Usage
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.cloudwatch.EventRule;
import com.pulumi.aws.cloudwatch.EventRuleArgs;
import com.pulumi.aws.sns.Topic;
import com.pulumi.aws.cloudwatch.EventTarget;
import com.pulumi.aws.cloudwatch.EventTargetArgs;
import com.pulumi.aws.iam.IamFunctions;
import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;
import com.pulumi.aws.sns.TopicPolicy;
import com.pulumi.aws.sns.TopicPolicyArgs;
import static com.pulumi.codegen.internal.Serialization.*;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var console = new EventRule("console", EventRuleArgs.builder()
.description("Capture each AWS Console Sign In")
.eventPattern(serializeJson(
jsonObject(
jsonProperty("detail-type", jsonArray("AWS Console Sign In via CloudTrail"))
)))
.build());
var awsLogins = new Topic("awsLogins");
var sns = new EventTarget("sns", EventTargetArgs.builder()
.rule(console.name())
.arn(awsLogins.arn())
.build());
final var snsTopicPolicy = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
.statements(GetPolicyDocumentStatementArgs.builder()
.effect("Allow")
.actions("SNS:Publish")
.principals(GetPolicyDocumentStatementPrincipalArgs.builder()
.type("Service")
.identifiers("events.amazonaws.com")
.build())
.resources(awsLogins.arn())
.build())
.build());
var default_ = new TopicPolicy("default", TopicPolicyArgs.builder()
.arn(awsLogins.arn())
.policy(snsTopicPolicy.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult).applyValue(snsTopicPolicy -> snsTopicPolicy.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult.json())))
.build());
}
}
Content copied to clipboard
Import
EventBridge Rules can be imported using the event_bus_name/rule_name
(if you omit event_bus_name
, the default
event bus will be used), e.g.,
$ pulumi import aws:cloudwatch/eventRule:EventRule console example-event-bus/capture-console-sign-in
Content copied to clipboard
Properties
Link copied to clipboard
Link copied to clipboard
The event pattern described a JSON object. At least one of schedule_expression
or event_pattern
is required. See full documentation of Events and Event Patterns in EventBridge for details.
Link copied to clipboard
The scheduling expression. For example, cron(0 20 * * ? *)
or rate(5 minutes)
. At least one of schedule_expression
or event_pattern
is required. Can only be used on the default event bus. For more information, refer to the AWS documentation Schedule Expressions for Rules.