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

如何在Terraform CDK中使用APIM命名值作为后端Header值?

需求可以实现

你可以借助APIM内部的命名值引用语法,结合Terraform CDK完成这个需求,具体操作如下:

  • 若你已经在APIM中创建了指向Key Vault密钥的命名值(比如名称为openai-api-key),直接在请求头的值中使用APIM的引用格式${{<命名值名称>}}即可。修改后的代码片段如下:
apim_backend = api_management_backend.ApiManagementBackend(self, "openai_apim_backend",
    name="cdktf-openai-backend",
    resource_group_name=openai_resource_group_name,
    api_management_name=apim_name,
    protocol="http",
    url="https://example.privatelink.openai.azure.com",
    credentials={
        "header": {
            "api-key": "${{openai-api-key}}",
            "Content-Type": "application/json"
        }
    }
)
  • 若你还未创建该命名值,也可以通过Terraform CDK先定义APIM命名值资源,再引用它的名称:

首先定义命名值:

const openaiApiKeyNamedValue = new api_management_named_value.ApiManagementNamedValue(this, "openai-api-key-nv", {
    name: "openai-api-key",
    resourceGroupName: openai_resource_group_name,
    apiManagementName: apim_name,
    secret: true,
    keyVault: {
        secretIdentifier: "https://your-keyvault.vault.azure.net/secrets/your-secret-name"
    }
});

然后在后端配置中引用:

apim_backend = api_management_backend.ApiManagementBackend(self, "openai_apim_backend",
    name="cdktf-openai-backend",
    resource_group_name=openai_resource_group_name,
    api_management_name=apim_name,
    protocol="http",
    url="https://example.privatelink.openai.azure.com",
    credentials={
        "header": {
            "api-key": `\${{${openaiApiKeyNamedValue.name}}}`,
            "Content-Type": "application/json"
        }
    }
)

APIM会自动解析${{...}}格式的内容,将其替换为对应命名值关联的Key Vault密钥内容,全程密钥会被安全存储和管理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 14:57:37