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

Azure不同环境APIM实例能否复用API订阅密钥及问题解决

跨APIM环境复用订阅密钥的可行性及问题解决

核心结论

完全可行,Azure APIM支持手动指定订阅的主/次密钥,可直接在dev环境的目标API订阅中配置test环境的密钥值。


方法一:Postman调用Management API的问题解决

你遇到的407错误是代理认证失败,解决步骤:

  • 检查Postman代理设置:如果你的网络需要通过企业代理访问Azure,需在Postman的「Settings > Proxy」中配置代理地址、端口及认证信息(用户名/密码)。
  • 确认请求类型:如果dev环境中还未创建test-1这个订阅,不能直接用PUT请求更新,需先发送POST请求创建订阅(同时指定密钥),请求URL改为:
    https://{{serviceName}}.management.azure-api.net/subscriptions/{{subscriptionId}}/resourceGroups/{{resourceGroupName}}/providers/Microsoft.ApiManagement/service/{{serviceName}}/subscriptions?api-version=2019-01-01
    
    请求体示例(指定密钥、关联目标API):
    {
      "name": "test-1",
      "properties": {
        "primaryKey": "<test环境的primary key>",
        "secondaryKey": "<test环境的secondary key>",
        "state": "active",
        "scope": "/apis/<目标API的ID>"
      }
    }
    
  • 验证Management API权限:确保已在APIM实例的「Management API」页面启用访问,且请求头中携带了正确的Authorization: SharedAccessSignature ...签名(可从APIM管理页面生成临时签名)。

方法二:PowerShell命令的问题解决

你遇到的ResourceNotFound错误是因为Set-AzApiManagementSubscription(注意:AzureRm模块已弃用,建议使用Az模块)是更新已有订阅的命令,但dev环境中不存在你指定的<azuresubscriptionid>对应的订阅。正确操作流程:

  1. 切换到Az模块(先卸载旧的AzureRm模块,安装Az模块):
    Uninstall-Module AzureRm -Force -AllowClobber
    Install-Module Az -Force -AllowClobber
    Connect-AzAccount
    
  2. 若dev环境无目标订阅,先创建并指定密钥:
    $apimContext = New-AzApiManagementContext -ResourceGroupName "<RGName>" -ServiceName "<dev环境APIM名称>"
    # 创建API级订阅并设置密钥,若为服务级订阅则Scope设为"/"
    New-AzApiManagementSubscription -Context $apimContext `
      -Name "test-1" `
      -PrimaryKey "<test环境的primary key>" `
      -SecondaryKey "<test环境的secondary key>" `
      -State "Active" `
      -Scope "/apis/<目标API的ID>"
    
  3. 若dev环境已存在该订阅,直接更新密钥:
    # 通过订阅名称查询获取订阅ID
    $subId = (Get-AzApiManagementSubscription -Context $apimContext -Name "test-1").SubscriptionId
    # 更新密钥
    Set-AzApiManagementSubscription -Context $apimContext `
      -SubscriptionId $subId `
      -PrimaryKey "<test环境的primary key>" `
      -SecondaryKey "<test环境的secondary key>" `
      -State "Active"
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 22:50:36