get Availability Zones
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
A collection of arguments for invoking getAvailabilityZones.
Return
A collection of values returned by getAvailabilityZones.
Parameters
Set to true
to include all Availability Zones and Local Zones regardless of your opt in status.
List of Availability Zone names to exclude.
List of Availability Zone IDs to exclude.
Configuration block(s) for filtering. Detailed below.
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
Builder for com.pulumi.aws.kotlin.inputs.GetAvailabilityZonesPlainArgs.