Skip to content

Latest commit

 

History

History
95 lines (72 loc) · 3.5 KB

File metadata and controls

95 lines (72 loc) · 3.5 KB
page_title subcategory description
random_id Resource - terraform-provider-random
The resource random_id generates random numbers that are intended to be used as unique identifiers for other resources. This resource does use a cryptographic random number generator in order to minimize the chance of collisions, making the results of this resource when a 16-byte identifier is requested of equivalent uniqueness to a type-4 UUID. This resource can be used in conjunction with resources that have the create_before_destroy lifecycle flag set to avoid conflicts with unique names during the brief period where both the old and new resources exist concurrently.

random_id (Resource)

The resource random_id generates random numbers that are intended to be used as unique identifiers for other resources.

This resource does use a cryptographic random number generator in order to minimize the chance of collisions, making the results of this resource when a 16-byte identifier is requested of equivalent uniqueness to a type-4 UUID.

This resource can be used in conjunction with resources that have the create_before_destroy lifecycle flag set to avoid conflicts with unique names during the brief period where both the old and new resources exist concurrently.

Example Usage

# The following example shows how to generate a unique name for an AWS EC2
# instance that changes each time a new AMI id is selected.

resource "random_id" "server" {
  keepers = {
    # Generate a new id each time we switch to a new AMI id
    ami_id = var.ami_id
  }

  byte_length = 8
}

resource "aws_instance" "server" {
  tags = {
    Name = "web-server ${random_id.server.hex}"
  }

  # Read the AMI id "through" the random_id resource to ensure that
  # both will change together.
  ami = random_id.server.keepers.ami_id

  # ... (other aws_instance arguments) ...
}

Schema

Required

  • byte_length (Number) The number of random bytes to produce. The minimum value is 1, which produces eight bits of randomness.

Optional

  • keepers (Map of String) Arbitrary map of values that, when changed, will trigger recreation of resource. See the main provider documentation for more information.
  • prefix (String) Arbitrary string to prefix the output value with. This string is supplied as-is, meaning it is not guaranteed to be URL-safe or base64 encoded.

Read-Only

  • b64_std (String) The generated id presented in base64 without additional transformations.
  • b64_url (String) The generated id presented in base64, using the URL-friendly character set: case-sensitive letters, digits and the characters _ and -.
  • dec (String) The generated id presented in non-padded decimal digits.
  • hex (String) The generated id presented in padded hexadecimal digits. This result will always be twice as long as the requested byte length.
  • id (String) The generated id presented in base64 without additional transformations or prefix.

Import

Import is supported using the following syntax:

# Random IDs can be imported using the b64_url with an optional prefix. This
# can be used to replace a config value with a value interpolated from the
# random provider without experiencing diffs.

# Example with no prefix:
terraform import random_id.server p-9hUg

# Example with prefix (prefix is separated by a ,):
$ terraform import random_id.server my-prefix-,p-9hUg