55 lines
1.4 KiB
Markdown
55 lines
1.4 KiB
Markdown
---
|
|
layout: "functions"
|
|
page_title: "element - Functions - Configuration Language"
|
|
sidebar_current: "docs-funcs-collection-element"
|
|
description: |-
|
|
The element function retrieves a single element from a list.
|
|
---
|
|
|
|
# `element` Function
|
|
|
|
-> **Note:** This page is about Terraform 0.12 and later. For Terraform 0.11 and
|
|
earlier, see
|
|
[0.11 Configuration Language: Interpolation Syntax](../../configuration-0-11/interpolation.html).
|
|
|
|
`element` retrieves a single element from a list.
|
|
|
|
```hcl
|
|
element(list, index)
|
|
```
|
|
|
|
The index is zero-based. This function produces an error if used with an
|
|
empty list. The index must be a non-negative integer.
|
|
|
|
Use the built-in index syntax `list[index]` in most cases. Use this function
|
|
only for the special additional "wrap-around" behavior described below.
|
|
|
|
## Examples
|
|
|
|
```
|
|
> element(["a", "b", "c"], 1)
|
|
b
|
|
```
|
|
|
|
If the given index is greater than the length of the list then the index is
|
|
"wrapped around" by taking the index modulo the length of the list:
|
|
|
|
```
|
|
> element(["a", "b", "c"], 3)
|
|
a
|
|
```
|
|
|
|
To get the last element from the list use [`length`](./length.html) to find
|
|
the size of the list (minus 1 as the list is zero-based) and then pick the
|
|
last element:
|
|
|
|
```
|
|
> element(["a", "b", "c"], length(["a", "b", "c"])-1)
|
|
c
|
|
```
|
|
|
|
## Related Functions
|
|
|
|
* [`index`](./index.html) finds the index for a particular element value.
|
|
* [`lookup`](./lookup.html) retrieves a value from a _map_ given its _key_.
|