import.http
import.http
retrieves a module from an HTTP server.
Usage
import.http "LABEL" {
url = URL
}
Arguments
The following arguments are supported:
Blocks
The following blocks are supported inside the definition of import.http
:
The >
symbol indicates deeper levels of nesting.
For example, client > basic_auth
refers to an basic_auth
block defined inside a client
block.
client block
The client
block configures settings used to connect to the HTTP server.
bearer_token
, bearer_token_file
, basic_auth
, authorization
, and oauth2
are mutually exclusive, and only one can be provided inside of a http_client_config
block.
no_proxy
can contain IPs, CIDR notations, and domain names. IP and domain names can contain port numbers.
proxy_url
must be configured if no_proxy
is configured.
proxy_from_environment
uses the environment variables HTTP_PROXY, HTTPS_PROXY, and NO_PROXY (or the lowercase versions thereof).
Requests use the proxy from the environment variable matching their scheme, unless excluded by NO_PROXY.
proxy_url
and no_proxy
must not be configured if proxy_from_environment
is configured.
proxy_connect_header
should only be configured if proxy_url
or proxy_from_environment
are configured.
basic_auth block
The basic_auth
block configures basic authentication to use when polling the configured URL.
password
and password_file
are mutually exclusive, and only one can be provided inside a basic_auth
block.
authorization block
The authorization
block configures custom authorization to use when polling the configured URL.
credential
and credentials_file
are mutually exclusive, and only one can be provided inside an authorization
block.
oauth2 block
The oauth2
block configures OAuth2 authorization to use when polling the configured URL.
client_secret
and client_secret_file
are mutually exclusive, and only one can be provided inside an oauth2
block.
The oauth2
block may also contain a separate tls_config
sub-block.
no_proxy
can contain IPs, CIDR notations, and domain names. IP and domain names can contain port numbers.
proxy_url
must be configured if no_proxy
is configured.
proxy_from_environment
uses the environment variables HTTP_PROXY, HTTPS_PROXY, and NO_PROXY (or the lowercase versions thereof).
Requests use the proxy from the environment variable matching their scheme, unless excluded by NO_PROXY.
proxy_url
and no_proxy
must not be configured if proxy_from_environment
is configured.
proxy_connect_header
should only be configured if proxy_url
or proxy_from_environment
are configured.
tls_config block
The tls_config
block configures TLS settings for connecting to HTTPS servers.
The following pairs of arguments are mutually exclusive and can’t both be set simultaneously:
ca_pem
andca_file
cert_pem
andcert_file
key_pem
andkey_file
When configuring client authentication, both the client certificate (using cert_pem
or cert_file
) and the client key (using key_pem
or key_file
) must be provided.
When min_version
isn’t provided, the minimum acceptable TLS version is inherited from Go’s default minimum version, TLS 1.2.
If min_version
is provided, it must be set to one of the following strings:
"TLS10"
(TLS 1.0)"TLS11"
(TLS 1.1)"TLS12"
(TLS 1.2)"TLS13"
(TLS 1.3)
Example
This example imports custom components from an HTTP response and instantiates a custom component for adding two numbers:
module.alloy
declare "add" {
argument "a" {}
argument "b" {}
export "sum" {
value = argument.a.value + argument.b.value
}
}
main.alloy
import.http "math" {
url = SERVER_URL
}
math.add "default" {
a = 15
b = 45
}