Subnet
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
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(aws_vpc.main().id())
.cidrBlock("10.0.1.0/24")
.tags(Map.of("Name", "Main"))
.build());
}
}
Subnets 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.
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(aws_vpc.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());
}
}
Import
Using pulumi import
, import subnets using the subnet id
. For example:
$ pulumi import aws:ec2/subnet:Subnet public_subnet subnet-9d4a7b6c
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
.