Секреты и переменные окружения для serverless-функций
Переменные окружения на функцию через панель (Настройки → Окружение) или API — подстановка в контейнер при запуске и маскирование похожих на секрет строк в логах и трассах. Это конфигурация функций, а не отдельный корпоративный secrets manager.
Как это работает
Настроить, вызвать, прочитать из окружения
Задайте переменные окружения
В тестовой панели: «Настройки» → «Окружение», либо updateFunction с полем envVars. Значения хранятся в записи функции в базе приложения.
Вызовите функцию
Платформа объединяет переменные слоёв и функции и передаёт их в среду выполнения для этого вызова.
Читайте в хендлере
Через process.env, os.environ или os.Getenv. Не логируйте сырые учётные данные: маскирование помогает, но не заменяет менеджер секретов.
Возможности
Чувствительные данные без хардкода в коде
Переменные на функцию
Ключи и значения настраиваются для каждой функции без правок кода; ввод как пароль снижает риск подглядывания.
Подстановка при запуске
Тот же механизм для шлюза, задач и ручного запуска передаёт переменные в контейнер.
Маскирование в логах и трассах
Распространённые шаблоны (токены, пароли, 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 }), }; }
Начать бесплатно
Задеплойте первую функцию за несколько минут. Карта не нужна.