【问题标题】:API Management - the same policy created for every operationAPI 管理 - 为每个操作创建相同的策略
【发布时间】:2020-08-13 15:35:44
【问题描述】:

当我使用函数应用选项添加 API 时。所有函数都作为操作导入,每个操作都有相同的后端策略:

    <inbound>
        <base />
        <set-backend-service id="apim-generated-policy" backend-id="myfunctionapp" />
    </inbound>
    <backend>
        <base />
    </backend>
    <outbound>
        <base />
    </outbound>
    <on-error>
        <base />
    </on-error>
</policies>

我有很多这样的操作,而且它们都有相同的策略。有一种方法可以为所有操作创建共享策略。因此,最好为每个操作创建一个共享策略而不是策略。

有没有办法在“添加 API”步骤中为所有操作指定一个共享策略,而不是在每个操作上都有这些策略?我找不到方法(至少在 Azure UI 中没有)。还有其他方法吗?

【问题讨论】:

    标签: azure-api-management


    【解决方案1】:

    如果您想将政策应用于所有操作,请选择All operations

    在入站处理部分选择&lt;/&gt; (code editor) 图标。

    然后将所需的策略代码粘贴到相应的块之一中。

    <policies>    
        <inbound>
            <base />
            <set-backend-service id="apim-generated-policy" backend-id="myfunctionapp" />
        </inbound>
        <backend>
            <base />
        </backend>
        <outbound>
            <base />
        </outbound>
        <on-error>
            <base />
        </on-error>
    </policies>
    

    更多详情可以参考article

    【讨论】:

    • 没错,该策略适用于所有操作。但是,在“添加 API”过程中,相同的策略会应用于每个单独的操作(我有大约 100 个)。 “添加 API” 步骤应该足够聪明,可以确定由于所有操作都来自同一个函数应用,因此该策略可以由所有操作共享,而无需单独应用于每个操作。
    • 这就是我们决定导入函数应用程序的方式。它的驱动是假设许多客户会将多个功能应用程序导入到同一个 API 中,并在 APIM 级别将它们组合起来。当功能应用特定策略置于操作级别时,这更容易做到。如果您在 API 中仅使用单个功能应用程序,则确实在 API 级别放置 set-backend-policy 会更容易。
    • @vitaliy-kurokhtin 这很有道理。有没有办法禁用此行为,以便在“添加 api”操作期间不创建这些策略?如果没有,有没有办法删除在操作级别应用的所有策略?
    猜你喜欢
    • 2019-01-30
    • 2020-08-20
    • 2020-11-11
    • 1970-01-01
    • 1970-01-01
    • 2022-12-22
    • 1970-01-01
    • 2011-10-02
    • 2020-06-11
    相关资源
    最近更新 更多