Секреты и переменные окружения для serverless-функций
Задавайте переменные окружения на функцию из тестовой панели («Настройки» → «Окружение») или через API: значения подставляются в контейнер при запуске, а похожие на секреты строки маскируются в логах и трассах. Это инструмент конфигурации функций, а не отдельный корпоративный менеджер секретов.
Дальше по теме
Начать бесплатно →Как это работает
Настроить, вызвать, прочитать из окружения
Задайте переменные окружения
В тестовой панели редактора откройте «Настройки» и разверните «Окружение» — или вызовите updateFunction с полем envVars. Значения хранятся в записи функции в базе приложения.
Вызовите функцию
При каждом вызове платформа объединяет переменные слоёв и функции и передаёт результат в среду выполнения.
Читайте в хендлере
Читайте значения через process.env, os.environ или os.Getenv — как в любом другом деплое. Не логируйте сырые учётные данные: маскирование помогает, но не заменяет полноценный менеджер секретов.
Возможности
Чувствительные данные без хардкода в коде
Переменные на функцию
Настраивайте ключи и значения для каждой функции, не трогая код, а поля-пароли в UI снижают риск подглядывания при вводе.
Подстановка при запуске
Вызовы через шлюз, задачи и ручные запуски получают переменные окружения в контейнере по одному и тому же пути подстановки.
Маскирование в логах и трассах
Типичные шаблоны секретов — токены, пароли, API-ключи — маскируются в сохранённых логах и трассах везде, где отрабатывает маскирование.
Вместе с вашим пайплайном деплоя
Долгоживущие продакшен-учётные данные подставляйте из CI/CD или окружения хоста, чтобы поверхность базы данных оставалась минимальной, — переменные функции подходят для значений, которые вы готовы хранить в записи функции.
Пример
Переменные окружения и использование в функции
// Per-function env vars (Config → Environment in the editor, or API): await api.updateFunction("function-id", { envVars: { OPENAI_API_KEY: "sk-...", }, }); // Values are stored on the function and injected into the container at invoke time
export async function handler(event, context) { // OPENAI_API_KEY comes from function env — avoid logging it const payload = typeof event.body === 'string' ? JSON.parse(event.body || '{}') : (event || {}); const { prompt } = payload; const openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY, }); const completion = await openai.chat.completions.create({ model: "gpt-4o-mini", messages: [{ role: "user", content: prompt }], }); return { statusCode: 200, body: JSON.stringify({ result: completion.choices[0].message.content }), }; }