【Azure APIM】调用APIM的备份接口时候遇见InvalidParameters错误

简介: "Invalid parameter: This request is not authorized to perform this operation.\r\nParameter name: backupContainerName (value: [backupcontainer])"

问题描述

根据官方文档,可以调用REST API来对APIM执行备份操作。

要备份 API 管理服务,请发出以下 HTTP 请求:

POST https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/backup?api-version={api-version}

其中:

  • subscriptionId - 订阅的 ID,该订阅包含的 API 管理服务是你尝试备份的
  • resourceGroupName - Azure API 管理服务的资源组名称
  • serviceName - 正在创建其备份的 API 管理服务的名称,在创建时指定
  • api-version - 有效的 REST API 版本,例如 2021-08-012021-04-01-preview

在请求正文中,指定目标存储帐户名称、Blob 容器名称、备份名称和存储访问类型。 如果存储容器不存在,备份操作将创建存储容器。

{

"storageAccount": "{storage account name for the backup}",

"containerName": "{backup container name}",

"backupName": "{backup blob name}",

"accessKey": "{access key for the account}"

}

但是,总是遇见了如下错误:

{

 "error": {

   "code": "InvalidParameters",

   "message": "Invalid parameter: This request is not authorized to perform this operation.\r\nParameter name: backupContainerName (value: [backupcontainer])",

   "details": null,

   "innerError": null

 }

}

 

问题解答

出现错误 “This request is not authorized to perform this operation.\r\nParameter name: backupContainerName”, 说明APIM资源没有权限对Storage Account Container进行读取操作。

需要检查以下几点:

1) 因为请求使用的Access Key方式访问,所以需要检查 Storage Account 是否启用了防火墙,是否允许公网访问?

2) 如果启用了防火墙,则需要根据文档,开启 APIM 的Resource Instance访问,并且选择指定的APIM Managed Identity。

3) 检查APIM Managed Identity是否有写入Blob的权限,比如需要配置:Storage Blob Data Contributor

4) 在APIM的备份请求体中,需要用 "accessType": "SystemAssignedManagedIdentity" 替换 "accessKey": "{access key for the account}"

 

只要以上都检查后,就能解决not authorized to perform this operation的错误。

 

参考资料

如何使用 Azure API 管理中的服务备份和还原实现灾难恢复 : https://docs.azure.cn/zh-cn/api-management/api-management-howto-disaster-recovery-backup-restore?tabs=rest

 


当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!

相关文章
|
8月前
|
Java
Java程序的流程控制
程序执行顺序经典三类: 1. **顺序结构**: 代码从上至下依次执行。 2. **分支结构**: - `if/else`: 根据条件选择执行路径。 - `switch`: 通过匹配值选择分支,需注意`break`避免穿透现象。 3. **循环结构**: 控制代码重复执行,如`for`, `while`, `do...while`等。 (注:markdown格式不支持内嵌卡片或图片,故摘要中未包含原文中的图片信息。)
166 7
|
8月前
|
Linux 应用服务中间件 nginx
Linux 快速搭建 Overleaf 5.0 附中文字体及完整 TexLive 安装教程(2024最新版)
2024最新版 Linux 极速安装 Overleaf 5.0 手把手教学!附 XeLatex 修复,新增中文字体以及安装完整版 TexLive 教程!
|
9月前
|
数据中心
蓝易云 - 1U和2U的服务器怎么选择
总的来说,选择1U还是2U服务器,主要取决于你的特定需求,包括空间、性能、扩展性和散热等因素。
839 6
|
弹性计算 云计算
产品动态丨阿里云计算巢月刊-2023年第07期
计算巢服务实例支持接入ROS资源/支持服务商自定义服务架构图等5项功能发布与更新;计算巢资源组功能的最佳实践、如何利用服务间的依赖关系构建新服务、如何通过ROS模板中可用区与实例规格的约束来保证服务的高可用性的最佳实践……让优秀的企业软件生于云、长于云~
产品动态丨阿里云计算巢月刊-2023年第07期
|
8月前
|
数据采集 API 网络安全
Python Requests代理使用入门指南
《Python Requests 代理使用入门指南》将带你深入了解如何使用Python Requests库来配置HTTP代理,并灵活处理各种权限和服务器响应问题。从代理服务器的基础知识,到代理认证与授权设置,本指南为初学者提供了全面的教学内容。
Python Requests代理使用入门指南
|
8月前
|
存储 监控 网络安全
saltStack自动化工具
saltStack自动化工具
190 7
|
机器学习/深度学习 算法
|
8月前
|
负载均衡 网络协议 应用服务中间件
Nginx负载配置
Nginx负载配置
99 8
|
缓存 分布式计算 算法
SparkSQL 初识_1
快速学习 SparkSQL 初识_1
153 0