Как интерполировать переменные окружения в конфигурации netlify.toml - PullRequest
0 голосов
/ 11 июня 2018

Я хочу прокси для разных API в зависимости от среды - я безуспешно пробовал несколько вариантов следующей темы.Как правильно это сделать, если это вообще возможно?

[build.environment]
  API_URI="https://dev-api.foo.com/:splat"

[context.production.environment]
  API_URI="https://prod-api.foo.com/:splat"

[[redirects]]
  from = "/api/*"
  to = "$API_URI"
  status = 200
  force = true

Это не работает.

Хотя вышеуказанный конфиг работает, когда я жестко кодирую URI в поле to,это просто терпит неудачу, когда я пытаюсь интерполировать переменную env.

Ответы [ 3 ]

0 голосов
/ 13 августа 2018

Да.Возможно.Вот подробные документы: https://www.netlify.com/docs/continuous-deployment/#deploy-contexts

В моем случае мне нужно установить REACT_APP_API_URL отдельно для производства и всех других отраслей.Вот что я использую:

[context.production.environment]
  REACT_APP_API_URL = "https://api.test.im"

[context.deploy-preview.environment]
  REACT_APP_API_URL = "https://api-staging.test.im"

[context.branch-deploy.environment]
  REACT_APP_API_URL = "https://api-staging.test.im"
0 голосов
/ 08 октября 2018

Это не поддерживается, но Netlify предлагает обходной путь в своей документации (https://www.netlify.com/docs/netlify-toml-reference):

Использование переменных среды непосредственно в качестве значений ($ VARIABLENAME) в файле netlify.toml не поддерживается.Тем не менее, следующий рабочий процесс может использоваться для замены значений на основе переменных среды в файле, при условии, что вы пытаетесь только изменить заголовки или перенаправления. Остальная часть файла читается ДО вашей сборки - но эти разделы читаются ПОСЛЕ процесса сборки.

  1. Добавьте местозаполнитель, такой как API_KEY_PLACEHOLDER, где-нибудь в разделах перенаправлений или заголовков netlify.toml.
  2. Создайте переменную среды сборки, например, API_KEY, с нужным значением. Вы можете сделатьэто в toml-файле или в нашем пользовательском интерфейсе в разделе «Параметры сборки и развертывания» вашей конфигурации. Вы можете использовать последний, чтобы скрыть конфиденциальные значения из вашего хранилища.
  3. Добавьте такую ​​команду к вашей команде сборки.: sed -is / API_KEY_PLACEHOLDER / $ API_KEY / g netlify.toml && нормальная команда сборки.
0 голосов
/ 11 июня 2018

Отвечая на мой собственный вопрос - он не поддерживается, вам нужно вручную интерполировать переменные env как часть сборки на Netlify.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...