getAvailabilityZones

The Availability Zones data source allows access to the list of AWS Availability Zones which can be accessed by an AWS account within the region configured in the provider. This is different from the aws.getAvailabilityZone (singular) data source, which provides some details about a specific availability zone.

When Local Zones are enabled in a region, by default the API and this data source include both Local Zones and Availability Zones. To return only Availability Zones, see the example section below.

Example Usage

By State

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.AwsFunctions;
import com.pulumi.aws.inputs.GetAvailabilityZonesArgs;
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) {
final var available = AwsFunctions.getAvailabilityZones(GetAvailabilityZonesArgs.builder()
.state("available")
.build());
var primary = new Subnet("primary", SubnetArgs.builder()
.availabilityZone(available.applyValue(getAvailabilityZonesResult -> getAvailabilityZonesResult.names()[0]))
.build());
var secondary = new Subnet("secondary", SubnetArgs.builder()
.availabilityZone(available.applyValue(getAvailabilityZonesResult -> getAvailabilityZonesResult.names()[1]))
.build());
}
}

By Filter

All Local Zones (regardless of opt-in status):

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.AwsFunctions;
import com.pulumi.aws.inputs.GetAvailabilityZonesArgs;
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 example = AwsFunctions.getAvailabilityZones(GetAvailabilityZonesArgs.builder()
.allAvailabilityZones(true)
.filters(GetAvailabilityZonesFilterArgs.builder()
.name("opt-in-status")
.values(
"not-opted-in",
"opted-in")
.build())
.build());
}
}

Return

A collection of values returned by getAvailabilityZones.

Parameters

argument

A collection of arguments for invoking getAvailabilityZones.


suspend fun getAvailabilityZones(allAvailabilityZones: Boolean? = null, excludeNames: List<String>? = null, excludeZoneIds: List<String>? = null, filters: List<GetAvailabilityZonesFilter>? = null, state: String? = null): GetAvailabilityZonesResult

Return

A collection of values returned by getAvailabilityZones.

Parameters

allAvailabilityZones

Set to true to include all Availability Zones and Local Zones regardless of your opt in status.

excludeNames

List of Availability Zone names to exclude.

excludeZoneIds

List of Availability Zone IDs to exclude.

filters

Configuration block(s) for filtering. Detailed below.

state

Allows to filter list of Availability Zones based on their current state. Can be either "available", "information", "impaired" or "unavailable". By default the list includes a complete set of Availability Zones to which the underlying AWS account has access, regardless of their state.

See also


Return

A collection of values returned by getAvailabilityZones.

Parameters

argument

Builder for com.pulumi.aws.kotlin.inputs.GetAvailabilityZonesPlainArgs.

See also