Subnet Args
Provides an VPC subnet resource.
NOTE: Due to AWS Lambda improved VPC networking changes that began deploying in September 2019, subnets associated with Lambda Functions can take up to 45 minutes to successfully delete.
Example Usage
Basic Usage
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const main = new aws.ec2.Subnet("main", {
vpcId: mainAwsVpc.id,
cidrBlock: "10.0.1.0/24",
tags: {
Name: "Main",
},
});import pulumi
import pulumi_aws as aws
main = aws.ec2.Subnet("main",
vpc_id=main_aws_vpc["id"],
cidr_block="10.0.1.0/24",
tags={
"Name": "Main",
})using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var main = new Aws.Ec2.Subnet("main", new()
{
VpcId = mainAwsVpc.Id,
CidrBlock = "10.0.1.0/24",
Tags =
{
{ "Name", "Main" },
},
});
});package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := ec2.NewSubnet(ctx, "main", &ec2.SubnetArgs{
VpcId: pulumi.Any(mainAwsVpc.Id),
CidrBlock: pulumi.String("10.0.1.0/24"),
Tags: pulumi.StringMap{
"Name": pulumi.String("Main"),
},
})
if err != nil {
return err
}
return nil
})
}package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.ec2.Subnet;
import com.pulumi.aws.ec2.SubnetArgs;
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 main = new Subnet("main", SubnetArgs.builder()
.vpcId(mainAwsVpc.id())
.cidrBlock("10.0.1.0/24")
.tags(Map.of("Name", "Main"))
.build());
}
}resources:
main:
type: aws:ec2:Subnet
properties:
vpcId: ${mainAwsVpc.id}
cidrBlock: 10.0.1.0/24
tags:
Name: MainSubnets In Secondary VPC CIDR Blocks
When managing subnets in one of a VPC's secondary CIDR blocks created using a aws.ec2.VpcIpv4CidrBlockAssociation resource, it is recommended to reference that resource's vpc_id attribute to ensure correct dependency ordering.
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const secondaryCidr = new aws.ec2.VpcIpv4CidrBlockAssociation("secondary_cidr", {
vpcId: main.id,
cidrBlock: "172.20.0.0/16",
});
const inSecondaryCidr = new aws.ec2.Subnet("in_secondary_cidr", {
vpcId: secondaryCidr.vpcId,
cidrBlock: "172.20.0.0/24",
});import pulumi
import pulumi_aws as aws
secondary_cidr = aws.ec2.VpcIpv4CidrBlockAssociation("secondary_cidr",
vpc_id=main["id"],
cidr_block="172.20.0.0/16")
in_secondary_cidr = aws.ec2.Subnet("in_secondary_cidr",
vpc_id=secondary_cidr.vpc_id,
cidr_block="172.20.0.0/24")using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var secondaryCidr = new Aws.Ec2.VpcIpv4CidrBlockAssociation("secondary_cidr", new()
{
VpcId = main.Id,
CidrBlock = "172.20.0.0/16",
});
var inSecondaryCidr = new Aws.Ec2.Subnet("in_secondary_cidr", new()
{
VpcId = secondaryCidr.VpcId,
CidrBlock = "172.20.0.0/24",
});
});package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
secondaryCidr, err := ec2.NewVpcIpv4CidrBlockAssociation(ctx, "secondary_cidr", &ec2.VpcIpv4CidrBlockAssociationArgs{
VpcId: pulumi.Any(main.Id),
CidrBlock: pulumi.String("172.20.0.0/16"),
})
if err != nil {
return err
}
_, err = ec2.NewSubnet(ctx, "in_secondary_cidr", &ec2.SubnetArgs{
VpcId: secondaryCidr.VpcId,
CidrBlock: pulumi.String("172.20.0.0/24"),
})
if err != nil {
return err
}
return nil
})
}package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.ec2.VpcIpv4CidrBlockAssociation;
import com.pulumi.aws.ec2.VpcIpv4CidrBlockAssociationArgs;
import com.pulumi.aws.ec2.Subnet;
import com.pulumi.aws.ec2.SubnetArgs;
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 secondaryCidr = new VpcIpv4CidrBlockAssociation("secondaryCidr", VpcIpv4CidrBlockAssociationArgs.builder()
.vpcId(main.id())
.cidrBlock("172.20.0.0/16")
.build());
var inSecondaryCidr = new Subnet("inSecondaryCidr", SubnetArgs.builder()
.vpcId(secondaryCidr.vpcId())
.cidrBlock("172.20.0.0/24")
.build());
}
}resources:
secondaryCidr:
type: aws:ec2:VpcIpv4CidrBlockAssociation
name: secondary_cidr
properties:
vpcId: ${main.id}
cidrBlock: 172.20.0.0/16
inSecondaryCidr:
type: aws:ec2:Subnet
name: in_secondary_cidr
properties:
vpcId: ${secondaryCidr.vpcId}
cidrBlock: 172.20.0.0/24Import
Using pulumi import, import subnets using the subnet id. For example:
$ pulumi import aws:ec2/subnet:Subnet public_subnet subnet-9d4a7b6cConstructors
Functions
Properties
The type of hostnames to assign to instances in the subnet at launch. For IPv6-only subnets, an instance DNS name must be based on the instance ID. For dual-stack and IPv4-only subnets, you can specify whether DNS names use the instance IPv4 address or the instance ID. Valid values: ip-name, resource-name.