Функция Azure не работает после развертывания для доступа к хранилищу AzureC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Функция Azure не работает после развертывания для доступа к хранилищу Azure

Сообщение Anonymous »

Я создал проект функции Azure в VSCode, изолированный .net8. Я следовал инструкциям здесь «Разработка функций Azure с помощью кода Visual Studio», и как только я закончил его и развернул, базовые функции заработали. Поэтому я реализовал доступ к таблице в хранилище Azure.
Мой файл program.cs выглядит следующим образом: Пакет DependencyInjection не используется

Код: Выделить всё

using Microsoft.Azure.Functions.Worker.Builder;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;

var builder = FunctionsApplication.CreateBuilder(args);

// Agregar configuración de variables de entorno
builder.Configuration
.AddEnvironmentVariables() // Agrega variables de entorno
.AddJsonFile("local.settings.json", optional: true, reloadOnChange: true); // Para entornos locales

// Configurar servicios adicionales (si es necesario)
// builder.Services.AddTransient();

builder.ConfigureFunctionsWebApplication();

// Application Insights isn't enabled by default. See https://aka.ms/AAt8mw4.
// builder.Services
//     .AddApplicationInsightsTelemetryWorkerService()
//     .ConfigureFunctionsApplicationInsights();

builder.Build().Run();
и мой local.settings.json

Код: Выделить всё

{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=false",
"FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated",
"TableStorageConnection": "azure-storage-connectionString",
"HelloWho": "Jon Doe Who"
},
"Host": {
"CORS": "*"
}
}
Я создал очень простую функцию под названием GetWho, чтобы попытаться прочитать строку подключения, потому что в какой-то момент моя функция не читала ее, и я получил это в журнале.

Код: Выделить всё

2024-11-26T02:15:50.309 [Information] Executing 'Functions.GetCities' (Reason='This function was programmatically called via the host APIs.', Id=67fcf38f-daa0-4433-9c54-f75331cd4dbc)
2024-11-26T02:15:50.657 [Information] Retrieving cities with registred open mics
2024-11-26T02:15:50.734 [Error] Function 'GetCities', Invocation id '67fcf38f-daa0-4433-9c54-f75331cd4dbc': An exception was thrown by the invocation.
Microsoft.Azure.WebJobs.Script.Workers.Rpc.RpcException : Result: Function 'GetCities', Invocation id '67fcf38f-daa0-4433-9c54-f75331cd4dbc': An exception was thrown by the invocation.
Exception: System.ArgumentException: Value cannot be an empty string. (Parameter 'connectionString')
Код функции GetWho

Код: Выделить всё

public class GetWho
{
private readonly ILogger _logger;
private readonly IConfiguration _configuration;

public GetWho(ILogger logger, IConfiguration configuration)
{
_logger = logger;
_configuration = configuration;
}

[Function("GetWho")]
public IActionResult Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post")] HttpRequest req)
{
_logger.LogInformation("C# HTTP trigger function processed a request.");
return new OkObjectResult($"Welcome to Azure Functions! {_configuration["HelloWho"]}");
}
}
Здесь все мои функции на локальном хосте работают нормально. Я получаю значения переменных, а GetCities возвращает ожидаемый список. Функция подключена напрямую к хранилищу Azure, я не использую локальное хранилище.
После развертывания функции. Похоже, что оно было успешно развернуто, и я вижу функции, перечисленные в службах приложений в Azure, но как только я хочу их протестировать, я получаю ошибки, но нет журналов или явных сообщений об ошибках. То же самое происходит, когда я нажимаю «Получить URL-адрес функции».
Изображение

Любопытно, что вызовы не записаны.
< img alt="На странице вызовов функции показано отсутствие вызовов." src="https://i.sstatic.net/jkqg10Fd.png" />
Другой способ создания program.cs, который я пробовал, заключался в следующем. тот же результат. Пакет DependencyInjection не используется
при использовании Microsoft.Extensions.Hosting;
при использовании Microsoft.Extensions.Configuration;
при использовании Microsoft.Azure.Functions.Extensions.DependencyInjection;

Код: Выделить всё

namespace el_open_api
{
public class Program
{
public static void Main(string[] args)
{
var host = new HostBuilder()
.ConfigureAppConfiguration((context, config) =>
{
config.Sources.Clear();
config.AddEnvironmentVariables();
})
.ConfigureFunctionsWebApplication()
.ConfigureFunctionsWorkerDefaults()
.Build();

host.Run();
}
}
}
На данный момент у меня заканчиваются таланты, и я не могу заставить это работать. Любая помощь приветствуется.

Подробнее здесь: https://stackoverflow.com/questions/792 ... re-storage
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»