Невозможно запустить долговременную функцию Azure локально с помощью кода Visual Studio - PullRequest
0 голосов
/ 17 декабря 2018

Я следовал за руководством Быстрый запуск кода Visual Studio и создал локальную долговременную функцию.Я получил сообщение об ошибке, когда моя долговременная функция была запущена и ожидала client.startNew внутри функции стартера, Id = 84dc103d-bef9-4450-b4c6-9e612c6dc263) System.Private.CoreLib: Исключительная ситуация при выполнении функции: Functions.HttpTrigger.System.Private.CoreLib: Результат: Сбой Исключение: Ошибка: запись EPROTO 101057795: ошибка: 140770FC: процедуры SSL: SSL23_GET_SERVER_HELLO: неизвестный протокол: openssl \ ssl \ s23_clnt.c: 827: стек: ошибка: запись EPROTO 101057795: ошибка: 140770: Подпрограммы SSL: SSL23_GET_SERVER_HELLO: неизвестный протокол: openssl \ ssl \ s23_clnt.c: 827: в _errnoException (util.js: 992: 11) в WriteWrap.afterWrite [как oncomplete] (net.js: 864: 14).

Моя среда:

  • Базовые инструменты функций Azure (2.3.148)
  • Версия времени выполнения функции (2.0.12210.0)
  • Узел.js 8

Вот мой код, только что скопированный из учебника.

const df = require("durable-functions");
module.exports = async function (context, req) {
        const client = df.getClient(context);
        const instanceId = await client.startNew(req.params.functionName, undefined, req.body);

        context.log(`Started orchestration with ID = '${instanceId}'.`);

        return client.createCheckStatusResponse(context.bindingData.req, instanceId);
    };

{
  "bindings": [
    {
      "authLevel": "anonymous",
      "name": "req",
      "type": "httpTrigger",
      "direction": "in",
      "route": "orchestrators/{functionName}",
      "methods": ["post"]
    },
    {
      "name": "$return",
      "type": "http",
      "direction": "out"
    },
    {
      "name": "starter",
      "type": "orchestrationClient",
      "direction": "in"
    }
  ]
}

Как мне решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 21 декабря 2018

Просто подытожил, что я сделал на случай, если кто-то столкнется с той же проблемой.

В Windows 10

  1. введите инструкцию в терминале, чтобы установить переменную среды

    setx WEBSITE_HOSTNAME "localhost: 7071"

  2. Закрыть против кода и перезапустить его

0 голосов
/ 19 декабря 2018

Обновление

Проблема была исправлена ​​с момента выпуска пакета npm durable-functions v1.1.3


Вы обнаружили известную проблему .

Это связано с текущей реализацией IWebHookProvider , которая заставляет класс DurableOrchestrationClient использовать неправильные URL-адреса webhook.Обходной путь должен установить локальную переменную среды WEBSITE_HOSTNAME в localhost :, например.localhost: 7071

Если VS Code был открыт до установки env, не забудьте перезапустить его, чтобы новая переменная env вступила в силу.

...