本文介绍在云效公有云版本中,如何创建可供BizWorks使用的基于镜像部署的流水线。
使用场景
基于镜像的流水线部署主要包括:使用已构建好的镜像直接进行部署。
在使用云效流水线时,您会根据使用需求增加代码扫描、单元测试或人工卡点等节点,这都可能会导致云效流水线运行失败,所以云效流水线中的每个节点都需要配置Webhook,目的是在云效流水线运行异常时通知BizWorks同步更新应用的部署状态。
步骤一:配置环境变量
如果需要在BizWorks工作台调用云效流水线,您需要配置的环境变量,分别是:
- BW_AUTH_TOKEN
- BW_TENANT_ID
- BW_USER_ID
- BW_USER_NAME
- BW_DOMAIN_NAME
- BW_PROJECT_CODE
- BW_APPLICATION_CODE
- BW_DEPLOYMENT_CODE
环境变量配置如下图所示:
步骤二:部署应用
- 添加应用部署节点。
- 配置执行命令任务步骤。执行命令的脚本样例如下:
# 部署实例 result=$(curl -s "${BW_DOMAIN_NAME}/devBackend/v2/deployment/deployInstance" \ -H "Content-Type: application/json" \ -H "x-bw-us-auth-way: jwt" \ -H "Authorization: Bearer ${BW_AUTH_TOKEN}" \ -H "x-bw-tenant-id: ${BW_TENANT_ID}" \ -H "x-bw-user-id: ${BW_USER_ID}" \ -H "x-bw-user-name: ${BW_USER_NAME}" \ -X POST -d "{\"deploymentCode\": \"${BW_DEPLOYMENT_CODE}\"}") if [[ $(echo "${result}" | grep -c '"code":"OK"') = 0 ]] ; then echo "触发应用部署 [ 失败 ] - ${result}" exit 1 else echo "触发应用部署 [ 成功 ]" fi # 检查实例状态 while :; do sleep 5 status=$(curl -s "${BW_DOMAIN_NAME}/devBackend/v2/deployment/getInstanceDeployStatusFromPipeline" \ -H "Content-Type: application/json" \ -H "x-bw-us-auth-way: jwt" \ -H "Authorization: Bearer ${BW_AUTH_TOKEN}" \ -H "x-bw-tenant-id: ${BW_TENANT_ID}" \ -H "x-bw-user-id: ${BW_USER_ID}" \ -H "x-bw-user-name: ${BW_USER_NAME}" \ -X POST -d "{\"deploymentCode\": \"${BW_DEPLOYMENT_CODE}\"}") # echo $result if [[ $(echo ${status} | grep '"code":"OK"' | grep 'Running' | wc -l) = 1 ]] ; then echo "检查部署状态 [ 部署中 ]" elif [[ $(echo ${status} | grep '"code":"OK"' | grep 'Cancelled' | wc -l) = 1 ]] ; then echo "检查部署状态 [ 取消 ]" exit 1 elif [[ $(echo ${status} | grep '"code":"OK"' | grep 'Failed' | wc -l) = 1 ]] ; then echo "检查部署状态 [ 失败 ]" exit 1 elif [[ $(echo ${status} | grep '"code":"OK"' | grep 'Succeeded' | wc -l) = 1 ]] ; then echo "检查部署状态 [ 成功 ]" exit 0 elif [[ $(echo ${status} | grep '"code":"OK"' | grep 'Abnormal' | wc -l) = 1 ]] ; then echo "检查部署状态 [ 异常 ]" exit 1 else echo "检查部署状态 [ 失败 ]" exit 1 fi done
步骤三:配置Webhook
为每个节点添加插件并配置Webhook,具体如下图所示:
相关参数配置如下:
- 插件类型选择为Webhook通知插件。
- 设置webhook地址,格式为
${BizWorks控制台域名}/devBackend/v2/deployment/updateDeploymentStatusWebhook?x-bw-us-auth-way=jwt&access_token=${BW_AUTH_TOKEN}
- 运行状态配置为失败和取消。
文档内容是否对您有帮助?