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

如何通过Azure DevOps CI/CD管道在Azure Cosmos DB(MongoDB版)执行.sh文件?

在Azure DevOps CI/CD管道中执行代码仓库内的.sh文件(针对Azure Cosmos DB MongoDB版)

核心思路

Azure DevOps没有专门适配Cosmos DB MongoDB版的.sh执行任务,但可以通过通用Bash脚本任务结合MongoDB Shell(mongosh)实现需求——利用Cosmos DB MongoDB版对MongoDB协议的兼容性,完成数据库操作。

具体实现步骤

  • 步骤1:添加Bash脚本任务到管道
    在CI/CD管道的YAML或经典编辑器中添加Bash任务,配置如下:

    • 脚本类型选「文件路径」,指向代码仓库内的.sh文件路径(例如./scripts/cosmos-mongo-ops.sh)
    • YAML示例:
      - task: Bash@3
        inputs:
          filePath: './scripts/cosmos-mongo-ops.sh'
          workingDirectory: '$(System.DefaultWorkingDirectory)'
        env:
          COSMOS_DB_CONN: $(CosmosDBMongoConnectionString)
      

    通过env字段将管道变量注入脚本环境,避免硬编码敏感信息。

  • 步骤2:配置管道敏感变量
    在Azure DevOps管道的「变量」设置中,添加CosmosDBMongoConnectionString变量,值为你的Cosmos DB MongoDB版连接字符串,勾选「保密」选项防止明文泄露。

  • 步骤3:编写.sh文件内容
    在.sh文件中用mongosh连接Cosmos DB并执行操作,示例如下:

    #!/bin/bash
    
    # 检查并安装mongosh(针对Ubuntu托管代理)
    if ! command -v mongosh &> /dev/null
    then
        echo "Installing mongosh..."
        wget -qO - https://www.mongodb.org/static/pgp/server-7.0.asc | sudo apt-key add -
        echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list
        sudo apt-get update && sudo apt-get install -y mongodb-org-shell
    fi
    
    # 连接数据库并执行操作(示例:查询数据)
    mongosh "$COSMOS_DB_CONN" --eval '
    const docs = db.getCollection("demo-collection").find({status: "active"}).toArray();
    print(`Found ${docs.length} active documents`);
    '
    

    若使用Windows托管代理,需调整mongosh的安装命令,或使用预安装了mongosh的自定义代理。

  • 步骤4:验证网络与权限
    确保Azure DevOps代理的IP已加入Cosmos DB防火墙允许列表;若使用微软托管代理,测试环境可临时开启「允许所有网络访问」,生产环境建议配置服务端点。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 01:05:45