Skip to content

Listener ​

The Listener resource lets you manage AWS VpcLattice Listeners that serve as entry points for traffic routing in your application.

Minimal Example ​

Create a basic VpcLattice Listener with required properties and one optional property.

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

const basicListener = await AWS.VpcLattice.Listener("basicListener", {
  DefaultAction: {
    Type: "forward",
    TargetGroupArn: "arn:aws:vpclattice:us-west-2:123456789012:targetgroup/my-target-group"
  },
  Port: 80,
  Protocol: "HTTP"
});

Advanced Configuration ​

Configure a listener with additional options, such as tags and a specific service identifier.

ts
const advancedListener = await AWS.VpcLattice.Listener("advancedListener", {
  DefaultAction: {
    Type: "forward",
    TargetGroupArn: "arn:aws:vpclattice:us-west-2:123456789012:targetgroup/my-advanced-target-group"
  },
  Port: 443,
  Protocol: "HTTPS",
  ServiceIdentifier: "my-service",
  Tags: [
    {
      Key: "Environment",
      Value: "Production"
    },
    {
      Key: "Project",
      Value: "WebApp"
    }
  ]
});

Custom Listener for Multiple Protocols ​

Create a listener that supports multiple protocols by defining different default actions.

ts
const multiProtocolListener = await AWS.VpcLattice.Listener("multiProtocolListener", {
  DefaultAction: {
    Type: "forward",
    TargetGroupArn: "arn:aws:vpclattice:us-west-2:123456789012:targetgroup/my-multi-protocol-target-group"
  },
  Port: 8080,
  Protocol: "HTTP",
  Tags: [
    {
      Key: "Type",
      Value: "Multi-Protocol"
    }
  ]
});

// Add another listener for a different protocol
const httpsListener = await AWS.VpcLattice.Listener("httpsListener", {
  DefaultAction: {
    Type: "forward",
    TargetGroupArn: "arn:aws:vpclattice:us-west-2:123456789012:targetgroup/my-https-target-group"
  },
  Port: 8443,
  Protocol: "HTTPS",
  Tags: [
    {
      Key: "Type",
      Value: "Secure"
    }
  ]
});