tocdepth

2

C#

Встроенный в FunctionGraph редактор кода не поддерживает C#. Чтобы запустить код из примера ниже:

  1. На консоли управления выберите Computing → FunctionGraph.

  2. Нажмите Create Function.

  3. В выпадающем списке Runtime выберите «C# (.NET Core 3.1)», а в Handler введите «assembly::src.Program::myFunc».

  4. Скачайте архив с исходниками.

  5. Загрузите архив в FunctionGraph.

  6. Сохраните функцию.

  7. Запустите тест.

Выполняемый код

using HC.Serverless.Function.Common;
using System;
using System.IO;

namespace src
{
    class Program
    {
        static void Main(string[] args) { }
        public Stream myFunc(Stream input,IFunctionContext context)
        {
            //Get function name
            string f_name = "Hello world! Function name is " + context.FunctionName;
            //Print function name
            Console.WriteLine(f_name);

            var ms = new MemoryStream();
            var sw = new StreamWriter(ms);
            sw.Write(f_name);
            sw.Flush();
            ms.Position = 0;
            return ms;
        }
    }
}

Обработчик

При создании новой функции в FunctionGraph нужно вручную указать Handler — имя функции, которую FunctionGraph вызывает, чтобы выполнить ваш код. Оно должно соответствовать тому имени, которое вы определяете при создании функции.

Handler для C# имеет следующий формат:

[assembly_name]::[namespace].[class_name]::[execution_function_name]

Где:

  • assembly_name — название файла сборки .NET для вашего приложения. В примере это файл assembly.deps.json.

  • namespace — название пространства имен. В примере это строка namespace src.

  • class_name — название класса. В примере это строка class Program.

  • execution_function_name — название метода. Функция в примере — public Stream myFunc(Stream input,IFunctionContext context) { // TODO }, ее название — myFunc.

Функция «execution_function_name» должна иметь два входящих аргумента:

  • event — параметр события, определенный для функции, в формате JSON. Набор атрибутов зависит от типа события.

  • context — это контекстные методы, предоставляемые для выполнения функции.

Примечание

Редактирование кода в онлайн-интерпретаторе не поддерживается.

FunctionGraph поддерживает C# .NET Core 2.0, .NET Core 2.1 и C# .NET Core 3.1.

Чтобы запустить свой проект в FunctionGraph:

  1. Скачайте FSS C# SDK и поместите библиотеку HC.Serverless.Function.Common.dll в каталог с вашим проектом.

  2. Добавьте в конфигурационный файл “your_program_name.csproj” путь до библиотеки:

    <ItemGroup>
        <Reference Include="HC.Serverless.Function.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null">
        <HintPath>../HC.Serverless.Function.Common.dll</HintPath>
        </Reference>
    </ItemGroup>
    
  3. Откройте коммандную строку и перейдите в каталог с вашим проектом:

    cd C:\my_project

  4. Проверьте текущую версию .NET:

    “C:\Program Files\dotnet\dotnet.exe” --info

    Если у вас установлено несколько версий .NET, создание и сборку вашей программы следует запускать с флагом --framework :

    “C:\Program Files\dotnet\dotnet.exe” new console --framework net3.1 -n your_program_name

    “C:\Program Files\dotnet\dotnet.exe” build --framework netcoreapp3.1

  5. Добавьте исходники в архив и загрузите в консоль FunctionGraph.

Тест и просмотр результата

Результат выполнения появится после запуска теста и отработки функции.

Нажмите Test и после отработки функции ознакомьтесь с результатами. Если в поле Function Output будет «Hello world! Function name is [your-function-name]», значит функция отработала правильно.

Запустили Evolution free tier
для Dev & Test
Получить