通过函数计算的Custom Runtime,您可以使用Dart在函数计算平台编写函数。本文介绍快速部署和调用Dart函数的详细步骤。您可以修改Dart示例中的代码,实现自己的需求。

前提条件

您已完成以下操作:
说明 本文提供的示例适用于安装Docker的场景。如果不想使用Docker,则需安装.NET Core 3.1。安装详情,请参见 dot.net.core3.1。运行命令详情,请参见 fc-custom-demo

操作步骤

  1. 执行以下命令克隆示例工程到本地。
    git clone https://github.com/awesome-fc/fc-custom-demo          
    说明 如果您没有安装Git,可以直接在浏览器地址栏输入 https://github.com/awesome-fc/fc-custom-demo,然后单击下载按钮直接下载示例代码。
  2. 可选:dart-demo目录中的代码示例进行修改实现您的业务逻辑。
  3. 执行以下命令进入克隆的示例项目中。
    1. 执行以下命令进入fc-custom-demo项目。
      cd fc-custom-demo
    2. 执行以下命令进入dart-demo项目。
      cd dart-demo
  4. 执行以下命令构建目标引导。
    make deploy
    预期输出:
    docker run --rm -it -v $(pwd):/tmp google/dart:2.8.4 bash -c "export PUB_HOSTED_URL=https://pub.flutter-io.cn && cd tmp/code && dart2native index.dart && mv index.exe bootstrap"
    Generated: /tmp/code/index.exe
    chmod +x code/bootstrap
  5. 执行以下命令将项目部署至函数计算。
    fun deploy -y
    预期输出。
    ...
    Waiting for service dart-demo to be deployed...
            Waiting for function dart-func to be deployed...
                    Waiting for packaging function dart-func code...
                    The function dart-func has been packaged. A total of 2 files were compressed and the final size was 2.57 MB
            function dart-func deploy success
    service dart-demo deploy success
  6. 执行以下命令调用部署的函数。
    fun invoke -e "Hello World"
    说明 如果您使用的是Windows操作系统,则需将 bootstrap文件格式修改为UNIX格式。
    预期输出。
    ========= FC invoke Logs begin =========
    FC Invoke Start RequestId: 81d9e365-7f42-46e6-b27f-7981d16303b6
    hello world
    FC Invoke End RequestId: 81d9e365-7f42-46e6-b27f-7981d16303b6
    
    Duration: 1.08 ms, Billed Duration: 100 ms, Memory Size: 1024 MB, Max Memory Used: 17.50 MB
    ========= FC invoke Logs end =========
    
    FC Invoke Result:
    Hello World