consul.getService
Explore with Pulumi AI
consul.Service provides details about a specific Consul service in a
given datacenter. The results include a list of nodes advertising the specified
service, the node’s IP address, port number, node ID, etc. By specifying a
different datacenter in the query_options it is possible to retrieve a list of
services from a different WAN-attached Consul datacenter.
This data source is different from the consul.getServices (plural) data
source, which provides a summary of the current Consul services.
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as consul from "@pulumi/consul";
import * as example from "@pulumi/example";
import * as std from "@pulumi/std";
const read_consul_dc1 = consul.getService({
    name: "consul",
    datacenter: "dc1",
});
// Set the description to a whitespace delimited list of the node names
const app = new example.index.Resource("app", {description: std.join({
    separator: " ",
    input: nodes,
}).result});
import pulumi
import pulumi_consul as consul
import pulumi_example as example
import pulumi_std as std
read_consul_dc1 = consul.get_service(name="consul",
    datacenter="dc1")
# Set the description to a whitespace delimited list of the node names
app = example.index.Resource("app", description=std.join(separator= ,
    input=nodes).result)
package main
import (
	"github.com/pulumi/pulumi-consul/sdk/v3/go/consul"
	"github.com/pulumi/pulumi-example/sdk/go/example"
	"github.com/pulumi/pulumi-std/sdk/go/std"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := consul.LookupService(ctx, &consul.LookupServiceArgs{
			Name:       "consul",
			Datacenter: pulumi.StringRef("dc1"),
		}, nil)
		if err != nil {
			return err
		}
		// Set the description to a whitespace delimited list of the node names
		_, err = example.NewResource(ctx, "app", &example.ResourceArgs{
			Description: std.Join(ctx, &std.JoinArgs{
				Separator: " ",
				Input:     nodes,
			}, nil).Result,
		})
		if err != nil {
			return err
		}
		return nil
	})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Consul = Pulumi.Consul;
using Example = Pulumi.Example;
using Std = Pulumi.Std;
return await Deployment.RunAsync(() => 
{
    var read_consul_dc1 = Consul.GetService.Invoke(new()
    {
        Name = "consul",
        Datacenter = "dc1",
    });
    // Set the description to a whitespace delimited list of the node names
    var app = new Example.Index.Resource("app", new()
    {
        Description = Std.Join.Invoke(new()
        {
            Separator = " ",
            Input = nodes,
        }).Result,
    });
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.consul.ConsulFunctions;
import com.pulumi.consul.inputs.GetServiceArgs;
import com.pulumi.example.resource;
import com.pulumi.example.resourceArgs;
import com.pulumi.std.StdFunctions;
import com.pulumi.std.inputs.JoinArgs;
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 read-consul-dc1 = ConsulFunctions.getService(GetServiceArgs.builder()
            .name("consul")
            .datacenter("dc1")
            .build());
        // Set the description to a whitespace delimited list of the node names
        var app = new Resource("app", ResourceArgs.builder()
            .description(StdFunctions.join(JoinArgs.builder()
                .separator(" ")
                .input(nodes)
                .build()).result())
            .build());
    }
}
resources:
  # Set the description to a whitespace delimited list of the node names
  app:
    type: example:resource
    properties:
      description:
        fn::invoke:
          function: std:join
          arguments:
            separator: ' '
            input: ${nodes}
          return: result
variables:
  read-consul-dc1:
    fn::invoke:
      function: consul:getService
      arguments:
        name: consul
        datacenter: dc1
Using getService
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 getService(args: GetServiceArgs, opts?: InvokeOptions): Promise<GetServiceResult>
function getServiceOutput(args: GetServiceOutputArgs, opts?: InvokeOptions): Output<GetServiceResult>def get_service(datacenter: Optional[str] = None,
                filter: Optional[str] = None,
                name: Optional[str] = None,
                query_options: Optional[Sequence[GetServiceQueryOption]] = None,
                tag: Optional[str] = None,
                opts: Optional[InvokeOptions] = None) -> GetServiceResult
def get_service_output(datacenter: Optional[pulumi.Input[str]] = None,
                filter: Optional[pulumi.Input[str]] = None,
                name: Optional[pulumi.Input[str]] = None,
                query_options: Optional[pulumi.Input[Sequence[pulumi.Input[GetServiceQueryOptionArgs]]]] = None,
                tag: Optional[pulumi.Input[str]] = None,
                opts: Optional[InvokeOptions] = None) -> Output[GetServiceResult]func LookupService(ctx *Context, args *LookupServiceArgs, opts ...InvokeOption) (*LookupServiceResult, error)
func LookupServiceOutput(ctx *Context, args *LookupServiceOutputArgs, opts ...InvokeOption) LookupServiceResultOutput> Note: This function is named LookupService in the Go SDK.
public static class GetService 
{
    public static Task<GetServiceResult> InvokeAsync(GetServiceArgs args, InvokeOptions? opts = null)
    public static Output<GetServiceResult> Invoke(GetServiceInvokeArgs args, InvokeOptions? opts = null)
}public static CompletableFuture<GetServiceResult> getService(GetServiceArgs args, InvokeOptions options)
public static Output<GetServiceResult> getService(GetServiceArgs args, InvokeOptions options)
fn::invoke:
  function: consul:index/getService:getService
  arguments:
    # arguments dictionaryThe following arguments are supported:
- Name string
- The service name to select.
- Datacenter string
- The Consul datacenter to query. Defaults to the
same value found in query_optionsparameter specified below, or if that is empty, thedatacentervalue found in the Consul agent that this provider is configured to talk to.
- Filter string
- QueryOptions List<GetService Query Option> 
- See below.
- Tag string
- A single tag that can be used to filter the list of nodes to return based on a single matching tag..
- Name string
- The service name to select.
- Datacenter string
- The Consul datacenter to query. Defaults to the
same value found in query_optionsparameter specified below, or if that is empty, thedatacentervalue found in the Consul agent that this provider is configured to talk to.
- Filter string
- QueryOptions []GetService Query Option 
- See below.
- Tag string
- A single tag that can be used to filter the list of nodes to return based on a single matching tag..
- name String
- The service name to select.
- datacenter String
- The Consul datacenter to query. Defaults to the
same value found in query_optionsparameter specified below, or if that is empty, thedatacentervalue found in the Consul agent that this provider is configured to talk to.
- filter String
- queryOptions List<GetService Query Option> 
- See below.
- tag String
- A single tag that can be used to filter the list of nodes to return based on a single matching tag..
- name string
- The service name to select.
- datacenter string
- The Consul datacenter to query. Defaults to the
same value found in query_optionsparameter specified below, or if that is empty, thedatacentervalue found in the Consul agent that this provider is configured to talk to.
- filter string
- queryOptions GetService Query Option[] 
- See below.
- tag string
- A single tag that can be used to filter the list of nodes to return based on a single matching tag..
- name str
- The service name to select.
- datacenter str
- The Consul datacenter to query. Defaults to the
same value found in query_optionsparameter specified below, or if that is empty, thedatacentervalue found in the Consul agent that this provider is configured to talk to.
- filter str
- query_options Sequence[GetService Query Option] 
- See below.
- tag str
- A single tag that can be used to filter the list of nodes to return based on a single matching tag..
- name String
- The service name to select.
- datacenter String
- The Consul datacenter to query. Defaults to the
same value found in query_optionsparameter specified below, or if that is empty, thedatacentervalue found in the Consul agent that this provider is configured to talk to.
- filter String
- queryOptions List<Property Map>
- See below.
- tag String
- A single tag that can be used to filter the list of nodes to return based on a single matching tag..
getService Result
The following output properties are available:
- Id string
- The provider-assigned unique ID for this managed resource.
- Name string
- The name of the service
- Services
List<GetService Service> 
- A list of nodes and details about each endpoint advertising a service. Each element in the list is a map of attributes that correspond to each individual node. The list of per-node attributes is detailed below.
- Datacenter string
- The datacenter the keys are being read from to.
- Filter string
- QueryOptions List<GetService Query Option> 
- Tag string
- The name of the tag used to filter the list of nodes in service.
- Id string
- The provider-assigned unique ID for this managed resource.
- Name string
- The name of the service
- Services
[]GetService Service 
- A list of nodes and details about each endpoint advertising a service. Each element in the list is a map of attributes that correspond to each individual node. The list of per-node attributes is detailed below.
- Datacenter string
- The datacenter the keys are being read from to.
- Filter string
- QueryOptions []GetService Query Option 
- Tag string
- The name of the tag used to filter the list of nodes in service.
- id String
- The provider-assigned unique ID for this managed resource.
- name String
- The name of the service
- services
List<GetService Service> 
- A list of nodes and details about each endpoint advertising a service. Each element in the list is a map of attributes that correspond to each individual node. The list of per-node attributes is detailed below.
- datacenter String
- The datacenter the keys are being read from to.
- filter String
- queryOptions List<GetService Query Option> 
- tag String
- The name of the tag used to filter the list of nodes in service.
- id string
- The provider-assigned unique ID for this managed resource.
- name string
- The name of the service
- services
GetService Service[] 
- A list of nodes and details about each endpoint advertising a service. Each element in the list is a map of attributes that correspond to each individual node. The list of per-node attributes is detailed below.
- datacenter string
- The datacenter the keys are being read from to.
- filter string
- queryOptions GetService Query Option[] 
- tag string
- The name of the tag used to filter the list of nodes in service.
- id str
- The provider-assigned unique ID for this managed resource.
- name str
- The name of the service
- services
Sequence[GetService Service] 
- A list of nodes and details about each endpoint advertising a service. Each element in the list is a map of attributes that correspond to each individual node. The list of per-node attributes is detailed below.
- datacenter str
- The datacenter the keys are being read from to.
- filter str
- query_options Sequence[GetService Query Option] 
- tag str
- The name of the tag used to filter the list of nodes in service.
- id String
- The provider-assigned unique ID for this managed resource.
- name String
- The name of the service
- services List<Property Map>
- A list of nodes and details about each endpoint advertising a service. Each element in the list is a map of attributes that correspond to each individual node. The list of per-node attributes is detailed below.
- datacenter String
- The datacenter the keys are being read from to.
- filter String
- queryOptions List<Property Map>
- tag String
- The name of the tag used to filter the list of nodes in service.
Supporting Types
GetServiceQueryOption   
- AllowStale bool
- When true, the default, allow responses from Consul servers that are followers.
- Datacenter string
- The Consul datacenter to query. Defaults to the
same value found in query_optionsparameter specified below, or if that is empty, thedatacentervalue found in the Consul agent that this provider is configured to talk to.
- Namespace string
- The namespace to lookup the service.
- Near string
- NodeMeta Dictionary<string, string>
- Partition string
- RequireConsistent bool
- When trueforce the client to perform a read on at least quorum servers and verify the result is the same. Defaults tofalse.
- Token string
- Specify the Consul ACL token to use when performing the
request. This defaults to the same API token configured by the consulprovider but may be overridden if necessary.
- WaitIndex int
- Index number used to enable blocking queries.
- WaitTime string
- Max time the client should wait for a blocking query to return.
- AllowStale bool
- When true, the default, allow responses from Consul servers that are followers.
- Datacenter string
- The Consul datacenter to query. Defaults to the
same value found in query_optionsparameter specified below, or if that is empty, thedatacentervalue found in the Consul agent that this provider is configured to talk to.
- Namespace string
- The namespace to lookup the service.
- Near string
- NodeMeta map[string]string
- Partition string
- RequireConsistent bool
- When trueforce the client to perform a read on at least quorum servers and verify the result is the same. Defaults tofalse.
- Token string
- Specify the Consul ACL token to use when performing the
request. This defaults to the same API token configured by the consulprovider but may be overridden if necessary.
- WaitIndex int
- Index number used to enable blocking queries.
- WaitTime string
- Max time the client should wait for a blocking query to return.
- allowStale Boolean
- When true, the default, allow responses from Consul servers that are followers.
- datacenter String
- The Consul datacenter to query. Defaults to the
same value found in query_optionsparameter specified below, or if that is empty, thedatacentervalue found in the Consul agent that this provider is configured to talk to.
- namespace String
- The namespace to lookup the service.
- near String
- nodeMeta Map<String,String>
- partition String
- requireConsistent Boolean
- When trueforce the client to perform a read on at least quorum servers and verify the result is the same. Defaults tofalse.
- token String
- Specify the Consul ACL token to use when performing the
request. This defaults to the same API token configured by the consulprovider but may be overridden if necessary.
- waitIndex Integer
- Index number used to enable blocking queries.
- waitTime String
- Max time the client should wait for a blocking query to return.
- allowStale boolean
- When true, the default, allow responses from Consul servers that are followers.
- datacenter string
- The Consul datacenter to query. Defaults to the
same value found in query_optionsparameter specified below, or if that is empty, thedatacentervalue found in the Consul agent that this provider is configured to talk to.
- namespace string
- The namespace to lookup the service.
- near string
- nodeMeta {[key: string]: string}
- partition string
- requireConsistent boolean
- When trueforce the client to perform a read on at least quorum servers and verify the result is the same. Defaults tofalse.
- token string
- Specify the Consul ACL token to use when performing the
request. This defaults to the same API token configured by the consulprovider but may be overridden if necessary.
- waitIndex number
- Index number used to enable blocking queries.
- waitTime string
- Max time the client should wait for a blocking query to return.
- allow_stale bool
- When true, the default, allow responses from Consul servers that are followers.
- datacenter str
- The Consul datacenter to query. Defaults to the
same value found in query_optionsparameter specified below, or if that is empty, thedatacentervalue found in the Consul agent that this provider is configured to talk to.
- namespace str
- The namespace to lookup the service.
- near str
- node_meta Mapping[str, str]
- partition str
- require_consistent bool
- When trueforce the client to perform a read on at least quorum servers and verify the result is the same. Defaults tofalse.
- token str
- Specify the Consul ACL token to use when performing the
request. This defaults to the same API token configured by the consulprovider but may be overridden if necessary.
- wait_index int
- Index number used to enable blocking queries.
- wait_time str
- Max time the client should wait for a blocking query to return.
- allowStale Boolean
- When true, the default, allow responses from Consul servers that are followers.
- datacenter String
- The Consul datacenter to query. Defaults to the
same value found in query_optionsparameter specified below, or if that is empty, thedatacentervalue found in the Consul agent that this provider is configured to talk to.
- namespace String
- The namespace to lookup the service.
- near String
- nodeMeta Map<String>
- partition String
- requireConsistent Boolean
- When trueforce the client to perform a read on at least quorum servers and verify the result is the same. Defaults tofalse.
- token String
- Specify the Consul ACL token to use when performing the
request. This defaults to the same API token configured by the consulprovider but may be overridden if necessary.
- waitIndex Number
- Index number used to enable blocking queries.
- waitTime String
- Max time the client should wait for a blocking query to return.
GetServiceService  
- Address string
- CreateIndex string
- EnableTag stringOverride 
- Id string
- Meta Dictionary<string, string>
- ModifyIndex string
- Name string
- The service name to select.
- NodeAddress string
- NodeId string
- The Node ID of the Consul agent advertising the service.- node_meta- Node meta data tag information, if any.
- node_name- The name of the Consul node.
- address- The IP address of the service. If the- ServiceAddressin the Consul catalog is empty, this value is automatically populated with the- node_address(the- Addressin the Consul Catalog).
- enable_tag_override- Whether service tags can be overridden on this service.
- id- A unique service instance identifier.
- name- The name of the service.
- port- Port number of the service.
- tagged_addresses- List of explicit LAN and WAN IP addresses for the agent.
- tags- List of tags for the service.
- meta- Service meta data tag information, if any.
 
- NodeMeta Dictionary<string, string>
- NodeName string
- Port string
- TaggedAddresses Dictionary<string, string>
- List<string>
- Address string
- CreateIndex string
- EnableTag stringOverride 
- Id string
- Meta map[string]string
- ModifyIndex string
- Name string
- The service name to select.
- NodeAddress string
- NodeId string
- The Node ID of the Consul agent advertising the service.- node_meta- Node meta data tag information, if any.
- node_name- The name of the Consul node.
- address- The IP address of the service. If the- ServiceAddressin the Consul catalog is empty, this value is automatically populated with the- node_address(the- Addressin the Consul Catalog).
- enable_tag_override- Whether service tags can be overridden on this service.
- id- A unique service instance identifier.
- name- The name of the service.
- port- Port number of the service.
- tagged_addresses- List of explicit LAN and WAN IP addresses for the agent.
- tags- List of tags for the service.
- meta- Service meta data tag information, if any.
 
- NodeMeta map[string]string
- NodeName string
- Port string
- TaggedAddresses map[string]string
- []string
- address String
- createIndex String
- enableTag StringOverride 
- id String
- meta Map<String,String>
- modifyIndex String
- name String
- The service name to select.
- nodeAddress String
- nodeId String
- The Node ID of the Consul agent advertising the service.- node_meta- Node meta data tag information, if any.
- node_name- The name of the Consul node.
- address- The IP address of the service. If the- ServiceAddressin the Consul catalog is empty, this value is automatically populated with the- node_address(the- Addressin the Consul Catalog).
- enable_tag_override- Whether service tags can be overridden on this service.
- id- A unique service instance identifier.
- name- The name of the service.
- port- Port number of the service.
- tagged_addresses- List of explicit LAN and WAN IP addresses for the agent.
- tags- List of tags for the service.
- meta- Service meta data tag information, if any.
 
- nodeMeta Map<String,String>
- nodeName String
- port String
- taggedAddresses Map<String,String>
- List<String>
- address string
- createIndex string
- enableTag stringOverride 
- id string
- meta {[key: string]: string}
- modifyIndex string
- name string
- The service name to select.
- nodeAddress string
- nodeId string
- The Node ID of the Consul agent advertising the service.- node_meta- Node meta data tag information, if any.
- node_name- The name of the Consul node.
- address- The IP address of the service. If the- ServiceAddressin the Consul catalog is empty, this value is automatically populated with the- node_address(the- Addressin the Consul Catalog).
- enable_tag_override- Whether service tags can be overridden on this service.
- id- A unique service instance identifier.
- name- The name of the service.
- port- Port number of the service.
- tagged_addresses- List of explicit LAN and WAN IP addresses for the agent.
- tags- List of tags for the service.
- meta- Service meta data tag information, if any.
 
- nodeMeta {[key: string]: string}
- nodeName string
- port string
- taggedAddresses {[key: string]: string}
- string[]
- address str
- create_index str
- enable_tag_ stroverride 
- id str
- meta Mapping[str, str]
- modify_index str
- name str
- The service name to select.
- node_address str
- node_id str
- The Node ID of the Consul agent advertising the service.- node_meta- Node meta data tag information, if any.
- node_name- The name of the Consul node.
- address- The IP address of the service. If the- ServiceAddressin the Consul catalog is empty, this value is automatically populated with the- node_address(the- Addressin the Consul Catalog).
- enable_tag_override- Whether service tags can be overridden on this service.
- id- A unique service instance identifier.
- name- The name of the service.
- port- Port number of the service.
- tagged_addresses- List of explicit LAN and WAN IP addresses for the agent.
- tags- List of tags for the service.
- meta- Service meta data tag information, if any.
 
- node_meta Mapping[str, str]
- node_name str
- port str
- tagged_addresses Mapping[str, str]
- Sequence[str]
- address String
- createIndex String
- enableTag StringOverride 
- id String
- meta Map<String>
- modifyIndex String
- name String
- The service name to select.
- nodeAddress String
- nodeId String
- The Node ID of the Consul agent advertising the service.- node_meta- Node meta data tag information, if any.
- node_name- The name of the Consul node.
- address- The IP address of the service. If the- ServiceAddressin the Consul catalog is empty, this value is automatically populated with the- node_address(the- Addressin the Consul Catalog).
- enable_tag_override- Whether service tags can be overridden on this service.
- id- A unique service instance identifier.
- name- The name of the service.
- port- Port number of the service.
- tagged_addresses- List of explicit LAN and WAN IP addresses for the agent.
- tags- List of tags for the service.
- meta- Service meta data tag information, if any.
 
- nodeMeta Map<String>
- nodeName String
- port String
- taggedAddresses Map<String>
- List<String>
Package Details
- Repository
- HashiCorp Consul pulumi/pulumi-consul
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the consulTerraform Provider.