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

如何从Azure Keyvault获取值到cypress.config.js文件中

从Azure Key Vault加载密钥到Cypress环境变量

直接在cypress.config.js里用$()语法不生效,因为这是Shell环境的变量引用方式,而Cypress配置文件运行在Node.js环境,必须通过Azure官方Node SDK读取Key Vault中的密钥。

步骤1:安装依赖

先安装Azure密钥保管库及身份验证的相关包:

npm install @azure/keyvault-secrets @azure/identity --save-dev

步骤2:编写密钥获取逻辑

在cypress.config.js中添加异步读取逻辑,通过Azure SDK拉取密钥:

const { defineConfig } = require("cypress");
const { SecretClient } = require("@azure/keyvault-secrets");
const { DefaultAzureCredential } = require("@azure/identity");

// 替换为你的Key Vault实例URL
const keyVaultUrl = "https://your-key-vault-name.vault.azure.net/";

async function fetchKeyVaultSecrets() {
  const credential = new DefaultAzureCredential();
  const client = new SecretClient(keyVaultUrl, credential);

  // 批量获取密钥,替换为你Key Vault中实际的密钥名称
  const [baseUrlRes, usernameRes, passwordRes, clientIdRes, clientSecretRes, scopeRes] = await Promise.all([
    client.getSecret("BASEURL"),
    client.getSecret("USERNAME"),
    client.getSecret("PASSWORD"),
    client.getSecret("CLIENTID"),
    client.getSecret("CLIENTSECRET"),
    client.getSecret("SCOPE")
  ]);

  return {
    baseUrl: baseUrlRes.value,
    username: usernameRes.value,
    password: passwordRes.value,
    clientId: clientIdRes.value,
    clientSecret: clientSecretRes.value,
    scope: scopeRes.value
  };
}

module.exports = defineConfig({
  e2e: {
    async setupNodeEvents(on, config) {
      // 将密钥注入Cypress环境变量
      const secrets = await fetchKeyVaultSecrets();
      config.env = { ...config.env, ...secrets };
      return config;
    },
  },
});

步骤3:配置Azure认证参数

运行Cypress前,需设置Azure身份验证的环境变量(供DefaultAzureCredential使用):

  • Windows(PowerShell):
$env:AZURE_CLIENT_ID = "你的服务主体客户端ID"
$env:AZURE_CLIENT_SECRET = "你的服务主体客户端密钥"
$env:AZURE_TENANT_ID = "你的Azure租户ID"
  • Linux/macOS(终端):
export AZURE_CLIENT_ID="你的服务主体客户端ID"
export AZURE_CLIENT_SECRET="你的服务主体客户端密钥"
export AZURE_TENANT_ID="你的Azure租户ID"

注意事项

  • 确保你的服务主体拥有Key Vault的Secret User权限,可在Azure门户的Key Vault访问控制中配置。
  • 密钥名称需与Key Vault中创建的完全一致,区分大小写。
  • CI/CD环境中,直接在平台的环境变量面板配置Azure认证参数即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 19:44:54