从Funcraft迁移到Serverless Devs

由于后期将不再维护Funcraft,如果您是通过Funcraft实现资源管理的,为了给您带来更好的使用体验,建议将资源迁移至Serverless Devs管理。Serverless Devs具有更完善的功能例如端云联调、压测和安装依赖等。本文介绍将资源从Funcraft迁移至Serverless Devs不同组件的方式。

迁移方式

函数计算的开发团队基于Serverless Devs开发各种不同的组件,例如FC组件、ROS组件等。下文分别介绍如何从Funcraft迁移到FC组件和ROS组件,请按需选择迁移方式。关于Serverless Devs的各种组件的详细信息,请参见组件

从Funcraft迁移到Serverless Devs的FC组件

您可以通过以下方式迁移:

  • (推荐)方式一:一键式切换命令

    在Funcraft管理的函数资源目录下,执行以下命令,将Funcraft的YAML文件转换成Serverless Devs可以识别的YAML文件:

    s cli fc fun2s --target s.yaml

    成功执行一键式切换命令后,将在项目目录中生成一个s.yaml文件。

    在使用一键式切换命令实现迁移时,按需选择以下参数:

    • --source:指定使用Funcraft管理的函数资源路径。

    • --target:指定迁移后的YAML文件名称。默认迁移后的文件名称是s.yamls.yml,如果您想自定义YAML文件的名称,则需要使用此参数指定。

    • --force:如果在迁移时出现一样的文件名称,可以通过该参数强制覆盖已存在的同名称文件。

    • (必选)--region string:指定部署资源的地域。

    输出示例:

     fc-transform.zip file decompression completed
    [2021-09-02T10:31:28.870] [INFO ] [FC-TRANSFORM] - Using funcraft yaml: /test/demo/template.yml
    [2021-09-02T10:31:28.884] [INFO ] [FC-TRANSFORM] - Reminder serverless devs yaml path: /test/demo/s.yaml
    
    Tips for next step
    
    ======================
    * Invoke Event Function: s local invoke -t s.yaml
    * Invoke Http Function: s local start -t s.yaml
    * Deploy Resources: s deploy -t s.yaml
    
    End of method: fun2s
  • 方式二:资源同步

    当您的资源已成功部署到函数计算时,您可以使用同步管理资源的相关命令,进行资源同步,从而实现使用Serverless Devs管理项目。关于如何同步管理资源,请参见同步资源

从Funcraft迁移到Serverless Devs的ROS组件

在Funcraft管理的函数资源目录下,执行以下命令,将Funcraft的YAML文件转换成Serverless Devs可以识别的YAML文件:

s cli fc-transform fun2ros --target s.yaml

成功执行一键式切换命令后,将在项目目录中生成一个s.yaml文件。

在使用一键式切换命令实现迁移时,按需选择以下参数:

  • --source:指定使用Funcraft管理的函数资源路径。

  • --target:指定迁移后的YAML文件名称。默认迁移后的文件名称是s.yamls.yml,如果您想自定义YAML文件的名称,则需要使用此参数指定。

  • --force:如果在迁移的过程中出现一样的文件名称,可以通过该参数强制覆盖文件。

  • (必选)--region string:指定部署资源的地域。

输出示例:

[2021-09-02T10:34:53.909] [INFO ] [FC-TRANSFORM] - Using funcraft yaml: /test/demo/template.yml
[2021-09-02T10:34:53.923] [INFO ] [FC-TRANSFORM] - Reminder serverless devs yaml path: /test/demo/s.yaml

Tips for next step

======================
* Deploy Resources: s deploy -t s.yaml

End of method: fun2ros