Serverless的1001种玩法:那些部署的小细节

上一回,我们学会了如何利用Github Action完成脚本的自动化部署,我们学会了自动化部署的步骤,接下来我们聊聊部署过程中一些小细节。

Github Action

Github Action 是 GitHub 的持续集成服务,于2018年10月推出,利用Github Action能够完成自动化构建,轻松部署我们的github项目。
Github Action的入门教程这里不再赘述,感兴趣的同学,可以从这里(https://help.github.com/en/categories/automating-your-workflow-with-github-actions)自行了解。
OK,话不多说,让我们开始今天的内容吧。

Github Action

上一回我们创建了自己的workflow,每当有代码提交到github仓库,就会自动部署代码到云函数,那我们具体看下workflow文件的这些字段都有什么含义。

name: deploy2scf # 自定义workflow名称
on: [push] # push时触发
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: Set up Python
      uses: actions/setup-python@v2
      with:
        python-version: '3.x'
    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        pip install build
    - name: install SCF CLI # 安装SCF CLI
      run: sudo pip install scf
    - name: scf configure # scf cofigure, 配置appid, 地域和api秘钥等信息
      env: 
        APPID: 1306479574
        REGION: ap-guangzhou
        SECRET_ID: ${{ secrets.TENCENT_SECRET_ID }} # 值存放在第二步所说的secrets中
        SECRET_KEY: ${{ secrets.TENCENT_SECRET_KEY }} # 同上
      run: scf configure set --appid $APPID --region $REGION --secret-id $SECRET_ID --secret-key $SECRET_KEY
    - name: scf deploy # scf deploy
      run: scf deploy -t ./scf-python/serverless.yml -f

GitHub Actions 对应的配置文件是 workflow 文件,它存放在代码仓库的.github/workflows目录中。
workflow 文件固定为 YAML 格式,它的文件名可以任意取,但是后缀名统一为.yml,比如我们例子中的python-publish.yml。
一个代码库可以有多个 workflow 文件。
GitHub 只要发现.github/workflows目录里面有.yml文件,就会自动运行该文件。

workflow 文件的配置字段很多,详见官方文档(https://help.github.com/en/articles/workflow-syntax-for-github-actions)。这里我们介绍一下基本字段。

1)name

name字段是 workflow 的名称。如果省略该字段,默认为当前 workflow 的文件名。

name: deploy2scf # 自定义workflow名称

2)on

on字段指定触发 workflow 的条件。

on: [push] # push时触发

上面代码指定了,push事件触发 workflow,也就是有代码push到仓库的时候触发。

3)jobs..runs-on

runs-on字段指定运行所需要的虚拟机环境。它是必填字段。目前可用的虚拟机如下。

ubuntu-latest,ubuntu-18.04或ubuntu-16.04windows-latest,windows-2019或windows-2016macOS-latest或macOS-10.14

4)jobs..steps

steps字段指定每个 Job 的运行步骤,可以包含一个或多个步骤。每个步骤都可以指定以下三个字段。

jobs.<job_id>.steps.name:步骤名称。jobs.<job_id>.steps.run:该步骤运行的命令或者 action。jobs.<job_id>.steps.env:该步骤所需的环境变量。

完整的steps案例

steps:
    - uses: actions/checkout@v2
    - name: Set up Python
      uses: actions/setup-python@v2
      with:
        python-version: '3.x'
    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        pip install build
    - name: install SCF CLI # 安装SCF CLI
      run: sudo pip install scf
    - name: scf configure # scf cofigure, 配置appid, 地域和api秘钥等信息
      env: 
        APPID: 1306479574
        REGION: ap-guangzhou
        SECRET_ID: ${{ secrets.TENCENT_SECRET_ID }} # 值存放在第二步所说的secrets中
        SECRET_KEY: ${{ secrets.TENCENT_SECRET_KEY }} # 同上
      run: scf configure set --appid $APPID --region $REGION --secret-id $SECRET_ID --secret-key $SECRET_KEY
    - name: scf deploy # scf deploy
      run: scf deploy -t ./scf-python/serverless.yml -f

可以看到“run”字段的值是具体的可以执行的命令,比如sudo pip install scf
“env”字段的值对应环境变量的值(代码仓库 settings-Secrets 配置的变量)

总结

通过上面的教程,我们了解了Github Action自动将代码部署到云函数的配置的一些小细节,还不快尝试修改下看看效果吧。


欢迎关注我的公众号“NullPointer”,原创技术文章第一时间推送。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiaoshun007~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值