You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Visual Studio Team Services的Cumulocity应用自动发布问题咨询

当然可以通过Cumulocity的REST接口来完成Web应用ZIP的上传,我之前在类似的CI/CD流水线集成中做过这个操作,分享一下具体步骤和注意事项:

使用Cumulocity REST API上传Web应用ZIP文件

1. 准备认证信息

Cumulocity的API需要身份验证,最常用的是Basic Auth方式:

  • 组合你的租户ID、用户名和密码,格式为{tenantId}/{username}:{password}
  • 将这个字符串进行Base64编码,作为请求头Authorization: Basic {base64EncodedString}

你可以用命令行快速生成这个编码(Linux/macOS环境):

echo -n "myTenant/myUser:myPassword" | base64

PowerShell环境下的生成命令:

[Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes("myTenant/myUser:myPassword"))

2. 调用上传API

Cumulocity提供了专门的端点来上传Hosted类型的Web应用,请求详情如下:

  • 请求方法:POST
  • 端点:https://{your-cumulocity-domain}/application/applications
  • 请求头:
    • Authorization: Basic {your-base64-token}
    • Content-Type: multipart/form-data
  • 表单参数:
    • name: 你的应用名称(必填)
    • type: 固定为HOSTED(必填,标识这是Web托管应用)
    • file: 要上传的ZIP文件(必填,作为multipart表单的文件字段)

示例curl命令

curl -X POST "https://your-cumulocity-instance.com/application/applications" \
  -H "Authorization: Basic dXJsOnVzcg==" \
  -F "name=MyWebApp" \
  -F "type=HOSTED" \
  -F "file=@./path/to/your/app.zip"

3. 在VSTS发布流水线中集成

你可以在VSTS的发布阶段添加一个Shell Script或者PowerShell任务,把上传逻辑集成进去:

  • 将租户ID、用户名、密码、Cumulocity域名作为流水线的秘密变量存储,避免明文暴露
  • 在脚本中动态生成认证头,然后调用curl或者Invoke-RestMethod完成上传

PowerShell示例脚本

# 获取流水线变量
$tenantId = "$(CumulocityTenantId)"
$username = "$(CumulocityUsername)"
$password = "$(CumulocityPassword)"
$domain = "$(CumulocityDomain)"
$appName = "$(AppName)"
$zipPath = "$(System.DefaultWorkingDirectory)/BuildArtifact/app.zip"

# 生成Basic Auth令牌
$authString = "$tenantId/$username`:$password"
$authBytes = [System.Text.Encoding]::UTF8.GetBytes($authString)
$authBase64 = [Convert]::ToBase64String($authBytes)
$headers = @{ "Authorization" = "Basic $authBase64" }

# 构建表单数据
$form = @{
    name = $appName
    type = "HOSTED"
    file = Get-Item $zipPath
}

# 调用API上传
Invoke-RestMethod -Uri "https://$domain/application/applications" -Method Post -Headers $headers -Form $form

4. 关键注意事项

  • ZIP文件结构:确保ZIP包根目录包含cumulocity.json配置文件,这是Cumulocity识别应用的核心配置文件
  • 权限要求:用于认证的用户必须拥有ROLE_APPLICATION_MANAGEMENT_ADMIN角色,否则会返回权限不足的错误
  • 重复上传处理:如果同名应用已存在,API会返回409冲突,你可以先调用GET /application/applications?name={appName}检查应用是否存在,再决定是创建新应用还是通过PUT请求更新现有应用

内容的提问来源于stack exchange,提问作者Brenners Daniel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:13:23