2016-05-15 01:49:10 +02:00
|
|
|
---
|
|
|
|
layout: "random"
|
|
|
|
page_title: "Random: random_id"
|
|
|
|
sidebar_current: "docs-random-resource-id"
|
|
|
|
description: |-
|
|
|
|
Generates a random identifier.
|
|
|
|
---
|
|
|
|
|
|
|
|
# random\_id
|
|
|
|
|
|
|
|
The resource `random_id` generates random numbers that are intended to be
|
|
|
|
used as unique identifiers for other resources.
|
|
|
|
|
|
|
|
Unlike other resources in the "random" provider, 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 32-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) ...
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
## Argument Reference
|
|
|
|
|
|
|
|
The following arguments are supported:
|
|
|
|
|
|
|
|
* `byte_length` - (Required) The number of random bytes to produce. The
|
|
|
|
minimum value is 1, which produces eight bits of randomness.
|
|
|
|
|
|
|
|
* `keepers` - (Optional) Arbitrary map of values that, when changed, will
|
|
|
|
trigger a new id to be generated. See
|
|
|
|
[the main provider documentation](../index.html) for more information.
|
|
|
|
|
|
|
|
## Attributes Reference
|
|
|
|
|
|
|
|
The following attributes are exported:
|
|
|
|
|
|
|
|
* `b64` - The generated id presented in base64, using the URL-friendly character set: case-sensitive letters, digits and the characters `_` and `-`.
|
|
|
|
* `hex` - The generated id presented in padded hexadecimal digits. This result will always be twice as long as the requested byte length.
|
2017-02-03 21:53:44 +01:00
|
|
|
* `dec` - The generated id presented in non-padded decimal digits.
|