为 Azure 逻辑应用中的无状态内置连接器启用有状态模式
适用于:Azure 逻辑应用(标准)
在标准逻辑应用工作流中,以下基于服务提供商的内置连接器默认是无状态的:
- Azure 服务总线
- SAP
- IBM MQ
若要在有状态模式下运行这些连接器操作,必须启用此功能。 本操作指南介绍如何为这些连接器启用有状态模式。
先决条件
Azure 帐户和订阅。 如果没有订阅,请注册试用版 Azure 订阅。
标准逻辑应用资源,你计划在其中创建使用已启用有状态模式的连接器操作的工作流。 如果你没有此资源,请立即创建标准逻辑应用资源。
一个 Azure 虚拟网络,其中包含要与逻辑应用集成的子网。 如果你没有这些项,请参阅以下文档:
在 Azure 门户中启用有状态模式
在 Azure 门户中,打开要在其中为这些连接器操作启用有状态模式的标准逻辑应用资源。
若要为逻辑应用启用虚拟网络集成,并将逻辑应用添加到之前创建的子网,请执行以下步骤:
在逻辑应用菜单资源中的“设置”下,选择“网络”。
在“出站流量配置”部分的“虚拟网络集成”旁边,选择“未配置”>“添加虚拟网络集成”。
在打开的“添加虚拟网络集成”窗格中,选择你的 Azure 订阅和你的虚拟网络。
从“子网”列表中,选择要在其中添加逻辑应用的子网。
完成后,选择“连接”,然后返回到“网络”页。
“虚拟网络集成”属性现在设置为所选的虚拟网络和子网,例如:
有关启用虚拟网络与应用集成的一般信息,请参阅在 Azure 应用服务中启用虚拟网络集成。
接下来,使用以下任一工具更新逻辑应用的基础网站配置 (<logic-app-name>.chinacloudsites.cn):
更新逻辑应用的网站配置
为逻辑应用启用虚拟网络集成后,必须使用以下方法之一更新逻辑应用的基础网站配置 (<logic-app-name>.chinacloudsites.cn):
- Azure 门户(不需要持有者令牌)
- Azure 资源管理 API(需要持有者令牌)
- Azure PowerShell(不需要持有者令牌)
Azure 门户
若要使用 Azure 门户配置虚拟网络专用端口,请执行以下步骤:
- 在 Azure 门户中,找到并打开标准逻辑应用资源。
- 在逻辑应用菜单上的“设置”下,选择“配置” 。
- 在“配置”页上,选择“常规设置”。
- 在“平台设置”下的“VNet 专用端口”框中,输入要使用的端口。
Azure 资源管理 API
若要使用 Azure 资源管理 API - 按 ID 更新完成此任务,请查看以下要求、语法和参数值。
要求
需要 OAuth 授权和持有者令牌。 若要获取持有者令牌,请执行以下步骤
登录到 Azure 门户后,打开 Web 浏览器的开发人员工具 (F12)。
通过发送任何管理请求来获取令牌,例如,通过在标准逻辑应用中保存工作流。
语法
使用指定的资源 ID 更新资源:
PATCH https://management.chinacloudapi.cn/{resourceId}?api-version=2021-04-01
参数值
元素 | 值 |
---|---|
HTTP 请求方法 | PATCH |
<resourceId> | subscriptions/{yourSubscriptionID}/resourcegroups/{yourResourceGroup}/providers/Microsoft.Web/sites/{websiteName}/config/web |
<yourSubscriptionId> | 你的 Azure 订阅的 ID |
<yourResourceGroup> | 包含你的逻辑应用资源的资源组 |
<websiteName> | 你的逻辑应用资源的名称,在本示例中为 mystandardlogicapp |
HTTP 请求正文 | {"properties": {"vnetPrivatePortsCount": "2"}} |
示例
https://management.chinacloudapi.cn/subscriptions/XXxXxxXX-xXXx-XxxX-xXXX-XXXXxXxXxxXX/resourcegroups/My-Standard-RG/providers/Microsoft.Web/sites/mystandardlogicapp/config/web?api-version=2021-02-01
Azure PowerShell
若要使用 Azure PowerShell 完成此任务,请查看以下要求、语法和值。 此方法不需要手动获取持有者令牌。
语法
Set-AzContext -Subscription {yourSubscriptionID}
$webConfig = Get-AzResource -ResourceId {resourceId}
$webConfig.Properties.vnetPrivatePortsCount = 2
$webConfig | Set-AzResource -ResourceId {resourceId}
有关详细信息,请参阅以下文档:
参数值
元素 | 值 |
---|---|
<yourSubscriptionID> | 你的 Azure 订阅的 ID |
<resourceId> | subscriptions/{yourSubscriptionID}/resourcegroups/{yourResourceGroup}/providers/Microsoft.Web/sites/{websiteName}/config/web |
<yourResourceGroup> | 包含你的逻辑应用资源的资源组 |
<websiteName> | 你的逻辑应用资源的名称,在本示例中为 mystandardlogicapp |
示例
https://management.chinacloudapi.cn/subscriptions/XXxXxxXX-xXXx-XxxX-xXXX-XXXXxXxXxxXX/resourcegroups/My-Standard-RG/providers/Microsoft.Web/sites/mystandardlogicapp/config/web?api-version=2021-02-01
排查错误
错误:预留实例计数无效
如果有错误指出“预留实例计数无效”,请使用以下解决方法:
$webConfig.Properties.preWarmedInstanceCount = $webConfig.Properties.reservedInstanceCount
$webConfig.Properties.reservedInstanceCount = $null
$webConfig | Set-AzResource -ResourceId {resourceId}
错误示例::
Set-AzResource :
{
"Code":"BadRequest",
"Message":"siteConfig.ReservedInstanceCount is invalid. Please use the new property siteConfig.PreWarmedInstanceCount.",
"Target": null,
"Details":
[
{
"Message":"siteConfig.ReservedInstanceCount is invalid. Please use the new property siteConfig.PreWarmedInstanceCount."
},
{
"Code":"BadRequest"
},
{
"ErrorEntity":
{
"ExtendedCode":"51021",
"MessageTemplate":"{0} is invalid. {1}",
"Parameters":
[
"siteConfig.ReservedInstanceCount", "Please use the new property siteConfig.PreWarmedInstanceCount."
],
"Code":"BadRequest",
"Message":"siteConfig.ReservedInstanceCount is invalid. Please use the new property siteConfig.PreWarmedInstanceCount."
}
}
],
"Innererror": null
}
防止在发生资源横向缩减事件期间丢失上下文
资源横向缩减事件可能会导致启用有状态模式的内置连接器的上下文丢失。 若要在发生此类事件之前防止丢失上下文,请修复逻辑应用资源可用的实例数。 这样,就不会发生横向缩减事件,从而可以防止潜在的上下文丢失。
在逻辑应用资源菜单中的“设置”下,选择“横向扩展”。
在“横向扩展”页上的“应用横向扩展”部分中,执行以下步骤:
将“强制实施横向扩展限制”设置为“是”,这会显示“最大横向扩展限制”。
将“始终就绪的实例数”数量设置为“计划横向扩展”部分中显示的“最大横向扩展限制”和“最大突发”数量,例如:
完成后,在“横向扩展”工具栏上选择“保存”。