Можно ли использовать как dotnet, так и узел в функциях Azure 2.0? - PullRequest
0 голосов
/ 26 августа 2018

Поскольку JS API Durable Functions к настоящему времени ограничен, мне интересно, могу ли я написать свой код оркестрации с помощью сценариев C # и свои функции активности с помощью узла в функциях Azure 2.0?

Ответы [ 2 ]

0 голосов
/ 28 августа 2018

Мы собираемся опубликовать выпуск v2 Functions, который устраняет возможность запуска нескольких языков в одном приложении Function.В дальнейшем все функции в приложении Function должны быть написаны на одном языке.(Обратите внимание, что приложения функций v1 не будут затронуты этим.)

Мы собираемся объявить о доступности JS общего назначения в конце этого года, которая будет включать остальную часть API.Обходной путь, который мы рекомендуем в настоящее время, аналогичен тому, что задокументировано здесь. В вашем случае вы можете представить некоторые API-интерфейсы JavaScript через HTTP и заставить функции активности C # вызывать их из приложения Function, содержащего ваш оркестратор C #.

0 голосов
/ 27 августа 2018

Обновление

Опубликован новый выпуск, функциональное приложение требует одного языка прямо сейчас. Так что этот метод больше не действителен.


Вы, вероятно, говорите об этом пределе , поскольку в JS некоторые C # API еще не реализованы, а некоторые не будут реализованы.

Мы можем вызвать JS Activity в функции оркестровки C #. Просто тест с простым действием возвращает строку, работает как положено.

Для локальной разработки, FUNCTIONS_WORKER_RUNTIME (в local.settings.json) указывает наш рабочий язык приложения функции, только функции, соответствующие этой среде выполнения, могут распознаваться узлом функции. Например, во время выполнения dotnet функции js игнорируются.

  1. Удалите FUNCTIONS_WORKER_RUNTIME и хост сможет работать с разными языками.

  2. Добавьте одну папку с именем вашей функции Activity в папку приложения функции, содержащую function.json и index.js. См. Иллюстрацию ниже (в VSCode, аналогично VS ).

    VSCode illustration

  3. Добавить действие CopyToOutputDirectory в functionappname.csproj.

    <ItemGroup>
    ...
        <None Update="MyJsActivity\index.js">
          <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
        </None>
        <None Update="MyJsActivity\function.json">
        <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
        </None>
    </ItemGroup>
    
  4. Не стесняйтесь устанавливать модуль узла при необходимости, не забудьте добавить действие CopyToOutputDirectory для package.json, чтобы мы могли устанавливать модули, используя его во время развертывания.

Кроме того, на портале сейчас нет такой эквивалентной настройки, хост по умолчанию предлагает разные языковые рабочие. После развертывания все должно работать.

...