Системные функции
|
В данном разделе при описании функций приняты следующие обозначения:
|
get_env_var
Возвращает значение переменной окружения, указанной в name.
Спецификация функции
get_env_var(name: <строка>) :: <строка>, <ошибка>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
строка |
Имя переменной окружения |
да |
Ошибки
Функция get_env_var может возвращать ошибки, что означает, что обработка необходима для следующих ошибок:
-
Переменная окружения
nameне существует. -
Значение переменной окружения
nameне является допустимым значением Unicode.
Пример
Получить значение переменной окружения
get_env_var!("HOME")
"/root"
get_hostname
Возвращает имя хоста локальной системы.
Спецификация функции
get_hostname() :: <строка>, <ошибка>
Ошибки
Функция get_hostname возвращает ошибку, для которой требуется обработка, если не удалось определить имя хоста.
Пример
Получить имя хоста
.hostname = get_hostname!()
get_timezone_name
Возвращает название часового пояса, заданного в конфигурации Vector. Если в конфигурации установлено значение local, то функция пытается определить часовой пояс на основе операционной системы хоста. Если определить название согласно IANA не получилось, возвращается смещение местного часового пояса от UTC в формате "[-+] ЧЧ:ММ", например, "+02:00".
Спецификация функции
get_timezone_name() :: <строка>, <ошибка>
Ошибки
Функция get_timezone_name() возвращает ошибку, для которой требуется обработка, если получение информации о местном часовом поясе завершилось неудачей.
Пример
Получить имя местного часового пояса согласно IANA
.vector_timezone = get_timezone_name!()
http_request
Функция http_request отправляет HTTP-запрос по указанному URL.
Функция http_request выполняет синхронные блокирующие операции. Не рекомендуется использовать ее для часто выполняемых или критически важных задач, так как это может вызвать задержки из-за работы сети.
|
Спецификация функции
http_request( url: <строка>, [method: <строка>,] [headers: <объект>,] [body: <строка>,] [http_proxy: <строка>,] [https_proxy: <строка>,] [redact_headers: <логическое значение>] ) :: <строка>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
строка |
URL-адрес для отправки HTTP-запроса. |
да |
|
|
строка |
Используемый метод HTTP. |
|
нет |
|
объект |
Заголовки HTTP, отправляемые с запросом. |
|
нет |
|
строка |
Содержимое, которое будет отправлено в теле запроса. |
нет |
|
|
строка |
URL-адрес HTTP-прокси для запроса. |
нет |
|
|
строка |
URL-адрес HTTPS-прокси для запроса. |
нет |
|
|
логическое значение |
Переключатель скрытия конфиденциальных значений заголовков в сообщениях об ошибках. Ознакомьтесь с описанием аргумента |
|
нет |
Аргумент redact_headers
Если аргумент redact_headers установлен в true, значения заголовков с конфиденциальной информацией заменяются на "***" в сообщениях об ошибках. Такими заголовками считаются следующие (без учета регистра):
-
"authorization"; -
"proxy-authorization"; -
"cookie"; -
"set-cookie"; -
"api-key"; -
"x-api-key"; -
"x-auth-token"; -
все заголовки, содержащие подстроки
token,passwordилиsecret.
Примеры
Базовый HTTP-запрос
. = parse_json!(http_request!("https://example.org/get"))
# Скрываем IP источника.
.origin = redact!(.origin, filters: [r'.*'], redactor: {"type": "text", "replacement": "***"})
# Удаляем все идентификаторы в заголовках.
.headers = filter(object!(.headers)) -> |key, _value| { !contains(key, "id", false) }
.
{
"args": {},
"headers": {
"Accept": "*/*",
"Host": "example.org"
},
"origin": "***",
"url": "https://example.org/get"
}
HTTP-запрос с токеном Bearer
parse_json!(http_request!("https://example.org/bearer", headers: {"Authorization": "Bearer my_token"}))
{
"authenticated": true,
"token": "my_token"
}
HTTP-запрос PUT
. = parse_json!(http_request!("https://example.org/put", method: "put"))
# Скрываем IP источника.
.origin = redact!(.origin, filters: [r'.*'], redactor: {"type": "text", "replacement": "***"})
# Удаляем все идентификаторы в заголовках.
.headers = filter(object!(.headers)) -> |key, _value| { !contains(key, "id", false) }
.
{
"args": {},
"data": "",
"files": {},
"form": {},
"headers": {
"Accept": "*/*",
"Content-Length": "0",
"Host": "example.org"
},
"json": null,
"origin": "***",
"url": "https://example.org/put"
}
HTTP-запрос POST с телом
. = parse_json!(http_request!("https://example.org/post", method: "post", body: "{\"data\":{\"hello\":\"world\"}}"))
# Скрываем IP источника.
.origin = redact!(.origin, filters: [r'.*'], redactor: {"type": "text", "replacement": "***"})
# Удаляем все идентификаторы в заголовках.
.headers = filter(object!(.headers)) -> |key, _value| { !contains(key, "id", false) }
.
{
"args": {},
"data": "{\"data\":{\"hello\":\"world\"}}",
"files": {},
"form": {},
"headers": {
"Accept": "*/*",
"Content-Length": "26",
"Host": "example.org"
},
"json": {
"data": {
"hello": "world"
}
},
"origin": "***",
"url": "https://example.org/post"
}
now
Возвращает текущую отметку времени в часовом поясе UTC с точностью до наносекунд.
Спецификация функции
now() :: <метка времени>
Пример
Получение текущей отметки времени
now()
2021-03-04T10:51:15.928937Z
Была ли полезна эта страница?