Azure API Management是一种云托管服务,可以在任何平台上为现有HTTP API添加许多功能。这包括与安全性,API密钥管理,缓存,文档和许多其他交叉策略相关的功能。有关详细信息,请参阅:http://azure.microsoft.com/apim
如何使用 apim 和逻辑应用将代理应用程序数据读取到 azure sql
我有代理应用程序,它生成需要使用 APIM 和逻辑应用程序将其推送到 azure sql 的数据。 我创建了代理应用程序将以 json 格式发布数据 我已经创建了空白...
将 Azure 前门与 APIM 和 Azure Web App 连接
我们计划将Azure Front Door用于Azure App Service(Web应用程序),并计划使用可能不需要向外部公开或直接向公众公开的APIM。只有 Azure Web 应用程序才能...
在 Azure API 管理中将最低 apiVersion 启用为 2021-08-01,导致现有逻辑应用出现保存问题或部署错误
将 API 管理的最低 apiVersion 保存或启用到 2021 年 8 月 1 日后,我无法保存或部署(通过 ARM 模板)在
如何在 Azure API 管理中绕过 API 中单个端点的订阅密钥
我想避免为 API 中的单个端点提供订阅密钥。到目前为止,我发现我可以禁用整个产品或 API 的订阅,这不是我想要的。这还算...
登录 Azure APIM 开发者门户后,最好不要手动传递授权标头
我们已将 API 集成到 API 管理中,并通过利用 Azure AD B2C 身份提供商实施安全措施,我们通过创建新的 Azure AD B2C 租户来配置 Azure AD B2C...
在 APIM 中,在其中一个 API 内,我在“所有操作”内有一个与此类似的策略: 在 APIM 中,其中一个 API 内,我在“所有操作”内有一个与此类似的策略: <policies> <inbound> <base /> </inbound> <backend> <base /> </backend> <outbound> <base /> <choose> <when condition="@(context.Variables["xvar"] == null || (string)context.Variables["xvar"] == "oneValue")"> <trace source="info" severity="information"> <message>Hi, xvar exist</message> </trace> </when> <otherwise /> </choose> </outbound> <on-error> <base /> </on-error> </policies> 变量 xvar 确实存在于该 API 中的少数操作中,例如t1。那里的政策看起来与此类似: <policies> <inbound> <set-variable name="xvar" value="oneValue" /> <base /> <set-backend-service base-url="https://testingtest.com" /> </inbound> <backend> <base /> </backend> <outbound> <base /> </outbound> <on-error> <base /> </on-error> </policies> 但是,此 API 中的大多数操作中并不存在此变量,例如t2。因此,当我调用此操作时,我收到此错误: choose (1.469 ms) { "messages": [ { "message": "Expression evaluation failed.", "expression": "context.Variables[\"xvar\"] == null || (string)context.Variables[\"xvar\"] == \"oneValue\"", "details": "The given key was not present in the dictionary.\r\n at System.Collections.Generic.Dictionary`2.get_Item(TKey key)" }, "Expression evaluation failed. The given key was not present in the dictionary.\r\n at System.Collections.Generic.Dictionary`2.get_Item(TKey key)", "The given key was not present in the dictionary." ] } 我应该改变“所有操作”中的条件来检查字典中是否存在或不存在变量 请使用以下表达式检查所有操作中变量是否存在: context.Variables.ContainsKey("xvar") 所有操作 - 政策: <policies> <inbound> <base /> <set-backend-service base-url="http://echoapi.cloudapp.net/api" /> </inbound> <backend> <base /> </backend> <outbound> <base /> <choose> <when condition="@(context.Variables.ContainsKey("xvar") && !context.Variables.GetValueOrDefault<string>("xvar").Equals(string.Empty))"> <trace source="info" severity="information"> <message>Hi, xvar exist</message> <metadata name="xvar" value="@(context.Variables.GetValueOrDefault<string>("xvar"))" /> </trace> </when> <otherwise /> </choose> </outbound> <on-error> <base /> </on-error> </policies> t1 - 政策: <policies> <inbound> <set-variable name="xvar" value="oneValue" /> <base /> <set-backend-service base-url="http://echoapi.cloudapp.net/api" /> </inbound> <backend> <base /> </backend> <outbound> <base /> </outbound> <on-error> <base /> </on-error> </policies> t2 - 政策: <policies> <inbound> <base /> <set-backend-service base-url="http://echoapi.cloudapp.net/api" /> </inbound> <backend> <base /> </backend> <outbound> <base /> </outbound> <on-error> <base /> </on-error> </policies> 这会跟踪 t1 和 t2 的以下消息: 出站 t1 - 选择: { "message": "Expression was successfully evaluated.", "expression": "context.Variables.ContainsKey(\"xvar\") && !context.Variables.GetValueOrDefault<string>(\"xvar\").Equals(string.Empty)", "value": true } 出站 t1 - 追踪: { "message": "Expression was successfully evaluated.", "expression": "context.Variables.GetValueOrDefault<string>(\"xvar\")", "value": "oneValue" } 出境t2 - 选择: { "message": "Expression was successfully evaluated.", "expression": "context.Variables.ContainsKey(\"xvar\") && !context.Variables.GetValueOrDefault<string>(\"xvar\").Equals(string.Empty)", "value": false }
我可以使用 OAuth 令牌作为 Ocp-Apim-Subscription-Key 的替代品吗?
我正在考虑使用 Azure API 管理为许多后端 API 提供一致的前端。 大多数 API 使用 OAuth 2.0 应用程序流程进行保护(ClientID + 客户端密钥,...
我正在寻求快速胜利来保护具有多个订阅密钥的 API,以便将它们分配给不同的提供商并允许单独访问。我知道 Oauth2 可能是最好的...
Azure APIM 导入 OpenAPI 规范在 GitHub 构建操作中失败
从我的 GitHub Build 操作登录到 Azure 后,我尝试更新我的 APIM OpenAPI 规范以使其与我的源代码保持同步。 我尝试通过执行以下命令来做到这一点: - 名称:更新
尝试通过 Terraform 更新 Azure API 网关操作后端时出现问题
我想要的只是使用开放 API yaml 文档中定义的 api 操作来部署我的 Azure API 网关。我的下面的代码部署了 Windows 函数应用程序和 API 网关,我也可以看到
如何在 Blazor Wasm 中阻止 HttpClient/浏览器请求客户端证书
使用 HTTP 客户端从 Blazor WASM 调用 APIM 上的 API 时,系统会要求用户选择客户端证书。我们不需要这种额外的身份验证方法,因为该方法的安全性是...
除非取消并立即调用 Azure API 服务 (APIM),否则为什么我会收到 ECONNRESET?
我有一个经过身份验证的 Azure 应用服务证书。该服务位于 APIM 后面,负责进行身份验证。自某些天以来,此服务现在会系统地返回 ECONNRESET 错误,当...
有没有办法让命名值记录文本和表达式的组合。下面给出了我想要实现的示例格式,不幸的是我尝试了所有方法,但表达式是...
我是 API 管理新手。我创建了一个管理资源,已将函数应用程序连接到该资源,此外,我还确保需要订阅才能访问 API/函数...
将 SignalR 与 Azure APIM 和应用程序网关结合使用时连接失败
就上下文而言,我当前使用的 Azure 环境具有以下核心组件: Azure APIM > 应用程序网关 > Web 应用程序防火墙 > Vnet > ASE > 应用程序服务...
您对我应该如何使用端点创建 Azure api 管理有什么建议吗 GET /users 只能从我们公司内部网络访问 使用 ip 过滤获取内部和外部的 /cars...
通过 Azure APIM 将 AD 令牌传递到 Dynamics Web API 服务
我有一个 Azure APIM 服务,它在后台连接到 Dynamics Web API。我有一个现有的应用程序注册 (backend-crm-api),它公开对 Dynamics Web Api 的访问 - 这是做的...
我的入境政策中有此内容: 我的入境政策中有此内容: <choose> <when condition="@(context.Subscription.Name=="someName")" /> <when condition="@(context.Subscription.Name=="otherName")" /> <otherwise> <rate-limit calls="50" renewal-period="300" remaining-calls-variable-name="remainingCallsPerSubscription" /> </otherwise> </choose> 它似乎没有按预期工作,还限制了上面指定的订阅,我错过了什么吗? 附注我属于消费模式 我使用了相同的策略来免除正在使用的订阅密钥 rate-limit 策略。 出于测试目的,我接听了 10 个电话。 <policies> <inbound> <base /> <choose> <when condition="@(context.Subscription.Name=="test")" /> <when condition="@(context.Subscription.Name=="demo")" /> <otherwise> <rate-limit calls="10" renewal-period="300" remaining-calls-variable-name="remainingCallsPerSubscription" /> </otherwise> </choose> </inbound> <backend> <base /> </backend> <outbound> <base /> </outbound> <on-error> <base /> </on-error> </policies> 测试时,您需要传递订阅密钥名称为Ocp-Apim-Subscription-Key,该值将是您的订阅密钥的值,否则它将获取context.Subscription.Name的值作为Built-in all-access subscription默认情况下。 当 context.Subscription.Name 的值为 false 时,我得到如下所示的预期响应。 为了获得预期的响应,请确保您没有在全局或 API 级别定义任何其他策略。
Azure API 管理 DevOps 资源工具包的 GitHub 存储库页面上缺少 GitHub 操作示例链接
有 Azure API Management Devops Resource Toolkit GitHub 存储库,它描述了如何将 Azure API 部署到其他 API < instance using resource toolkit and provided some links of samples for
将 Azure API 管理实例部署到虚拟网络时出现问题 - 内部模式
我在内部模式下将 Azure API 管理实例部署到虚拟网络时遇到一些奇怪的问题。本质上,我正在关注 Microsoft 的这篇文章。 在...中部署 Azure APIM