Consul v3.12.4 published on Wednesday, Feb 12, 2025 by Pulumi
consul.getKeys
Explore with Pulumi AI
The consul.Keys datasource reads values from the Consul key/value store. This is a powerful way to dynamically set values in templates.
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
import * as consul from "@pulumi/consul";
const app = consul.getKeys({
    datacenter: "nyc1",
    keys: [{
        name: "ami",
        path: "service/app/launch_ami",
        "default": "ami-1234",
    }],
});
// Start our instance with the dynamic ami value
const appInstance = new aws.index.Instance("app", {ami: app["var"]?.ami});
import pulumi
import pulumi_aws as aws
import pulumi_consul as consul
app = consul.get_keys(datacenter="nyc1",
    keys=[{
        "name": "ami",
        "path": "service/app/launch_ami",
        "default": "ami-1234",
    }])
# Start our instance with the dynamic ami value
app_instance = aws.index.Instance("app", ami=app.var.ami)
package main
import (
	"github.com/pulumi/pulumi-aws/sdk/v4/go/aws"
	"github.com/pulumi/pulumi-consul/sdk/v3/go/consul"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		app, err := consul.LookupKeys(ctx, &consul.LookupKeysArgs{
			Datacenter: pulumi.StringRef("nyc1"),
			Keys: []consul.GetKeysKey{
				{
					Name:    "ami",
					Path:    "service/app/launch_ami",
					Default: pulumi.StringRef("ami-1234"),
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		// Start our instance with the dynamic ami value
		_, err = aws.NewInstance(ctx, "app", &aws.InstanceArgs{
			Ami: app.Var.Ami,
		})
		if err != nil {
			return err
		}
		return nil
	})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
using Consul = Pulumi.Consul;
return await Deployment.RunAsync(() => 
{
    var app = Consul.GetKeys.Invoke(new()
    {
        Datacenter = "nyc1",
        Keys = new[]
        {
            new Consul.Inputs.GetKeysKeyInputArgs
            {
                Name = "ami",
                Path = "service/app/launch_ami",
                Default = "ami-1234",
            },
        },
    });
    // Start our instance with the dynamic ami value
    var appInstance = new Aws.Index.Instance("app", new()
    {
        Ami = app.Apply(getKeysResult => getKeysResult.Var?.Ami),
    });
});
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.GetKeysArgs;
import com.pulumi.aws.instance;
import com.pulumi.aws.InstanceArgs;
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 app = ConsulFunctions.getKeys(GetKeysArgs.builder()
            .datacenter("nyc1")
            .keys(GetKeysKeyArgs.builder()
                .name("ami")
                .path("service/app/launch_ami")
                .default_("ami-1234")
                .build())
            .build());
        // Start our instance with the dynamic ami value
        var appInstance = new Instance("appInstance", InstanceArgs.builder()
            .ami(app.applyValue(getKeysResult -> getKeysResult.var().ami()))
            .build());
    }
}
resources:
  # Start our instance with the dynamic ami value
  appInstance:
    type: aws:instance
    name: app
    properties:
      ami: ${app.var.ami}
variables:
  app:
    fn::invoke:
      function: consul:getKeys
      arguments:
        datacenter: nyc1
        keys:
          - name: ami
            path: service/app/launch_ami
            default: ami-1234
Using getKeys
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 getKeys(args: GetKeysArgs, opts?: InvokeOptions): Promise<GetKeysResult>
function getKeysOutput(args: GetKeysOutputArgs, opts?: InvokeOptions): Output<GetKeysResult>def get_keys(datacenter: Optional[str] = None,
             error_on_missing_keys: Optional[bool] = None,
             keys: Optional[Sequence[GetKeysKey]] = None,
             namespace: Optional[str] = None,
             partition: Optional[str] = None,
             token: Optional[str] = None,
             opts: Optional[InvokeOptions] = None) -> GetKeysResult
def get_keys_output(datacenter: Optional[pulumi.Input[str]] = None,
             error_on_missing_keys: Optional[pulumi.Input[bool]] = None,
             keys: Optional[pulumi.Input[Sequence[pulumi.Input[GetKeysKeyArgs]]]] = None,
             namespace: Optional[pulumi.Input[str]] = None,
             partition: Optional[pulumi.Input[str]] = None,
             token: Optional[pulumi.Input[str]] = None,
             opts: Optional[InvokeOptions] = None) -> Output[GetKeysResult]func LookupKeys(ctx *Context, args *LookupKeysArgs, opts ...InvokeOption) (*LookupKeysResult, error)
func LookupKeysOutput(ctx *Context, args *LookupKeysOutputArgs, opts ...InvokeOption) LookupKeysResultOutput> Note: This function is named LookupKeys in the Go SDK.
public static class GetKeys 
{
    public static Task<GetKeysResult> InvokeAsync(GetKeysArgs args, InvokeOptions? opts = null)
    public static Output<GetKeysResult> Invoke(GetKeysInvokeArgs args, InvokeOptions? opts = null)
}public static CompletableFuture<GetKeysResult> getKeys(GetKeysArgs args, InvokeOptions options)
public static Output<GetKeysResult> getKeys(GetKeysArgs args, InvokeOptions options)
fn::invoke:
  function: consul:index/getKeys:getKeys
  arguments:
    # arguments dictionaryThe following arguments are supported:
- Datacenter string
 - The datacenter to use. This overrides the agent's default datacenter and the datacenter in the provider setup.
 - Error
On boolMissing Keys  - Whether to return an error when a key is absent from the KV store and no default is configured. This defaults to 
false. - Keys
List<Get
Keys Key>  - Specifies a key in Consul to be read. Supported values documented below. Multiple blocks supported.
 - Namespace string
 - The namespace to lookup the keys.
 - Partition string
 - The partition to lookup the keys.
 - Token string
 - The ACL token to use. This overrides the token that the agent provides by default.
 
- Datacenter string
 - The datacenter to use. This overrides the agent's default datacenter and the datacenter in the provider setup.
 - Error
On boolMissing Keys  - Whether to return an error when a key is absent from the KV store and no default is configured. This defaults to 
false. - Keys
[]Get
Keys Key  - Specifies a key in Consul to be read. Supported values documented below. Multiple blocks supported.
 - Namespace string
 - The namespace to lookup the keys.
 - Partition string
 - The partition to lookup the keys.
 - Token string
 - The ACL token to use. This overrides the token that the agent provides by default.
 
- datacenter String
 - The datacenter to use. This overrides the agent's default datacenter and the datacenter in the provider setup.
 - error
On BooleanMissing Keys  - Whether to return an error when a key is absent from the KV store and no default is configured. This defaults to 
false. - keys
List<Get
Keys Key>  - Specifies a key in Consul to be read. Supported values documented below. Multiple blocks supported.
 - namespace String
 - The namespace to lookup the keys.
 - partition String
 - The partition to lookup the keys.
 - token String
 - The ACL token to use. This overrides the token that the agent provides by default.
 
- datacenter string
 - The datacenter to use. This overrides the agent's default datacenter and the datacenter in the provider setup.
 - error
On booleanMissing Keys  - Whether to return an error when a key is absent from the KV store and no default is configured. This defaults to 
false. - keys
Get
Keys Key[]  - Specifies a key in Consul to be read. Supported values documented below. Multiple blocks supported.
 - namespace string
 - The namespace to lookup the keys.
 - partition string
 - The partition to lookup the keys.
 - token string
 - The ACL token to use. This overrides the token that the agent provides by default.
 
- datacenter str
 - The datacenter to use. This overrides the agent's default datacenter and the datacenter in the provider setup.
 - error_
on_ boolmissing_ keys  - Whether to return an error when a key is absent from the KV store and no default is configured. This defaults to 
false. - keys
Sequence[Get
Keys Key]  - Specifies a key in Consul to be read. Supported values documented below. Multiple blocks supported.
 - namespace str
 - The namespace to lookup the keys.
 - partition str
 - The partition to lookup the keys.
 - token str
 - The ACL token to use. This overrides the token that the agent provides by default.
 
- datacenter String
 - The datacenter to use. This overrides the agent's default datacenter and the datacenter in the provider setup.
 - error
On BooleanMissing Keys  - Whether to return an error when a key is absent from the KV store and no default is configured. This defaults to 
false. - keys List<Property Map>
 - Specifies a key in Consul to be read. Supported values documented below. Multiple blocks supported.
 - namespace String
 - The namespace to lookup the keys.
 - partition String
 - The partition to lookup the keys.
 - token String
 - The ACL token to use. This overrides the token that the agent provides by default.
 
getKeys Result
The following output properties are available:
- Datacenter string
 - The datacenter to use. This overrides the agent's default datacenter and the datacenter in the provider setup.
 - Id string
 - The provider-assigned unique ID for this managed resource.
 - Var Dictionary<string, string>
 - For each name given, the corresponding attribute has the value of the key.
 - Error
On boolMissing Keys  - Whether to return an error when a key is absent from the KV store and no default is configured. This defaults to 
false. - Keys
List<Get
Keys Key>  - Specifies a key in Consul to be read. Supported values documented below. Multiple blocks supported.
 - Namespace string
 - The namespace to lookup the keys.
 - Partition string
 - The partition to lookup the keys.
 - Token string
 - The ACL token to use. This overrides the token that the agent provides by default.
 
- Datacenter string
 - The datacenter to use. This overrides the agent's default datacenter and the datacenter in the provider setup.
 - Id string
 - The provider-assigned unique ID for this managed resource.
 - Var map[string]string
 - For each name given, the corresponding attribute has the value of the key.
 - Error
On boolMissing Keys  - Whether to return an error when a key is absent from the KV store and no default is configured. This defaults to 
false. - Keys
[]Get
Keys Key  - Specifies a key in Consul to be read. Supported values documented below. Multiple blocks supported.
 - Namespace string
 - The namespace to lookup the keys.
 - Partition string
 - The partition to lookup the keys.
 - Token string
 - The ACL token to use. This overrides the token that the agent provides by default.
 
- datacenter String
 - The datacenter to use. This overrides the agent's default datacenter and the datacenter in the provider setup.
 - id String
 - The provider-assigned unique ID for this managed resource.
 - var_ Map<String,String>
 - For each name given, the corresponding attribute has the value of the key.
 - error
On BooleanMissing Keys  - Whether to return an error when a key is absent from the KV store and no default is configured. This defaults to 
false. - keys
List<Get
Keys Key>  - Specifies a key in Consul to be read. Supported values documented below. Multiple blocks supported.
 - namespace String
 - The namespace to lookup the keys.
 - partition String
 - The partition to lookup the keys.
 - token String
 - The ACL token to use. This overrides the token that the agent provides by default.
 
- datacenter string
 - The datacenter to use. This overrides the agent's default datacenter and the datacenter in the provider setup.
 - id string
 - The provider-assigned unique ID for this managed resource.
 - var {[key: string]: string}
 - For each name given, the corresponding attribute has the value of the key.
 - error
On booleanMissing Keys  - Whether to return an error when a key is absent from the KV store and no default is configured. This defaults to 
false. - keys
Get
Keys Key[]  - Specifies a key in Consul to be read. Supported values documented below. Multiple blocks supported.
 - namespace string
 - The namespace to lookup the keys.
 - partition string
 - The partition to lookup the keys.
 - token string
 - The ACL token to use. This overrides the token that the agent provides by default.
 
- datacenter str
 - The datacenter to use. This overrides the agent's default datacenter and the datacenter in the provider setup.
 - id str
 - The provider-assigned unique ID for this managed resource.
 - var Mapping[str, str]
 - For each name given, the corresponding attribute has the value of the key.
 - error_
on_ boolmissing_ keys  - Whether to return an error when a key is absent from the KV store and no default is configured. This defaults to 
false. - keys
Sequence[Get
Keys Key]  - Specifies a key in Consul to be read. Supported values documented below. Multiple blocks supported.
 - namespace str
 - The namespace to lookup the keys.
 - partition str
 - The partition to lookup the keys.
 - token str
 - The ACL token to use. This overrides the token that the agent provides by default.
 
- datacenter String
 - The datacenter to use. This overrides the agent's default datacenter and the datacenter in the provider setup.
 - id String
 - The provider-assigned unique ID for this managed resource.
 - var Map<String>
 - For each name given, the corresponding attribute has the value of the key.
 - error
On BooleanMissing Keys  - Whether to return an error when a key is absent from the KV store and no default is configured. This defaults to 
false. - keys List<Property Map>
 - Specifies a key in Consul to be read. Supported values documented below. Multiple blocks supported.
 - namespace String
 - The namespace to lookup the keys.
 - partition String
 - The partition to lookup the keys.
 - token String
 - The ACL token to use. This overrides the token that the agent provides by default.
 
Supporting Types
GetKeysKey  
- Name string
 - This is the name of the key. This value of the key is exposed as 
var.<name>. This is not the path of the key in Consul. - Path string
 - This is the path in Consul that should be read or written to.
 - Default string
 - This is the default value to set for 
var.<name>if the key does not exist in Consul. Defaults to an empty string. 
- Name string
 - This is the name of the key. This value of the key is exposed as 
var.<name>. This is not the path of the key in Consul. - Path string
 - This is the path in Consul that should be read or written to.
 - Default string
 - This is the default value to set for 
var.<name>if the key does not exist in Consul. Defaults to an empty string. 
- name String
 - This is the name of the key. This value of the key is exposed as 
var.<name>. This is not the path of the key in Consul. - path String
 - This is the path in Consul that should be read or written to.
 - default_ String
 - This is the default value to set for 
var.<name>if the key does not exist in Consul. Defaults to an empty string. 
- name string
 - This is the name of the key. This value of the key is exposed as 
var.<name>. This is not the path of the key in Consul. - path string
 - This is the path in Consul that should be read or written to.
 - default string
 - This is the default value to set for 
var.<name>if the key does not exist in Consul. Defaults to an empty string. 
- name str
 - This is the name of the key. This value of the key is exposed as 
var.<name>. This is not the path of the key in Consul. - path str
 - This is the path in Consul that should be read or written to.
 - default str
 - This is the default value to set for 
var.<name>if the key does not exist in Consul. Defaults to an empty string. 
- name String
 - This is the name of the key. This value of the key is exposed as 
var.<name>. This is not the path of the key in Consul. - path String
 - This is the path in Consul that should be read or written to.
 - default String
 - This is the default value to set for 
var.<name>if the key does not exist in Consul. Defaults to an empty string. 
Package Details
- Repository
 - HashiCorp Consul pulumi/pulumi-consul
 - License
 - Apache-2.0
 - Notes
 - This Pulumi package is based on the 
consulTerraform Provider.