Google Cloud Classic v7.29.0 published on Wednesday, Jun 26, 2024 by Pulumi
gcp.compute.getGlobalAddress
Explore with Pulumi AI
Get the IP address from a static address reserved for a Global Forwarding Rule which are only used for HTTP load balancing. For more information see the official API documentation.
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const myAddress = gcp.compute.getGlobalAddress({
    name: "foobar",
});
const prod = new gcp.dns.ManagedZone("prod", {
    name: "prod-zone",
    dnsName: "prod.mydomain.com.",
});
const frontend = new gcp.dns.RecordSet("frontend", {
    name: pulumi.interpolate`lb.${prod.dnsName}`,
    type: "A",
    ttl: 300,
    managedZone: prod.name,
    rrdatas: [myAddress.then(myAddress => myAddress.address)],
});
import pulumi
import pulumi_gcp as gcp
my_address = gcp.compute.get_global_address(name="foobar")
prod = gcp.dns.ManagedZone("prod",
    name="prod-zone",
    dns_name="prod.mydomain.com.")
frontend = gcp.dns.RecordSet("frontend",
    name=prod.dns_name.apply(lambda dns_name: f"lb.{dns_name}"),
    type="A",
    ttl=300,
    managed_zone=prod.name,
    rrdatas=[my_address.address])
package main
import (
	"fmt"
	"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute"
	"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/dns"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		myAddress, err := compute.LookupGlobalAddress(ctx, &compute.LookupGlobalAddressArgs{
			Name: "foobar",
		}, nil)
		if err != nil {
			return err
		}
		prod, err := dns.NewManagedZone(ctx, "prod", &dns.ManagedZoneArgs{
			Name:    pulumi.String("prod-zone"),
			DnsName: pulumi.String("prod.mydomain.com."),
		})
		if err != nil {
			return err
		}
		_, err = dns.NewRecordSet(ctx, "frontend", &dns.RecordSetArgs{
			Name: prod.DnsName.ApplyT(func(dnsName string) (string, error) {
				return fmt.Sprintf("lb.%v", dnsName), nil
			}).(pulumi.StringOutput),
			Type:        pulumi.String("A"),
			Ttl:         pulumi.Int(300),
			ManagedZone: prod.Name,
			Rrdatas: pulumi.StringArray{
				pulumi.String(myAddress.Address),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() => 
{
    var myAddress = Gcp.Compute.GetGlobalAddress.Invoke(new()
    {
        Name = "foobar",
    });
    var prod = new Gcp.Dns.ManagedZone("prod", new()
    {
        Name = "prod-zone",
        DnsName = "prod.mydomain.com.",
    });
    var frontend = new Gcp.Dns.RecordSet("frontend", new()
    {
        Name = prod.DnsName.Apply(dnsName => $"lb.{dnsName}"),
        Type = "A",
        Ttl = 300,
        ManagedZone = prod.Name,
        Rrdatas = new[]
        {
            myAddress.Apply(getGlobalAddressResult => getGlobalAddressResult.Address),
        },
    });
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.compute.ComputeFunctions;
import com.pulumi.gcp.compute.inputs.GetGlobalAddressArgs;
import com.pulumi.gcp.dns.ManagedZone;
import com.pulumi.gcp.dns.ManagedZoneArgs;
import com.pulumi.gcp.dns.RecordSet;
import com.pulumi.gcp.dns.RecordSetArgs;
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 myAddress = ComputeFunctions.getGlobalAddress(GetGlobalAddressArgs.builder()
            .name("foobar")
            .build());
        var prod = new ManagedZone("prod", ManagedZoneArgs.builder()
            .name("prod-zone")
            .dnsName("prod.mydomain.com.")
            .build());
        var frontend = new RecordSet("frontend", RecordSetArgs.builder()
            .name(prod.dnsName().applyValue(dnsName -> String.format("lb.%s", dnsName)))
            .type("A")
            .ttl(300)
            .managedZone(prod.name())
            .rrdatas(myAddress.applyValue(getGlobalAddressResult -> getGlobalAddressResult.address()))
            .build());
    }
}
resources:
  frontend:
    type: gcp:dns:RecordSet
    properties:
      name: lb.${prod.dnsName}
      type: A
      ttl: 300
      managedZone: ${prod.name}
      rrdatas:
        - ${myAddress.address}
  prod:
    type: gcp:dns:ManagedZone
    properties:
      name: prod-zone
      dnsName: prod.mydomain.com.
variables:
  myAddress:
    fn::invoke:
      Function: gcp:compute:getGlobalAddress
      Arguments:
        name: foobar
Using getGlobalAddress
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 getGlobalAddress(args: GetGlobalAddressArgs, opts?: InvokeOptions): Promise<GetGlobalAddressResult>
function getGlobalAddressOutput(args: GetGlobalAddressOutputArgs, opts?: InvokeOptions): Output<GetGlobalAddressResult>def get_global_address(name: Optional[str] = None,
                       project: Optional[str] = None,
                       opts: Optional[InvokeOptions] = None) -> GetGlobalAddressResult
def get_global_address_output(name: Optional[pulumi.Input[str]] = None,
                       project: Optional[pulumi.Input[str]] = None,
                       opts: Optional[InvokeOptions] = None) -> Output[GetGlobalAddressResult]func LookupGlobalAddress(ctx *Context, args *LookupGlobalAddressArgs, opts ...InvokeOption) (*LookupGlobalAddressResult, error)
func LookupGlobalAddressOutput(ctx *Context, args *LookupGlobalAddressOutputArgs, opts ...InvokeOption) LookupGlobalAddressResultOutput> Note: This function is named LookupGlobalAddress in the Go SDK.
public static class GetGlobalAddress 
{
    public static Task<GetGlobalAddressResult> InvokeAsync(GetGlobalAddressArgs args, InvokeOptions? opts = null)
    public static Output<GetGlobalAddressResult> Invoke(GetGlobalAddressInvokeArgs args, InvokeOptions? opts = null)
}public static CompletableFuture<GetGlobalAddressResult> getGlobalAddress(GetGlobalAddressArgs args, InvokeOptions options)
// Output-based functions aren't available in Java yet
fn::invoke:
  function: gcp:compute/getGlobalAddress:getGlobalAddress
  arguments:
    # arguments dictionaryThe following arguments are supported:
getGlobalAddress Result
The following output properties are available:
- Address string
 - The IP of the created resource.
 - Address
Type string - Id string
 - The provider-assigned unique ID for this managed resource.
 - Name string
 - Network string
 - Network
Tier string - Prefix
Length int - Project string
 - Purpose string
 - Self
Link string - The URI of the created resource.
 - Status string
 - Indicates if the address is used. Possible values are: RESERVED or IN_USE.
 - Subnetwork string
 - Users string
 
- Address string
 - The IP of the created resource.
 - Address
Type string - Id string
 - The provider-assigned unique ID for this managed resource.
 - Name string
 - Network string
 - Network
Tier string - Prefix
Length int - Project string
 - Purpose string
 - Self
Link string - The URI of the created resource.
 - Status string
 - Indicates if the address is used. Possible values are: RESERVED or IN_USE.
 - Subnetwork string
 - Users string
 
- address String
 - The IP of the created resource.
 - address
Type String - id String
 - The provider-assigned unique ID for this managed resource.
 - name String
 - network String
 - network
Tier String - prefix
Length Integer - project String
 - purpose String
 - self
Link String - The URI of the created resource.
 - status String
 - Indicates if the address is used. Possible values are: RESERVED or IN_USE.
 - subnetwork String
 - users String
 
- address string
 - The IP of the created resource.
 - address
Type string - id string
 - The provider-assigned unique ID for this managed resource.
 - name string
 - network string
 - network
Tier string - prefix
Length number - project string
 - purpose string
 - self
Link string - The URI of the created resource.
 - status string
 - Indicates if the address is used. Possible values are: RESERVED or IN_USE.
 - subnetwork string
 - users string
 
- address str
 - The IP of the created resource.
 - address_
type str - id str
 - The provider-assigned unique ID for this managed resource.
 - name str
 - network str
 - network_
tier str - prefix_
length int - project str
 - purpose str
 - self_
link str - The URI of the created resource.
 - status str
 - Indicates if the address is used. Possible values are: RESERVED or IN_USE.
 - subnetwork str
 - users str
 
- address String
 - The IP of the created resource.
 - address
Type String - id String
 - The provider-assigned unique ID for this managed resource.
 - name String
 - network String
 - network
Tier String - prefix
Length Number - project String
 - purpose String
 - self
Link String - The URI of the created resource.
 - status String
 - Indicates if the address is used. Possible values are: RESERVED or IN_USE.
 - subnetwork String
 - users String
 
Package Details
- Repository
 - Google Cloud (GCP) Classic pulumi/pulumi-gcp
 - License
 - Apache-2.0
 - Notes
 - This Pulumi package is based on the 
google-betaTerraform Provider.