get Network Interfaces
DEPRECATED: This datasource has been renamed to alicloud.ecs.getEcsNetworkInterfaces from version 1.123.1. Use this data source to get a list of elastic network interfaces according to the specified filters in an Alibaba Cloud account. For information about elastic network interface and how to use it, see Elastic Network Interface
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as alicloud from "@pulumi/alicloud";
const config = new pulumi.Config();
const name = config.get("name") || "networkInterfacesName";
const vpc = new alicloud.vpc.Network("vpc", {
vpcName: name,
cidrBlock: "192.168.0.0/24",
});
const _default = alicloud.getZones({
availableResourceCreation: "VSwitch",
});
const vswitch = new alicloud.vpc.Switch("vswitch", {
vswitchName: name,
cidrBlock: "192.168.0.0/24",
availabilityZone: _default.then(_default => _default.zones?.[0]?.id),
vpcId: vpc.id,
});
const group = new alicloud.ecs.SecurityGroup("group", {
name: name,
vpcId: vpc.id,
});
const _interface = new alicloud.vpc.NetworkInterface("interface", {
name: `${name}%d`,
vswitchId: vswitch.id,
securityGroups: [group.id],
description: "Basic test",
privateIp: "192.168.0.2",
tags: {
"TF-VER": "0.11.3",
},
});
const instance = new alicloud.ecs.Instance("instance", {
availabilityZone: _default.then(_default => _default.zones?.[0]?.id),
securityGroups: [group.id],
instanceType: "ecs.e3.xlarge",
systemDiskCategory: "cloud_efficiency",
imageId: "centos_7_04_64_20G_alibase_201701015.vhd",
instanceName: name,
vswitchId: vswitch.id,
internetMaxBandwidthOut: 10,
});
const attachment = new alicloud.vpc.NetworkInterfaceAttachment("attachment", {
instanceId: instance.id,
networkInterfaceId: _interface.id,
});
const defaultGetNetworkInterfaces = alicloud.ecs.getNetworkInterfacesOutput({
ids: [attachment.networkInterfaceId],
nameRegex: name,
tags: {
"TF-VER": "0.11.3",
},
vpcId: vpc.id,
vswitchId: vswitch.id,
privateIp: "192.168.0.2",
securityGroupId: group.id,
type: "Secondary",
instanceId: instance.id,
});
export const eni0Name = defaultGetNetworkInterfaces.apply(defaultGetNetworkInterfaces => defaultGetNetworkInterfaces.interfaces?.[0]?.name);
import pulumi
import pulumi_alicloud as alicloud
config = pulumi.Config()
name = config.get("name")
if name is None:
name = "networkInterfacesName"
vpc = alicloud.vpc.Network("vpc",
vpc_name=name,
cidr_block="192.168.0.0/24")
default = alicloud.get_zones(available_resource_creation="VSwitch")
vswitch = alicloud.vpc.Switch("vswitch",
vswitch_name=name,
cidr_block="192.168.0.0/24",
availability_zone=default.zones[0].id,
vpc_id=vpc.id)
group = alicloud.ecs.SecurityGroup("group",
name=name,
vpc_id=vpc.id)
interface = alicloud.vpc.NetworkInterface("interface",
name=f"{name}%d",
vswitch_id=vswitch.id,
security_groups=[group.id],
description="Basic test",
private_ip="192.168.0.2",
tags={
"TF-VER": "0.11.3",
})
instance = alicloud.ecs.Instance("instance",
availability_zone=default.zones[0].id,
security_groups=[group.id],
instance_type="ecs.e3.xlarge",
system_disk_category="cloud_efficiency",
image_id="centos_7_04_64_20G_alibase_201701015.vhd",
instance_name=name,
vswitch_id=vswitch.id,
internet_max_bandwidth_out=10)
attachment = alicloud.vpc.NetworkInterfaceAttachment("attachment",
instance_id=instance.id,
network_interface_id=interface.id)
default_get_network_interfaces = alicloud.ecs.get_network_interfaces_output(ids=[attachment.network_interface_id],
name_regex=name,
tags={
"TF-VER": "0.11.3",
},
vpc_id=vpc.id,
vswitch_id=vswitch.id,
private_ip="192.168.0.2",
security_group_id=group.id,
type="Secondary",
instance_id=instance.id)
pulumi.export("eni0Name", default_get_network_interfaces.interfaces[0].name)
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AliCloud = Pulumi.AliCloud;
return await Deployment.RunAsync(() =>
{
var config = new Config();
var name = config.Get("name") ?? "networkInterfacesName";
var vpc = new AliCloud.Vpc.Network("vpc", new()
{
VpcName = name,
CidrBlock = "192.168.0.0/24",
});
var @default = AliCloud.GetZones.Invoke(new()
{
AvailableResourceCreation = "VSwitch",
});
var vswitch = new AliCloud.Vpc.Switch("vswitch", new()
{
VswitchName = name,
CidrBlock = "192.168.0.0/24",
AvailabilityZone = @default.Apply(@default => @default.Apply(getZonesResult => getZonesResult.Zones[0]?.Id)),
VpcId = vpc.Id,
});
var @group = new AliCloud.Ecs.SecurityGroup("group", new()
{
Name = name,
VpcId = vpc.Id,
});
var @interface = new AliCloud.Vpc.NetworkInterface("interface", new()
{
Name = $"{name}%d",
VswitchId = vswitch.Id,
SecurityGroups = new[]
{
@group.Id,
},
Description = "Basic test",
PrivateIp = "192.168.0.2",
Tags =
{
{ "TF-VER", "0.11.3" },
},
});
var instance = new AliCloud.Ecs.Instance("instance", new()
{
AvailabilityZone = @default.Apply(@default => @default.Apply(getZonesResult => getZonesResult.Zones[0]?.Id)),
SecurityGroups = new[]
{
@group.Id,
},
InstanceType = "ecs.e3.xlarge",
SystemDiskCategory = "cloud_efficiency",
ImageId = "centos_7_04_64_20G_alibase_201701015.vhd",
InstanceName = name,
VswitchId = vswitch.Id,
InternetMaxBandwidthOut = 10,
});
var attachment = new AliCloud.Vpc.NetworkInterfaceAttachment("attachment", new()
{
InstanceId = instance.Id,
NetworkInterfaceId = @interface.Id,
});
var defaultGetNetworkInterfaces = AliCloud.Ecs.GetNetworkInterfaces.Invoke(new()
{
Ids = new[]
{
attachment.NetworkInterfaceId,
},
NameRegex = name,
Tags =
{
{ "TF-VER", "0.11.3" },
},
VpcId = vpc.Id,
VswitchId = vswitch.Id,
PrivateIp = "192.168.0.2",
SecurityGroupId = @group.Id,
Type = "Secondary",
InstanceId = instance.Id,
});
return new Dictionary<string, object?>
{
["eni0Name"] = defaultGetNetworkInterfaces.Apply(getNetworkInterfacesResult => getNetworkInterfacesResult.Interfaces[0]?.Name),
};
});
package main
import (
"fmt"
"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud"
"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs"
"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
cfg := config.New(ctx, "")
name := "networkInterfacesName";
if param := cfg.Get("name"); param != ""{
name = param
}
vpc, err := vpc.NewNetwork(ctx, "vpc", &vpc.NetworkArgs{
VpcName: pulumi.String(name),
CidrBlock: pulumi.String("192.168.0.0/24"),
})
if err != nil {
return err
}
_default, err := alicloud.GetZones(ctx, &alicloud.GetZonesArgs{
AvailableResourceCreation: pulumi.StringRef("VSwitch"),
}, nil);
if err != nil {
return err
}
vswitch, err := vpc.NewSwitch(ctx, "vswitch", &vpc.SwitchArgs{
VswitchName: pulumi.String(name),
CidrBlock: pulumi.String("192.168.0.0/24"),
AvailabilityZone: pulumi.String(_default.Zones[0].Id),
VpcId: vpc.ID(),
})
if err != nil {
return err
}
group, err := ecs.NewSecurityGroup(ctx, "group", &ecs.SecurityGroupArgs{
Name: pulumi.String(name),
VpcId: vpc.ID(),
})
if err != nil {
return err
}
interface, err := vpc.NewNetworkInterface(ctx, "interface", &vpc.NetworkInterfaceArgs{
Name: pulumi.Sprintf("%v%v", name, "%d"),
VswitchId: vswitch.ID(),
SecurityGroups: pulumi.StringArray{
group.ID(),
},
Description: pulumi.String("Basic test"),
PrivateIp: pulumi.String("192.168.0.2"),
Tags: pulumi.StringMap{
"TF-VER": pulumi.String("0.11.3"),
},
})
if err != nil {
return err
}
instance, err := ecs.NewInstance(ctx, "instance", &ecs.InstanceArgs{
AvailabilityZone: pulumi.String(_default.Zones[0].Id),
SecurityGroups: pulumi.StringArray{
group.ID(),
},
InstanceType: pulumi.String("ecs.e3.xlarge"),
SystemDiskCategory: pulumi.String("cloud_efficiency"),
ImageId: pulumi.String("centos_7_04_64_20G_alibase_201701015.vhd"),
InstanceName: pulumi.String(name),
VswitchId: vswitch.ID(),
InternetMaxBandwidthOut: pulumi.Int(10),
})
if err != nil {
return err
}
attachment, err := vpc.NewNetworkInterfaceAttachment(ctx, "attachment", &vpc.NetworkInterfaceAttachmentArgs{
InstanceId: instance.ID(),
NetworkInterfaceId: interface.ID(),
})
if err != nil {
return err
}
defaultGetNetworkInterfaces := ecs.GetNetworkInterfacesOutput(ctx, ecs.GetNetworkInterfacesOutputArgs{
Ids: pulumi.StringArray{
attachment.NetworkInterfaceId,
},
NameRegex: pulumi.String(name),
Tags: pulumi.StringMap{
"TF-VER": pulumi.String("0.11.3"),
},
VpcId: vpc.ID(),
VswitchId: vswitch.ID(),
PrivateIp: pulumi.String("192.168.0.2"),
SecurityGroupId: group.ID(),
Type: pulumi.String("Secondary"),
InstanceId: instance.ID(),
}, nil);
ctx.Export("eni0Name", defaultGetNetworkInterfaces.ApplyT(func(defaultGetNetworkInterfaces ecs.GetNetworkInterfacesResult) (*string, error) {
return &defaultGetNetworkInterfaces.Interfaces[0].Name, nil
}).(pulumi.StringPtrOutput))
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.alicloud.vpc.Network;
import com.pulumi.alicloud.vpc.NetworkArgs;
import com.pulumi.alicloud.AlicloudFunctions;
import com.pulumi.alicloud.inputs.GetZonesArgs;
import com.pulumi.alicloud.vpc.Switch;
import com.pulumi.alicloud.vpc.SwitchArgs;
import com.pulumi.alicloud.ecs.SecurityGroup;
import com.pulumi.alicloud.ecs.SecurityGroupArgs;
import com.pulumi.alicloud.vpc.NetworkInterface;
import com.pulumi.alicloud.vpc.NetworkInterfaceArgs;
import com.pulumi.alicloud.ecs.Instance;
import com.pulumi.alicloud.ecs.InstanceArgs;
import com.pulumi.alicloud.vpc.NetworkInterfaceAttachment;
import com.pulumi.alicloud.vpc.NetworkInterfaceAttachmentArgs;
import com.pulumi.alicloud.ecs.EcsFunctions;
import com.pulumi.alicloud.ecs.inputs.GetNetworkInterfacesArgs;
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) {
final var config = ctx.config();
final var name = config.get("name").orElse("networkInterfacesName");
var vpc = new Network("vpc", NetworkArgs.builder()
.vpcName(name)
.cidrBlock("192.168.0.0/24")
.build());
final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()
.availableResourceCreation("VSwitch")
.build());
var vswitch = new Switch("vswitch", SwitchArgs.builder()
.vswitchName(name)
.cidrBlock("192.168.0.0/24")
.availabilityZone(default_.zones()[0].id())
.vpcId(vpc.id())
.build());
var group = new SecurityGroup("group", SecurityGroupArgs.builder()
.name(name)
.vpcId(vpc.id())
.build());
var interface_ = new NetworkInterface("interface", NetworkInterfaceArgs.builder()
.name(String.format("%s%d", name))
.vswitchId(vswitch.id())
.securityGroups(group.id())
.description("Basic test")
.privateIp("192.168.0.2")
.tags(Map.of("TF-VER", "0.11.3"))
.build());
var instance = new Instance("instance", InstanceArgs.builder()
.availabilityZone(default_.zones()[0].id())
.securityGroups(group.id())
.instanceType("ecs.e3.xlarge")
.systemDiskCategory("cloud_efficiency")
.imageId("centos_7_04_64_20G_alibase_201701015.vhd")
.instanceName(name)
.vswitchId(vswitch.id())
.internetMaxBandwidthOut(10)
.build());
var attachment = new NetworkInterfaceAttachment("attachment", NetworkInterfaceAttachmentArgs.builder()
.instanceId(instance.id())
.networkInterfaceId(interface_.id())
.build());
final var defaultGetNetworkInterfaces = EcsFunctions.getNetworkInterfaces(GetNetworkInterfacesArgs.builder()
.ids(attachment.networkInterfaceId())
.nameRegex(name)
.tags(Map.of("TF-VER", "0.11.3"))
.vpcId(vpc.id())
.vswitchId(vswitch.id())
.privateIp("192.168.0.2")
.securityGroupId(group.id())
.type("Secondary")
.instanceId(instance.id())
.build());
ctx.export("eni0Name", defaultGetNetworkInterfaces.applyValue(_defaultGetNetworkInterfaces -> _defaultGetNetworkInterfaces.interfaces()[0].name()));
}
}
configuration:
name:
type: string
default: networkInterfacesName
resources:
vpc:
type: alicloud:vpc:Network
properties:
vpcName: ${name}
cidrBlock: 192.168.0.0/24
vswitch:
type: alicloud:vpc:Switch
properties:
vswitchName: ${name}
cidrBlock: 192.168.0.0/24
availabilityZone: ${default.zones[0].id}
vpcId: ${vpc.id}
group:
type: alicloud:ecs:SecurityGroup
properties:
name: ${name}
vpcId: ${vpc.id}
interface:
type: alicloud:vpc:NetworkInterface
properties:
name: ${name}%d
vswitchId: ${vswitch.id}
securityGroups:
- ${group.id}
description: Basic test
privateIp: 192.168.0.2
tags:
TF-VER: 0.11.3
instance:
type: alicloud:ecs:Instance
properties:
availabilityZone: ${default.zones[0].id}
securityGroups:
- ${group.id}
instanceType: ecs.e3.xlarge
systemDiskCategory: cloud_efficiency
imageId: centos_7_04_64_20G_alibase_201701015.vhd
instanceName: ${name}
vswitchId: ${vswitch.id}
internetMaxBandwidthOut: 10
attachment:
type: alicloud:vpc:NetworkInterfaceAttachment
properties:
instanceId: ${instance.id}
networkInterfaceId: ${interface.id}
variables:
default:
fn::invoke:
function: alicloud:getZones
arguments:
availableResourceCreation: VSwitch
defaultGetNetworkInterfaces:
fn::invoke:
function: alicloud:ecs:getNetworkInterfaces
arguments:
ids:
- ${attachment.networkInterfaceId}
nameRegex: ${name}
tags:
TF-VER: 0.11.3
vpcId: ${vpc.id}
vswitchId: ${vswitch.id}
privateIp: 192.168.0.2
securityGroupId: ${group.id}
type: Secondary
instanceId: ${instance.id}
outputs:
eni0Name: ${defaultGetNetworkInterfaces.interfaces[0].name}
Argument Reference
The following arguments are supported:
ids
- (Optional) A list of ENI IDs.name_regex
- (Optional) A regex string to filter results by ENI name.vpc_id
- (Optional) The VPC ID linked to ENIs.vswitch_id
- (Optional) The vSwitch ID linked to ENIs.private_ip
- (Optional) The primary private IP address of the ENI.security_group_id
- (Optional) The security group ID linked to ENIs.name
- (Optional) The name of the ENIs.type
- (Optional) The type of ENIs, Only support for "Primary" or "Secondary".instance_id
- (Optional) The ECS instance ID that the ENI is attached to.tags
- (Optional) A map of tags assigned to ENIs.output_file
- (Optional) The name of output file that saves the filter results.resource_group_id
- (Optional, ForceNew, Available in 1.57.0+) The Id of resource group which the network interface belongs.
Return
A collection of values returned by getNetworkInterfaces.
Parameters
A collection of arguments for invoking getNetworkInterfaces.
Return
A collection of values returned by getNetworkInterfaces.
Parameters
ID of the instance that the ENI is attached to.
Name of the ENI.
Primary private IP of the ENI.
The Id of resource group.
Current status of the ENI.
A map of tags assigned to the ENI.
ID of the VPC that the ENI belongs to.
ID of the vSwitch that the ENI is linked to.
See also
Return
A collection of values returned by getNetworkInterfaces.
Parameters
Builder for com.pulumi.alicloud.ecs.kotlin.inputs.GetNetworkInterfacesPlainArgs.