Статическое соединение SQL в функции Azure 2.0 - PullRequest
0 голосов
/ 06 мая 2019

Функция Azure Eventhub с соединением SQL вызывает проблему из-за слишком большого количества вызовов, поэтому я хочу использовать статическое соединение, но оно не работает

Пробовал приведенный ниже код и не работает

 _config = new ConfigurationBuilder()
                    .SetBasePath(context.FunctionAppDirectory)
                    .AddJsonFile("local.settings.json", optional: true, reloadOnChange: true)
                    .AddEnvironmentVariables()
                    .Build();

                connection.ConnectionString = _config.GetConnectionString("SqlConnection");
                await connection.OpenAsync();

1 Ответ

1 голос
/ 07 мая 2019

Вы устанавливаете строку подключения SQL с помощью local.settings.json , она используется только инструментами функций при локальном запуске. Эти параметры не переносятся автоматически при публикации проекта в Azure.

Таким образом, вы должны установить строку подключения в настройках приложения. Что касается подробной информации, вы можете обратиться к этому руководству: Установить строку подключения .

А это пример кода о том, как использовать SQL с функцией:

[FunctionName("DatabaseCleanup")]
public static async Task Run([TimerTrigger("*/15 * * * * *")]TimerInfo myTimer, ILogger log)
{
    // Get the connection string from app settings and use it to create a connection.
    var str = Environment.GetEnvironmentVariable("sqldb_connection");
    using (SqlConnection conn = new SqlConnection(str))
    {
        conn.Open();
        var text = "UPDATE SalesLT.SalesOrderHeader " +
                "SET [Status] = 5  WHERE ShipDate < GetDate();";

        using (SqlCommand cmd = new SqlCommand(text, conn))
        {
            // Execute the command and log the # rows affected.
            var rows = await cmd.ExecuteNonQueryAsync();
            log.LogInformation($"{rows} rows were updated");
        }
    }
}
...