---
title: "import.string | Grafana Agent documentation"
description: "Learn about the import.string configuration block"
---

# import.string

The `import.string` block imports custom components from a string and exposes them to the importer. `import.string` blocks must be given a label that determines the namespace where custom components are exposed.

## Usage

Alloy ![Copy code to clipboard](/media/images/icons/icon-copy-small-2.svg) Copy

```alloy
import.string "NAMESPACE" {
  content = CONTENT
}
```

## Arguments

The following arguments are supported:

Expand table

| Name      | Type                 | Description                                                 | Default | Required |
|-----------|----------------------|-------------------------------------------------------------|---------|----------|
| `content` | `secret` or `string` | The contents of the module to import as a secret or string. |         | yes      |

`content` is a string that contains the configuration of the module to import. `content` is typically loaded by using the exports of another component. For example,

- `local.file.LABEL.content`
- `remote.http.LABEL.content`
- `remote.s3.LABEL.content`

## Example

This example imports a module from the content of a file stored in an S3 bucket and instantiates a custom component from the import that adds two numbers:

Alloy ![Copy code to clipboard](/media/images/icons/icon-copy-small-2.svg) Copy

```alloy
remote.s3 "module" {
  path = "s3://test-bucket/module.river"
}

import.string "math" {
  content = remote.s3.module.content
}

math.add "default" {
  a = 15
  b = 45
}
```
