现在有很多函数计算服务,通过函数计算服务可以在服务上运行自己的代码,而不需要理会服务器的部署以及运行代码存在的并发问题。这些问题都会在云进行计算。使用阿里的函数计算服务可以使用 dotnet core 2.1 的框架,同时测试使用免费。本文告诉搭建如何在阿里的函数计算服务上运行自己的代码

首先是打开阿里云 https://cn.aliyun.com 进入函数计算服务

点击进入函数计算控制台在右边的快速入口点击新建函数

dotnet C# 使用阿里函数计算服务_C#

先创建事件函数,这个函数最简单

dotnet C# 使用阿里函数计算服务_C#_02

下一步需要选择使用 dotnet core 2.1 服务,然后填写所在服务和函数名称,这里的函数入口的填写将会存在一点坑,可以先使用默认的值,接下来再修改

dotnet C# 使用阿里函数计算服务_C#_03

先尝试在本地创建一个 dotnet core 2.1 版本的控制台项目,注意创建的框架需要使用 dotnet core 2.1 版本,可以在 csproj 文件里面通过修改 TargetFramework 的值修改版本

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp2.1</TargetFramework>
  </PropertyGroup>

</Project>

在 Program.cs 文件里面添加一个静态的公开的方法 Foo 用于在阿里服务器上执行,注意将 Program 类修改为公有

using System;

namespace RaweayerkeJebarkewere
{
    public class Program
    {
        public static void Main()
        {
            Console.WriteLine("Hello World!");
        }

        public static void Foo(object o)
        {
            Console.WriteLine("Hello World!");
        }
    }
}

为什么 Foo 方法需要一个 object 的参数,这是因为在 阿里服务器将会通过反射调用 Foo 方法,要求调用的方法存在一个参数

此时写好代码,通过命令行编译一下,可以上传的代码是 debug 版的,将 bin\Debug\netcoreapp2.1\ 文件夹压缩,此时要求压缩包里面根文件夹就包含了 *.dll 文件

我创建的控制台项目是 RaweayerkeJebarkewere 的命令,也就是在 bin\Debug\netcoreapp2.1\ 创建了 RaweayerkeJebarkewere.dll 文件

返回刚才的阿里的函数计算创建页面,填写函数入口,这里的函数入口写起来有些诡异

文件名::命名空间.类名::函数名

我这里的文件是RaweayerkeJebarkewere.dll也就是文件名是RaweayerkeJebarkewere而命名空间和类名就不用说了

函数名注意不需要加上括号

RaweayerkeJebarkewere::RaweayerkeJebarkewere.Program::Foo

将压缩了 RaweayerkeJebarkewere.dll 的文件通过点击代码包上传

也就是填写所在服务和函数名称选择使用 dotnet core 2.1 加上函数入口就可以了

在跳转的代码执行页面点击执行就可以看到输出,如果可以输出那么运行就成功了

如果需要修改函数入口,请点击概览页面,然后点击配置就可以修改

我搭建了自己的博客 https://blog.lindexi.com/ 欢迎大家访问,里面有很多新的博客。

如果在博客看到有任何不懂的,欢迎交流