Skip to content

Endpoint ​

The Endpoint resource lets you manage AWS Events Endpoints for routing events to a target service. This resource enables you to define event buses, configurations, and permissions to facilitate seamless event-driven architectures.

Minimal Example ​

Create a basic event endpoint with required properties and a description.

ts
import AWS from "alchemy/aws/control";

const eventEndpoint = await AWS.Events.Endpoint("basicEventEndpoint", {
  EventBuses: [{ Name: "default" }],
  Description: "A basic event endpoint for routing events."
});

Advanced Configuration ​

Configure an endpoint with routing settings and replication configuration.

ts
const advancedEventEndpoint = await AWS.Events.Endpoint("advancedEventEndpoint", {
  EventBuses: [{ Name: "default" }],
  Description: "An advanced event endpoint with specific routing and replication settings.",
  RoutingConfig: {
    FailoverConfig: {
      Primary: {
        Target: {
          Type: "lambda",
          Arn: "arn:aws:lambda:us-east-1:123456789012:function:MyFunction"
        },
        Type: "primary"
      },
      Secondary: {
        Target: {
          Type: "sqs",
          Arn: "arn:aws:sqs:us-east-1:123456789012:MyQueue"
        },
        Type: "secondary"
      }
    }
  },
  ReplicationConfig: {
    RoleArn: "arn:aws:iam::123456789012:role/MyReplicationRole"
  }
});

Custom Role Assignment ​

Assign a specific IAM role to the endpoint for permissions.

ts
const roleAssignedEndpoint = await AWS.Events.Endpoint("roleAssignedEndpoint", {
  EventBuses: [{ Name: "default" }],
  Description: "An endpoint with a custom IAM role for execution.",
  RoleArn: "arn:aws:iam::123456789012:role/MyCustomRole"
});

Adoption of Existing Resource ​

Adopt an existing event endpoint instead of failing if it already exists.

ts
const adoptedEndpoint = await AWS.Events.Endpoint("adoptExistingEndpoint", {
  EventBuses: [{ Name: "default" }],
  Description: "Adopting an existing endpoint if it already exists.",
  adopt: true
});