Serverless 架构下的 AI 应用开发
![](https://filescdn.proginn.com/3d26b3d624f059f9af0cc11378707b21/68874c3de61cdc8f91d3522f1804e2d4.webp)
![](https://filescdn.proginn.com/a8943bf7d03a2d0e3e798543abb3c328/a6c763d5bfe226196ac686fe90e9ebbd.webp)
关注我们,后台回复 手册免费获取产品解决方案
![](https://filescdn.proginn.com/34e293c8c10cccd6bdbee500d2a3f9d3/b54be64f653b08ecaf66dbdefaf1f24e.webp)
导读
![](https://filescdn.proginn.com/651086983273ae279de23291dfe7bdf5/9631756c826b6051d9ca95e86fb34c23.webp)
Serverless 架构与 CI/CD 工具的结合
![](https://filescdn.proginn.com/983c37425eb61d6fec5e01878bf71e7f/f2b7dafea34529864b245d5815c0f68d.webp)
![](https://filescdn.proginn.com/6493329ee2b07593ba3a2ccbca0c813d/45615edddf88cee538a0265070c6941c.webp)
与 GitHub Action 的集成
name: Serverless Devs Project CI/CD
on:
push:
branches: [ master ]
jobs:
serverless-devs-cd:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: 12
registry-url: https://registry.npmjs.org/
- run: npm install
- run: npm install -g @serverless-devs/s
- run: s config add --AccountID ${{secrets.AccountID}} --AccessKeyID
${{secrets.AccessKeyID}} --AccessKeySecret ${{secrets.AccessKeySecret}} -a default
- run: s deploy
通过 NPM 安装最新版本的 Serverless Devs 开发者工具:
run: npm install -g @serverless-devs/s
通过 config 命令进行密钥等信息的配置:
run: s config add --AccountID ${{secrets.AccountID}} --AccessKeyID ${{secrets.
AccessKeyID}} --AccessKeySecret ${{secrets.AccessKeySecret}} -a default
执行某些命令,例如通过 deploy 命令进行项目的部署,或者通过 build 等命令进行项目的构建:
run: s deploy
GitHub Secrets 页面
![](https://filescdn.proginn.com/55380c6da2e5191610ee7578831809c0/88a7c5a737962b942d06e9d4c7a38019.webp)
![](https://filescdn.proginn.com/e985927f16b29c1842f556101438a6a3/7eba35abd8d5e5b34f0b7b7649ff52cb.webp)
与 Gitee Go 的集成
name: serverless-devs
displayName: 'Serverless Devs Project CI/CD'
triggers: #流水线触发器配置
push:
- matchType: PRECISE
branch: master
commitMessage: ''
stages:
- stage:
name: deploy-stage
displayName: 'Deploy Stage'
failFast: false
steps: #构建步骤配置
- step: npmbuild@1 #采用NPM编译环境
name: deploy-step
displayName: 'Deploy Step'
inputs: #构建输入参数设定
nodeVersion: 14.15 #指定 node 环境版本为 14.15
goals: | #安装依赖,配置相关主题、部署参数并发布部署
node -v
npm -v
npm install -g @serverless-devs/s
s co nfig add --AccountID $ACCOUNTID --AccessKeyID $ACCESSKEYID --AccessKeySecret $ACCESSKEYSECRET -a default
s deploy
通过 NPM 安装最新版本的 Serverless Devs 开发者工具:
npm install -g @serverless-devs/s
通过 config 命令进行密钥等信息的配置:
s config add --AccountID $ACCOUNTID --AccessKeyID $ACCESSKEYID --AccessKeySecret
$ACCESSKEYSECRET -a default
执行某些命令,例如通过 deploy 命令进行项目的部署,或者通过 build 等命令进行项目的构建:
s deploy
![](https://filescdn.proginn.com/91c7fa54871c3df650fdd7a6493d2d50/2ee3be972d2c83d21323d011573195aa.webp)
![](https://filescdn.proginn.com/cb4344bc7519b0045bd0f7d6b558734a/c763ff87e2f734d9f0822f017cc5d5e4.webp)
![](https://filescdn.proginn.com/e83d59264733a518551fbbb95bd24a0e/c78fe0da1d573a85bed47b8453bbcb0d.webp)
与 Jenkins 的集成
![](https://filescdn.proginn.com/ad55fc37374d1a326ae0a96f9aab56cb/ee9049be21c16df13b3610f91473646c.webp)
jenkins-alicloud-account-id : 阿里云 accountId
jenkins-alicloud-access-key-id : 阿里云 accessKeyId
jenkins-alicloud-access-key-secret : 阿里云 accessKeySecret
Jenkins 凭据设置页面
pipeline {
agent {
docker {
image 'maven:3.3-jdk-8'
}
}
environment {
ALICLOUD_ACCESS = 'default'
ALICLOUD_ACCOUNT_ID = credentials('jenkins-alicloud-account-id')
ALICLOUD_ACCESS_KEY_ID = credentials('jenkins-alicloud-access-key-id')
ALICLOUD_ACCESS_KEY_SECRET = credentials('jenkins-alicloud-access-key-secret')
}
stages {
stage('Setup') {
steps {
sh 'scripts/setup.sh'
}
}
}
}
environment 部分:主要是根据上面步骤配置的密钥信息,进行密钥的处理。 stages 部分:包括 sh 'scripts/setup.sh'部分,即运行 scripts/setup.sh 文件,进行相关内容的准备和配置。
#!/usr/bin/env bash
echo $(pwd)
curl -o- -L http://cli.so/install.sh | bash
source ~/.bashrc
echo $ALICLOUD_ACCOUNT_ID
s config add --AccountID $ALICLOUD_ACCOUNT_ID --AccessKeyID $ALICLOUD_ACCESS_KEY_
ID --AccessKeySecret $ALICLOUD_ACCESS_KEY_SECRET -a $ALICLOUD_ACCESS
(cd code && mvn package && echo $(pwd))
s deploy -y --use-local --access $ALICLOUD_ACCESS
安装最新版本的 Serverless Devs 开发者工具:
curl -o- -L http://cli.so/install.sh | bash
通过 config 命令进行密钥等信息的配置:
s config add --AccountID $ALICLOUD_ACCOUNT_ID --AccessKeyID $ALICLOUD_ACCESS_
KEY_ID --AccessKeySecret $ALICLOUD_ACCESS_KEY_SECRET -a $ALICLOUD_ACCESS
执行某些命令,例如通过 deploy 命令进行项目的部署,或者通过 build 等命令进行项目构建:
s deploy -y --use-local --access $ALICLOUD_ACCESS
与云效的集成
# input your command here
npm install -g @serverless-devs/s
s config add --AccountID ${ACCOUNTID} --AccessKeyID ${ACCESSKEYID} --AccessKeySecret
${ACCESSKEYSECRET} -a default
s deploy
与 GitHub Action、Gitee Go 以及 Jenkins 的配置类似,与云效集成同样主要包括 3 部分。
安装最新版本的 Serverless Devs 开发者工具:
npm install -g @serverless-devs/s
通过 config 命令进行密钥等信息的配置:
s config add --AccountID ${ACCOUNTID} --AccessKeyID
${ACCESSKEYID} --AccessKeySecret
执行某些命令,例如通过 deploy 命令进行项目的部署,或者通过 build 等命令进行项目的构建:
s deploy -y
![](https://filescdn.proginn.com/c028a2d92ce0b7124f2016c10a181351/ccafa7992a82411b4596287d0615e9e9.webp)
![](https://filescdn.proginn.com/68076650a7cf090ae9b3536a1e4effa6/7356c7d2169b763146cd9846b0172dd5.webp)
CI/CD 平台集成
下载工具:命令为 npm install -g @Serverless-devs/s。 配置密钥:命令为 s config add --AccountID $ACCOUNTID --AccessKeyID $ACCESSKEYID --AccessKeySecret $ACCESSKEYSECRET -a default。 项目部署:命令为 s deploy。
Serverless 应用的可观测性
![](https://filescdn.proginn.com/1b2b357eb16c9e5669bb813e070634a9/40864de7a0b644962ee5b58b955bccdd.webp)
![](https://filescdn.proginn.com/09a3cc0183e40520ab5af256928c977d/763d994a09b7fc6eab7358d658ab0723.webp)
![](https://filescdn.proginn.com/1767e7163bd9b43296cf6973d41d907a/6e64b955674a95d7e6c98d3c9112bf2a.webp)
![](https://filescdn.proginn.com/105fb11c519e6f40a0de4fe78d983788/5abc3c354261f3a499c2836579e56d01.webp)
![](https://filescdn.proginn.com/ef051aaf0ac8017dc7aab331282e69cf/d13f56af546c6dab43aebebdfdcf2ee7.webp)
![](https://filescdn.proginn.com/503a330106a1ee1c0e71da7f00a3778a/e8062dc85cc2ab25baec1ec3392dbb67.webp)
新书推荐
![](https://filescdn.proginn.com/0e9f8a37112957f28904289fbcf4e11f/fe0ed095d30ce2aa262d2c1e38ff82a5.webp)
点击下方免费获取产品手册!
评论