Формат строки инициализации не соответствует спецификации, начиная с индекса 0 в приложении «Функции Azure»

Я много изучил эту проблему и обнаружил, что проблема связана с ConnectionString. Я использую приведенную ниже строку подключения, и она отлично работает локально в моем приложении «Функции Azure», но когда я развертываю ее в Azure. Я получаю эту ошибку:

2024-06-22T11:08:57Z   [Verbose]   Sending event Create
2024-06-22T11:08:57Z   [Verbose]   Sending exception event: Format of the initialization string does not conform to specification starting at index 0.

Для справки моя строка подключения:

Server=tcp:buzzats.database.windows.net;Initial Catalog=buzzats;Persist Security Info=False;User ID=ibraheem;Password=...;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;

Я перепробовал все возможное, но не могу исправить эту ошибку. Я использую Node JS v20 в качестве среды выполнения приложения «Функции Azure». Ниже приведен пример кода одного HttpTrigger:

const { app, input } = require("@azure/functions");

const sql = input.sql({
    commandText: "SELECT * FROM [dbo].[Students]",
    commandType: "Text",
    connectionStringSetting: "SqlConnectionString",
});

app.http("getStudents", {
    methods: ["GET"],
    authLevel: "anonymous",
    extraInputs: [sql],
    handler: async (request, context) => {
        try {
            const response = await context.extraInputs.get(sql);
            return { status: 200, body: JSON.stringify(response) };
        } catch (error) {
            return { status: 200, body: error.message };
        }
    },
});

Я просмотрел весь StackOverflow, но не смог найти решения своей проблемы. Я точно следую инструкциям, указанным на сайте Microsoft здесь

🤔 А знаете ли вы, что...
Node.js позволяет создавать масштабируемые приложения с использованием механизмов кластеризации.


77
1

Ответ:

Решено

Формат строки инициализации не соответствует спецификации, начиная с индекса.

Вышеупомянутая ошибка произошла из-за несоответствия значения SqlConnectionString в приложении функции Azure.

Поэтому убедитесь, что значение SqlConnectionString правильное, без каких-либо дополнительных кавычек в переменных среды приложения функции Azure > Параметры приложения, как показано ниже.

"SqlConnectionString": "Server=tcp:<server_name>.database.windows.net;Initial Catalog=<db_name>;Persist Security Info=False;User ID=<user_name>;Password=<password>;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"

Код:

const { app, input } = require("@azure/functions");

const sql = input.sql({
    commandText: "SELECT * FROM [dbo].[Students]",
    commandType: "Text",
    connectionStringSetting: "SqlConnectionString",
});

app.http("getStudents", {
    methods: ["GET"],
    authLevel: "anonymous",
    extraInputs: [sql],
    handler: async (request, context) => {
        try {
            const response = await context.extraInputs.get(sql);
            return { status: 200, body: JSON.stringify(response) };
        } catch (error) {
            return { status: 200, body: error.message };
        }
    },
});

Выход :

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