Приложение Logi c пропускает отправку действия по электронной почте для каждого - PullRequest
0 голосов
/ 26 апреля 2020

В моем приложении logi c есть HTTP-триггер. Всякий раз, когда я запускаю приложение logi c вручную или просто копирую и вставляю URL в браузер, оно работает как положено. Однако, когда я использую функцию QueueTriggered azure для вызова URL-адреса приложения logi c, приложение logi c просто пропускает действие отправки электронной почты.

Логги c дизайн приложения (показывает пропущенные действия)

Действие внутри ForEach

Вот код, который у меня есть для моего приложения функции:

public static async Task Run([QueueTrigger("messages", Connection = "ConnectionString")]string myQueueItem, ILogger log)
        {
            var httpClient = HttpClientFactory.Create();
            var url = "logicAppUri";

            await httpClient.GetAsync(url);

        }

Содержимое сообщения представляет собой обычную строку, например «test».

Я также попытался изменить триггер приложения функции на «Когда есть сообщения в очереди «но это тоже не сработало».

«При наличии сообщений в очереди» триггер

Выход

Я получил одно и то же сообщение об ошибке от Azure в обоих случаях.

{"code":"ActionConditionFailed","message":"The execution of template action 'Send_email_(V2)' is skipped: there are no items to repeat."}

Что не имеет смысла, так как в очереди были сообщения.

Любая идея, почему что происходит?

1 Ответ

0 голосов
/ 27 апреля 2020

Согласно некоторым тестам, эта проблема вызвана использованием функции запуска по очереди. Функция запуска по очереди будет запускаться при появлении новых сообщений в очереди и их чтении. Поэтому, когда httpClient вызывает функцию logi c app uri в funciton, в очереди нет сообщений. Действие «Получить сообщения» получит список размера 0, поэтому «Для каждого» будет выполнено 0 раз.

Для ваших требований вы можете просто использовать « Когда в очереди есть сообщения"в логи c приложение. Пожалуйста, обратитесь к моему приложению logi c ниже:

enter image description here

Поскольку триггер срабатывает при каждом сообщении, поэтому нам не нужно использовать "Для каждый "l oop сообщения.

Надеюсь, что это помогает ~

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