Azure Logi c Разница в производительности приложения и функции приложения - PullRequest
0 голосов
/ 08 апреля 2020

Мы находимся в процессе создания нового проекта. Наши требования заключаются в том, чтобы вызывать несколько API остальных, объединять ответ и отправлять его обратно мобильному клиенту.

Мы исследуем эти 2 варианта для нашего уровня опыта (интеграция) 1. Logi c Apps 2. Azure Функция

Мы наблюдали одно существенное различие в производительности между этими двумя.

Мы проводим простой сценарий использования для сравнения производительности.

Мы просто вызываем оставшийся API для получения метрик с различными доступными опциями

  1. Просто интегрируйте с APIM в качестве фоновой службы
  2. Использование Azure Функция
  3. Использование Logi c Приложения

Ниже приведены показатели enter image description here

Logi c Приложение занимает больше времени для выполнения по сравнению с другими параметрами. Ниже приведено простое приложение logi c для вызова rest api

{
"definition": {
    "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
    "actions": {
        "GetReferenceData": {
            "inputs": {
                "headers": {
                    "Authorization": "@variables('AuthToken')"
                },
                "method": "GET",
                "uri": "url"
            },
            "runAfter": {
                "Initialize_AuthToken": [
                    "Succeeded"
                ]
            },
            "type": "Http"
        },
        "Initialize_AuthToken": {
            "inputs": {
                "variables": [
                    {
                        "name": "AuthToken",
                        "type": "string",
                        "value": "@{triggerOutputs()['headers']?['Access-Token']}"
                    }
                ]
            },
            "runAfter": {},
            "type": "InitializeVariable"
        },
        "Response": {
            "inputs": {
                "body": "@body('GetReferenceData')",
                "statusCode": "@outputs('GetReferenceData')['statusCode']"
            },
            "kind": "Http",
            "runAfter": {
                "GetReferenceData": [
                    "Succeeded"
                ]
            },
            "type": "Response"
        },
        "Response_2": {
            "inputs": {
                "body": "@body('GetReferenceData')",
                "statusCode": "@outputs('GetReferenceData')['statusCode']"
            },
            "kind": "Http",
            "runAfter": {
                "GetReferenceData": [
                    "Failed",
                    "Skipped",
                    "TimedOut"
                ]
            },
            "type": "Response"
        }
    },
    "contentVersion": "1.0.0.0",
    "outputs": {},
    "parameters": {
        "storageLocation": {
            "defaultValue": [],
            "type": "Array"
        }
    },
    "triggers": {
        "manual": {
            "inputs": {
                "method": "GET",
                "relativePath": "/referenceData",
                "schema": {}
            },
            "kind": "Http",
            "type": "Request"
        }
    }
},
"parameters": {}
}

У нас очень много случаев, когда нам нужно вызывать несколько API-интерфейсов rest и агрегировать результат. Учитывая вышеприведенные цифры, кажется, что Function App работает намного лучше, чем Function App. Для параллельных операций я могу полагаться на долговременные функции через приложения Logi c.

Так что я просто хочу понять , почему Приложение logi c занимает больше времени почти в два раза по сравнению с функцией для аналогичной операции?

Разве приложение logi c не предназначено для этих операций?

1 Ответ

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

Обратитесь в другую ветку, где на этот вопрос уже дан ответ. Является ли Logi c производительность приложений медленнее, чем прямой. NET REST Call?

Следующее дополнение может дать более глубокое понимание

«Azure Функции код запускается событием, тогда как Logi c Apps является отдельной структурой рабочего процесса , запускаемой событием ». Приложение Logi c представляет собой логический контейнер для одного рабочего процесса, который можно определить с помощью триггеров и действий.

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

Azure Функции являются частью набора сервисов приложений Azure Web + Mobile и предназначены для создания небольших фрагментов значимых, многократно используемых методов, которые легко распределяются между сервисами.

...