Как получить доступ к строке подключения с помощью Python

У меня есть этот local.settings.json в моей локальной функции Azure (триггер таймера)

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "",
    "FUNCTIONS_WORKER_RUNTIME": "python",
    .
    .
    .
  },
  "ConnectionStrings": {
    "sql_server": "valid connection string"
  }
}

Мне удалось получить доступ к строке подключения локально, используя: conn = os.environ["ConnectionStrings:sql_server"] и мой код работает нормально.

Но при развертывании я получаю «Исключение сбоя: KeyError: 'sql_server' [...] getitem поднять KeyError (ключ) из None».

Я попытался выполнить на портале, изменив эту строку на: conn = os.environ["sql_server"] Но ничего не изменилось.

Кто-нибудь знает, как я могу вызвать этот метод в Azure Web?

Получаете ли вы аналогичную ошибку при попытке получить доступ к другим полям? Например, IsEncrypted

Vladyslav Shlianin 03.07.2024 12:16

Нет, когда я пытаюсь получить доступ к переменным среды, установленным в «Настройках приложения» (а не в «Строках подключения»), я получаю их с помощью os.environ["variable"]

María Casasola Calzadilla 03.07.2024 12:51

Добавьте строку подключения таким способом, а также обратитесь к Learn.microsoft.com/en-us/azure/app-service/… doc.

Ikhtesam Afrin 03.07.2024 15:50
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
3
78
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
  • Значения, хранящиеся в разделе ConnectionStrings в локальном файле настроек, необходимо добавить в раздел строки подключения приложения-функции. Я добавил тестовое значение типа SQLServer, как показано ниже.

  • Чтобы получить доступ к этим значениям в приложении-функции, вам необходимо добавить префикс в зависимости от типов подключения. ниже приведены префиксы для различных типов подключения. Обратитесь в MSDoc.
  • SQL-сервер: SQLCONNSTR_
  • MySQL: MYSQLCONNSTR_
  • SQLAzure: SQLAZURECONNSTR_
  • Пользовательский: CUSTOMCONNSTR_
  • PostgreSQL: POSTGRESQLCONNSTR_
  • Центр уведомлений: NOTIFICATIONHUBCONNSTR_
  • Служебный автобус: SERVICEBUSCONNSTR_
  • Центр событий: EVENTHUBCONNSTR_
  • База данных документа: DOCDBCONNSTR_
  • Кэш Redis: REDISCACHECONNSTR_
  • Поскольку я использовал тип подключения SQLServer, необходимо изменить SQLCONNSTR_ вместе с именем строки подключения.
  • Я получаю доступ к значению, используя os.environ['SQLCONNSTR_test_sql_server_connectionString'] в коде, и могу получить ожидаемое значение.

  • Вам необходимо использовать префикс вместе с именем строки подключения в зависимости от ее типа, чтобы получить значение в приложении-функции.

Работает, большое спасибо!!

María Casasola Calzadilla 08.07.2024 09:45

Другие вопросы по теме

Как полностью остановить локальный запуск функции Azure? Функция Azure [Python V2] продолжает предыдущее выполнение при перезапуске отладчика [VS Code]?
Код ошибки MSB4062 в проекте функции Azure в VS для запуска API Microsoft Graph с функциями Azure
Получение исключения «Невозможно динамически создать экземпляр типа Microsoft.Azure.Functions.Worker.Http.HttpRequestData». в функции Azure
Приложению функции Azure Python не удается импортировать пакеты при развертывании через Azure DevOps
Azure Blob: как автоматизировать преобразование архивного хранилища Azure в холодный/горячий уровень, отправить ссылку для загрузки, как только она станет доступна, и повторно заархивировать через 72 часа?
Код ошибки CS:0021 в проекте функции Azure в VS для запуска API Microsoft Graph с функциями Azure
Функция Azure работает локально, но не в Azure
Функции Azure: задание не найдено (Python)
Вход FastAPI в маршруты в функциях Azure
Невозможно найти версию dotnet при развертывании приложения функции гибкого потребления с помощью действий GitHub

Похожие вопросы

«Модуль {Module_Name} не установлен» при запуске скрипта Python с использованием PyQt5
Как полностью остановить локальный запуск функции Azure? Функция Azure [Python V2] продолжает предыдущее выполнение при перезапуске отладчика [VS Code]?
ОШИБКА: не удалось создать устанавливаемые колеса для некоторых проектов на основе pyproject.toml (pycryptodome)
Как я могу установить все поля формы только для чтения в Odoo 16 в зависимости от поля?
Невозможно загрузить пакет PIP в реестр артефактов Google с помощью шпагата, ошибка: KeyError: «лицензия»
При установке Tkinter каким-то образом устанавливается другой модуль
Регулярное выражение для замены следующих двух слов после точки совпадения
Как перечислить потоки с помощью типов CreateToolhelp32Snapshot и Python?
Django django.contrib.messages добавляет новые постоянные сообщения. ВНИМАНИЕ
Почему я получаю ошибку рекурсии, если глубина ожидаемой рекурсии должна быть меньше 999?