开发者社区 > 云原生 > Serverless > 正文

自定义运行时怎么做 CI自动部署?现在都是我打包成 zip 后手动上传的

自定义运行时怎么做 CI自动部署?现在都是我打包成 zip 后手动上传的

展开
收起
大圣东游 2023-06-08 10:29:51 100 0
6 条回答
写回答
取消 提交回答
  • 用应用中心,或者云效/Jenkins/Git action+ S 工具

    此答案来自钉钉群“阿里函数计算官网客户"

    2023-06-08 18:00:27
    赞同 展开评论 打赏
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    阿里云函数计算中使用自定义运行时进行 CI/CD 是非常常见的方式,可以通过以下步骤实现:

    1. 在你的 CI/CD 系统中,编写打包程序,将你的代码及相关依赖打成 zip 包,并上传到指定的对象存储(如阿里云 OSS)中。这里需要注意:上传的 zip 中需要包含你的应用程序、函数控制台所需的 bootstrap 文件和 handler 入口文件,以及任何所需的依赖库。

    2. 配置函数计算服务,选择你已经上传的自定义运行时(runtime),并将执行入口函数(handler)、内存大小(Memory Size)、超时时间(Timeout)等信息填写完整。

    3. 配置触发器,一般选择 API网关触发器或者定时器触发器等,具体根据你的业务场景进行选择。

    4. 编写脚本将你的 zip 包下载到函数计算上,并解压到 /tmp 目录下:

    curl -o /tmp/app.zip $DOWNLOAD_URL
    unzip -o /tmp/app.zip -d /tmp/
    
    1. 修改 bootstrap 文件内容,使其引导程序在 /tmp 目录下执行你的应用程序:
    #!/usr/bin/env bash
    
    export PATH="/code/nodejs/bin:$PATH"
    export LD_LIBRARY_PATH="/code/nodejs/lib:/code/nodejs/lib64:$LD_LIBRARY_PATH"
    
    # 修改原有 `node <your-entry-file>` 的启动方式,改为指向解压后的执行文件
    node /tmp/index.js
    
    1. 执行解压后的应用程序,启动你的函数计算应用:
    chmod +x /tmp/bootstrap
    cd /tmp/
    ./bootstrap
    

    至此,自定义运行时的自动部署就完成了。如果你想要进一步优化,也可以考虑使用阿里云函数计算提供的 Serverless Devs 工具来进行自动化部署流程。

    2023-06-08 15:55:20
    赞同 展开评论 打赏
  • 天下风云出我辈,一入江湖岁月催,皇图霸业谈笑中,不胜人生一场醉。

    自定义运行时可以通过构建工具(如Maven、Gradle)和持续集成工具(如Jenkins、Travis CI等)来实现CI自动部署。具体步骤如下:

    使用构建工具编写自定义运行时代码,并构建成可执行的JAR文件或WAR包。 将编译后的程序包上传至持续集成工具的存储库中,可以将其上传至私有的存储库(如Amazon S3)或公共的存储库(如Google Cloud Storage)中。 在持续集成工具中配置自动部署脚本,以便于在代码发生变更时自动部署最新的程序包。可以使用Pipeline等配置工具来自定义部署流程。 配置Jenkins、Travis CI等持续集成工具,使其在代码有变更时自动执行自动部署脚本,将最新的程序包部署至目标运行时环境中。 通过以上步骤,即可实现自定义运行时的CI自动部署。

    2023-06-08 14:04:23
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    自定义运行时是指在云函数中使用其他语言或框架,而不仅限于原生的 Node.js 或 Python 环境。在部署自定义运行时时,可以将代码打包成 zip 文件并手动上传到云函数服务中,但这种方式很容易出现人为错误,无法保证代码的稳定性和可靠性,因此构建自动化的 CI/CD 流程可以提高部署效率和代码质量。

    1. 在代码管理平台(如 GitHub、GitLab)创建仓库,并将代码 push 到仓库中。

    2. 在云函数服务中创建一个云函数,并开启自定义运行时功能。

    3. 在代码管理平台中创建一个 webhook,并将 webhook 配置为触发云函数服务中相应函数的自定义 URL 地址。

    4. 在 CI 工具中配置构建流程,包括拉取代码、安装依赖、打包代码等操作,并将最终打包好的代码上传到云函数服务中。

    5. 在代码管理平台中提交代码变更后,触发 webhook,从而触发 CI 工具自动构建和部署代码。

    2023-06-08 12:54:16
    赞同 展开评论 打赏
  • 阿里云函数计算支持通过自定义运行时来运行自己的代码。在使用自定义运行时时,你需要将代码打包成一个压缩包(比如 zip)并上传到阿里云函数计算中。

    如果你想实现自动化部署,可以使用阿里云提供的命令行工具 fun 来实现。

    具体步骤如下:

    1. 安装阿里云命令行工具 fun,可以参考阿里云官方文档:https://help.aliyun.com/document_detail/161353.html;
    2. 在本地编写好代码并进行测试;
    3. 使用 fun package 命令将代码打包成 zip 压缩包,比如:fun package --runtime nodejs12 --output myapp.zip
    4. 将打包好的压缩包上传到阿里云函数计算中,可以使用 fun deploy 命令,比如:fun deploy --region cn-hangzhou --zip-file myapp.zip
    5. 配置自动化部署任务,可以使用 CI/CD 工具(比如 Jenkins、Travis CI 等)来实现。

    使用 fun 工具可以方便地进行代码打包和部署,同时也可以集成到 CI/CD 流程中,实现自动化部署。

    2023-06-08 11:01:28
    赞同 展开评论 打赏
  • GitHub https://github.com/co63oc/cloud

    可以做成docker镜像,CI拉取镜像

    2023-06-08 10:36:57
    赞同 展开评论 打赏
滑动查看更多
问答地址:

快速交付实现商业价值。

热门讨论

热门文章

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载