Skip to content

FlowVpcInterface ​

The FlowVpcInterface resource allows you to manage AWS MediaConnect FlowVpcInterfaces for your media workflows in a VPC.

Minimal Example ​

Create a basic FlowVpcInterface with required properties and one optional property:

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

const flowVpcInterface = await AWS.MediaConnect.FlowVpcInterface("basicFlowVpcInterface", {
  SubnetId: "subnet-0123456789abcdef0",
  FlowArn: "arn:aws:mediaconnect:us-east-1:123456789012:flow:example-flow",
  SecurityGroupIds: ["sg-0123456789abcdef0"],
  RoleArn: "arn:aws:iam::123456789012:role/example-role",
  Name: "BasicFlowVpcInterface"
});

Advanced Configuration ​

Configure a FlowVpcInterface with additional properties to enable more advanced networking:

ts
const advancedFlowVpcInterface = await AWS.MediaConnect.FlowVpcInterface("advancedFlowVpcInterface", {
  SubnetId: "subnet-0abcdef1234567890",
  FlowArn: "arn:aws:mediaconnect:us-west-2:123456789012:flow:advanced-flow",
  SecurityGroupIds: ["sg-0abcdef1234567890"],
  RoleArn: "arn:aws:iam::123456789012:role/advanced-role",
  Name: "AdvancedFlowVpcInterface",
  adopt: true // Adopts an existing resource if it already exists
});

High Availability Configuration ​

Create a FlowVpcInterface that ensures high availability by using multiple security groups:

ts
const highAvailabilityFlowVpcInterface = await AWS.MediaConnect.FlowVpcInterface("highAvailabilityFlowVpcInterface", {
  SubnetId: "subnet-0123456789abcdef1",
  FlowArn: "arn:aws:mediaconnect:eu-west-1:123456789012:flow:high-availability-flow",
  SecurityGroupIds: [
    "sg-0123456789abcdef1",
    "sg-0123456789abcdef2"
  ],
  RoleArn: "arn:aws:iam::123456789012:role/high-availability-role",
  Name: "HighAvailabilityFlowVpcInterface"
});

Example with IAM Policy ​

Define a FlowVpcInterface where the role has specific permissions defined in an IAM policy:

ts
const flowVpcInterfaceWithPolicy = await AWS.MediaConnect.FlowVpcInterface("flowVpcInterfaceWithPolicy", {
  SubnetId: "subnet-0abcdef1234567892",
  FlowArn: "arn:aws:mediaconnect:us-east-1:123456789012:flow:policy-flow",
  SecurityGroupIds: ["sg-0abcdef1234567893"],
  RoleArn: "arn:aws:iam::123456789012:role/policy-role",
  Name: "FlowVpcInterfaceWithPolicy",
  adopt: true
});

// Example IAM policy JSON
const iamPolicy = {
  Version: "2012-10-17",
  Statement: [
    {
      Effect: "Allow",
      Action: "mediaconnect:*",
      Resource: "*"
    }
  ]
};