Try AWS Native preview for resources not in the classic version.
aws.ec2.getVpcs
Explore with Pulumi AI
Try AWS Native preview for resources not in the classic version.
This resource can be useful for getting back a list of VPC Ids for a region.
The following example retrieves a list of VPC Ids with a custom tag of service
set to a value of “production”.
Example Usage
The following shows outputting all VPC Ids.
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
export = async () => {
const foo = await aws.ec2.getVpcs({
tags: {
service: "production",
},
});
return {
foo: foo.ids,
};
}
import pulumi
import pulumi_aws as aws
foo = aws.ec2.get_vpcs(tags={
"service": "production",
})
pulumi.export("foo", foo.ids)
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 {
foo, err := ec2.GetVpcs(ctx, &ec2.GetVpcsArgs{
Tags: map[string]interface{}{
"service": "production",
},
}, nil)
if err != nil {
return err
}
ctx.Export("foo", foo.Ids)
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var foo = Aws.Ec2.GetVpcs.Invoke(new()
{
Tags =
{
{ "service", "production" },
},
});
return new Dictionary<string, object?>
{
["foo"] = foo.Apply(getVpcsResult => getVpcsResult.Ids),
};
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.ec2.Ec2Functions;
import com.pulumi.aws.ec2.inputs.GetVpcsArgs;
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 foo = Ec2Functions.getVpcs(GetVpcsArgs.builder()
.tags(Map.of("service", "production"))
.build());
ctx.export("foo", foo.applyValue(getVpcsResult -> getVpcsResult.ids()));
}
}
variables:
foo:
fn::invoke:
Function: aws:ec2:getVpcs
Arguments:
tags:
service: production
outputs:
foo: ${foo.ids}
An example use case would be interpolate the aws.ec2.getVpcs
output into count
of an aws.ec2.FlowLog resource.
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
export = async () => {
const foo = await aws.ec2.getVpcs({});
const fooGetVpc = .map(__index => (await aws.ec2.getVpc({
id: foo.ids[__index],
})));
const testFlowLog: aws.ec2.FlowLog[] = [];
for (const range = {value: 0}; range.value < foo.ids.length; range.value++) {
testFlowLog.push(new aws.ec2.FlowLog(`test_flow_log-${range.value}`, {vpcId: fooGetVpc[range.value].id}));
}
return {
foo: foo.ids,
};
}
import pulumi
import pulumi_aws as aws
foo = aws.ec2.get_vpcs()
foo_get_vpc = [aws.ec2.get_vpc(id=foo.ids[__index]) for __index in range(len(foo.ids))]
test_flow_log = []
for range in [{"value": i} for i in range(0, len(foo.ids))]:
test_flow_log.append(aws.ec2.FlowLog(f"test_flow_log-{range['value']}", vpc_id=foo_get_vpc[range["value"]].id))
pulumi.export("foo", foo.ids)
Coming soon!
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(async() =>
{
var foo = await Aws.Ec2.GetVpcs.InvokeAsync();
var fooGetVpc = ;
var testFlowLog = new List<Aws.Ec2.FlowLog>();
for (var rangeIndex = 0; rangeIndex < foo.Ids.Length; rangeIndex++)
{
var range = new { Value = rangeIndex };
testFlowLog.Add(new Aws.Ec2.FlowLog($"test_flow_log-{range.Value}", new()
{
VpcId = fooGetVpc[range.Value].Id,
}));
}
return new Dictionary<string, object?>
{
["foo"] = foo.Ids,
};
});
Coming soon!
Coming soon!
Using getVpcs
Two invocation forms are available. The direct form accepts plain arguments and either blocks until the result value is available, or returns a Promise-wrapped result. The output form accepts Input-wrapped arguments and returns an Output-wrapped result.
function getVpcs(args: GetVpcsArgs, opts?: InvokeOptions): Promise<GetVpcsResult>
function getVpcsOutput(args: GetVpcsOutputArgs, opts?: InvokeOptions): Output<GetVpcsResult>
def get_vpcs(filters: Optional[Sequence[GetVpcsFilter]] = None,
tags: Optional[Mapping[str, str]] = None,
opts: Optional[InvokeOptions] = None) -> GetVpcsResult
def get_vpcs_output(filters: Optional[pulumi.Input[Sequence[pulumi.Input[GetVpcsFilterArgs]]]] = None,
tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
opts: Optional[InvokeOptions] = None) -> Output[GetVpcsResult]
func GetVpcs(ctx *Context, args *GetVpcsArgs, opts ...InvokeOption) (*GetVpcsResult, error)
func GetVpcsOutput(ctx *Context, args *GetVpcsOutputArgs, opts ...InvokeOption) GetVpcsResultOutput
> Note: This function is named GetVpcs
in the Go SDK.
public static class GetVpcs
{
public static Task<GetVpcsResult> InvokeAsync(GetVpcsArgs args, InvokeOptions? opts = null)
public static Output<GetVpcsResult> Invoke(GetVpcsInvokeArgs args, InvokeOptions? opts = null)
}
public static CompletableFuture<GetVpcsResult> getVpcs(GetVpcsArgs args, InvokeOptions options)
// Output-based functions aren't available in Java yet
fn::invoke:
function: aws:ec2/getVpcs:getVpcs
arguments:
# arguments dictionary
The following arguments are supported:
- Filters
List<Get
Vpcs Filter> Custom filter block as described below.
More complex filters can be expressed using one or more
filter
sub-blocks, which take the following arguments:- Dictionary<string, string>
- Map of tags, each pair of which must exactly match a pair on the desired vpcs.
- Filters
[]Get
Vpcs Filter Custom filter block as described below.
More complex filters can be expressed using one or more
filter
sub-blocks, which take the following arguments:- map[string]string
- Map of tags, each pair of which must exactly match a pair on the desired vpcs.
- filters
List<Get
Vpcs Filter> Custom filter block as described below.
More complex filters can be expressed using one or more
filter
sub-blocks, which take the following arguments:- Map<String,String>
- Map of tags, each pair of which must exactly match a pair on the desired vpcs.
- filters
Get
Vpcs Filter[] Custom filter block as described below.
More complex filters can be expressed using one or more
filter
sub-blocks, which take the following arguments:- {[key: string]: string}
- Map of tags, each pair of which must exactly match a pair on the desired vpcs.
- filters
Sequence[Get
Vpcs Filter] Custom filter block as described below.
More complex filters can be expressed using one or more
filter
sub-blocks, which take the following arguments:- Mapping[str, str]
- Map of tags, each pair of which must exactly match a pair on the desired vpcs.
- filters List<Property Map>
Custom filter block as described below.
More complex filters can be expressed using one or more
filter
sub-blocks, which take the following arguments:- Map<String>
- Map of tags, each pair of which must exactly match a pair on the desired vpcs.
getVpcs Result
The following output properties are available:
- Id string
- The provider-assigned unique ID for this managed resource.
- Ids List<string>
- List of all the VPC Ids found.
- Dictionary<string, string>
- Filters
List<Get
Vpcs Filter>
- Id string
- The provider-assigned unique ID for this managed resource.
- Ids []string
- List of all the VPC Ids found.
- map[string]string
- Filters
[]Get
Vpcs Filter
- id String
- The provider-assigned unique ID for this managed resource.
- ids List<String>
- List of all the VPC Ids found.
- Map<String,String>
- filters
List<Get
Vpcs Filter>
- id string
- The provider-assigned unique ID for this managed resource.
- ids string[]
- List of all the VPC Ids found.
- {[key: string]: string}
- filters
Get
Vpcs Filter[]
- id str
- The provider-assigned unique ID for this managed resource.
- ids Sequence[str]
- List of all the VPC Ids found.
- Mapping[str, str]
- filters
Sequence[Get
Vpcs Filter]
- id String
- The provider-assigned unique ID for this managed resource.
- ids List<String>
- List of all the VPC Ids found.
- Map<String>
- filters List<Property Map>
Supporting Types
GetVpcsFilter
- Name string
- Name of the field to filter by, as defined by the underlying AWS API.
- Values List<string>
- Set of values that are accepted for the given field. A VPC will be selected if any one of the given values matches.
- Name string
- Name of the field to filter by, as defined by the underlying AWS API.
- Values []string
- Set of values that are accepted for the given field. A VPC will be selected if any one of the given values matches.
- name String
- Name of the field to filter by, as defined by the underlying AWS API.
- values List<String>
- Set of values that are accepted for the given field. A VPC will be selected if any one of the given values matches.
- name string
- Name of the field to filter by, as defined by the underlying AWS API.
- values string[]
- Set of values that are accepted for the given field. A VPC will be selected if any one of the given values matches.
- name str
- Name of the field to filter by, as defined by the underlying AWS API.
- values Sequence[str]
- Set of values that are accepted for the given field. A VPC will be selected if any one of the given values matches.
- name String
- Name of the field to filter by, as defined by the underlying AWS API.
- values List<String>
- Set of values that are accepted for the given field. A VPC will be selected if any one of the given values matches.
Package Details
- Repository
- AWS Classic pulumi/pulumi-aws
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
aws
Terraform Provider.
Try AWS Native preview for resources not in the classic version.