你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

New-AzureRmApplicationGateway

创建应用程序网关。

警告

截至 2024 年 2 月 29 日,AzureRM PowerShell 模块已正式弃用。 为了确保持续获得支持和更新,建议用户从 AzureRM 迁移到 Az PowerShell 模块。

尽管 AzureRM 模块仍可能正常运行,但它不再维护或受支持,但会根据用户的自由裁量权和风险继续使用任何继续使用模块。 有关过渡到 Az 模块的指导,请参阅我们的迁移资源

语法

New-AzureRmApplicationGateway
   -Name <String>
   -ResourceGroupName <String>
   -Location <String>
   -Sku <PSApplicationGatewaySku>
   [-SslPolicy <PSApplicationGatewaySslPolicy>]
   -GatewayIPConfigurations <System.Collections.Generic.List`1[Microsoft.Azure.Commands.Network.Models.PSApplicationGatewayIPConfiguration]>
   [-SslCertificates <System.Collections.Generic.List`1[Microsoft.Azure.Commands.Network.Models.PSApplicationGatewaySslCertificate]>]
   [-AuthenticationCertificates <System.Collections.Generic.List`1[Microsoft.Azure.Commands.Network.Models.PSApplicationGatewayAuthenticationCertificate]>]
   [-TrustedRootCertificate <System.Collections.Generic.List`1[Microsoft.Azure.Commands.Network.Models.PSApplicationGatewayTrustedRootCertificate]>]
   [-FrontendIPConfigurations <System.Collections.Generic.List`1[Microsoft.Azure.Commands.Network.Models.PSApplicationGatewayFrontendIPConfiguration]>]
   -FrontendPorts <System.Collections.Generic.List`1[Microsoft.Azure.Commands.Network.Models.PSApplicationGatewayFrontendPort]>
   [-Probes <System.Collections.Generic.List`1[Microsoft.Azure.Commands.Network.Models.PSApplicationGatewayProbe]>]
   -BackendAddressPools <System.Collections.Generic.List`1[Microsoft.Azure.Commands.Network.Models.PSApplicationGatewayBackendAddressPool]>
   -BackendHttpSettingsCollection <System.Collections.Generic.List`1[Microsoft.Azure.Commands.Network.Models.PSApplicationGatewayBackendHttpSettings]>
   -HttpListeners <System.Collections.Generic.List`1[Microsoft.Azure.Commands.Network.Models.PSApplicationGatewayHttpListener]>
   [-UrlPathMaps <System.Collections.Generic.List`1[Microsoft.Azure.Commands.Network.Models.PSApplicationGatewayUrlPathMap]>]
   -RequestRoutingRules <System.Collections.Generic.List`1[Microsoft.Azure.Commands.Network.Models.PSApplicationGatewayRequestRoutingRule]>
   [-RedirectConfigurations <System.Collections.Generic.List`1[Microsoft.Azure.Commands.Network.Models.PSApplicationGatewayRedirectConfiguration]>]
   [-WebApplicationFirewallConfiguration <PSApplicationGatewayWebApplicationFirewallConfiguration>]
   [-AutoscaleConfiguration <PSApplicationGatewayAutoscaleConfiguration>]
   [-EnableHttp2]
   [-EnableFIPS]
   [-Zone <System.Collections.Generic.List`1[System.String]>]
   [-Tag <Hashtable>]
   [-Force]
   [-AsJob]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

说明

New-AzureRmApplicationGateway cmdlet 创建 Azure 应用程序网关。 应用程序网关需要以下各项:

  • 资源组。
  • 虚拟网络。
  • 后端服务器池,包含后端服务器的 IP 地址。
  • 后端服务器池设置。 每个池都有端口、协议和基于 Cookie 的相关性等设置,这些设置应用于池中的所有服务器。
  • 前端 IP 地址,即应用程序网关上打开的 IP 地址。 前端 IP 地址可以是公共 IP 地址或内部 IP 地址。
  • 前端端口,即应用程序网关上打开的公共端口。 命中这些端口的流量将重定向到后端服务器。
  • 绑定侦听器和后端服务器池的请求路由规则。 该规则定义在流量达到特定侦听器时应定向到的后端服务器池。 侦听器具有前端端口、前端 IP 地址、协议(HTTP 或 HTTPS)和安全套接字层(SSL)证书名称(如果配置 SSL 卸载)。

示例

示例 1:创建应用程序网关

PS C:\> $ResourceGroup = New-AzureRmResourceGroup -Name "ResourceGroup01" -Location "West US" -Tag @{Name = "Department"; Value = "Marketing"} 
PS C:\> $Subnet = New-AzureRmVirtualNetworkSubnetConfig -Name "Subnet01" -AddressPrefix 10.0.0.0/24
PS C:\> $VNet = New-AzureRmvirtualNetwork -Name "VNet01" -ResourceGroupName "ResourceGroup01" -Location "West US" -AddressPrefix 10.0.0.0/16 -Subnet $Subnet
PS C:\> $VNet = Get-AzureRmvirtualNetwork -Name "VNet01" -ResourceGroupName "ResourceGroup01"
PS C:\> $Subnet = Get-AzureRmVirtualNetworkSubnetConfig -Name $Subnet01 -VirtualNetwork $VNet 
PS C:\> $GatewayIPconfig = New-AzureRmApplicationGatewayIPConfiguration -Name "GatewayIp01" -Subnet $Subnet
PS C:\> $Pool = New-AzureRmApplicationGatewayBackendAddressPool -Name "Pool01" -BackendIPAddresses 10.10.10.1, 10.10.10.2, 10.10.10.3
PS C:\> $PoolSetting = New-AzureRmApplicationGatewayBackendHttpSettings -Name "PoolSetting01"  -Port 80 -Protocol "Http" -CookieBasedAffinity "Disabled"
PS C:\> $FrontEndPort = New-AzureRmApplicationGatewayFrontendPort -Name "FrontEndPort01"  -Port 80
# Create a public IP address
PS C:\> $PublicIp = New-AzureRmPublicIpAddress -ResourceGroupName "ResourceGroup01" -Name "PublicIpName01" -Location "West US" -AllocationMethod "Dynamic"
PS C:\> $FrontEndIpConfig = New-AzureRmApplicationGatewayFrontendIPConfig -Name "FrontEndConfig01" -PublicIPAddress $PublicIp
PS C:\> $Listener = New-AzureRmApplicationGatewayHttpListener -Name "ListenerName01"  -Protocol "Http" -FrontendIpConfiguration $FrontEndIpConfig -FrontendPort $FrontEndPort
PS C:\> $Rule = New-AzureRmApplicationGatewayRequestRoutingRule -Name "Rule01" -RuleType basic -BackendHttpSettings $PoolSetting -HttpListener $Listener -BackendAddressPool $Pool
PS C:\> $Sku = New-AzureRmApplicationGatewaySku -Name "Standard_Small" -Tier Standard -Capacity 2
PS C:\> $Gateway = New-AzureRmApplicationGateway -Name "AppGateway01" -ResourceGroupName "ResourceGroup01" -Location "West US" -BackendAddressPools $Pool -BackendHttpSettingsCollection $PoolSetting -FrontendIpConfigurations $FrontEndIpConfig  -GatewayIpConfigurations $GatewayIpConfig -FrontendPorts $FrontEndPort -HttpListeners $Listener -RequestRoutingRules $Rule -Sku $Sku

以下示例首先创建资源组和虚拟网络,并创建应用程序网关,如下所示:

  • 后端服务器池
  • 后端服务器池设置
  • 前端端口
  • 前端 IP 地址
  • 请求路由规则这四个命令创建虚拟网络。 第一个命令创建子网配置。 第二个命令创建虚拟网络。 第三个命令验证子网配置,第四个命令验证是否已成功创建虚拟网络。 以下命令创建应用程序网关。 第一个命令为之前创建的子网创建名为 GatewayIp01 的 IP 配置。 第二个命令创建名为 Pool01 的后端服务器池,其中包含后端 IP 地址列表,并将池存储在$Pool变量中。 第三个命令为后端服务器池创建设置,并将设置存储在$PoolSetting变量中。 forth 命令在端口 80 上创建前端端口,将其命名为 FrontEndPort01,并将端口存储在$FrontEndPort变量中。 第五个命令使用 New-AzureRmPublicIpAddress 创建公共 IP 地址。 第六个命令使用 $PublicIp 创建前端 IP 配置,将其命名为 FrontEndPortConfig01,并将其存储在$FrontEndIpConfig变量中。 第七个命令使用以前创建的$FrontEndIpConfig $FrontEndPort创建侦听器。 第八个命令为侦听器创建规则。 第九个命令设置 SKU。 第十个命令使用上述命令设置的对象创建网关。

参数

-AsJob

在后台运行 cmdlet

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-AuthenticationCertificates

指定应用程序网关的身份验证证书。

类型:List<T>[PSApplicationGatewayAuthenticationCertificate]
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-AutoscaleConfiguration

自动缩放配置

类型:PSApplicationGatewayAutoscaleConfiguration
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-BackendAddressPools

指定应用程序网关的后端地址池列表。

类型:List<T>[PSApplicationGatewayBackendAddressPool]
Position:Named
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-BackendHttpSettingsCollection

指定应用程序网关的后端 HTTP 设置列表。

类型:List<T>[PSApplicationGatewayBackendHttpSettings]
Position:Named
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-Confirm

提示你在运行 cmdlet 之前进行确认。

类型:SwitchParameter
别名:cf
Position:Named
默认值:False
必需:False
接受管道输入:False
接受通配符:False

-DefaultProfile

用于与 Azure 通信的凭据、帐户、租户和订阅。

类型:IAzureContextContainer
别名:AzureRmContext, AzureCredential
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-EnableFIPS

是否启用 FIPS。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-EnableHttp2

是否启用 HTTP2。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Force

强制运行命令而不要求用户确认。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-FrontendIPConfigurations

指定应用程序网关的前端 IP 配置列表。

类型:List<T>[PSApplicationGatewayFrontendIPConfiguration]
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-FrontendPorts

指定应用程序网关的前端端口列表。

类型:List<T>[PSApplicationGatewayFrontendPort]
Position:Named
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-GatewayIPConfigurations

指定应用程序网关的 IP 配置列表。

类型:List<T>[PSApplicationGatewayIPConfiguration]
Position:Named
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-HttpListeners

指定应用程序网关的 HTTP 侦听器列表。

类型:List<T>[PSApplicationGatewayHttpListener]
Position:Named
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-Location

指定要在其中创建应用程序网关的区域。

类型:String
Position:Named
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-Name

指定应用程序网关的名称。

类型:String
别名:ResourceName
Position:Named
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-Probes

指定应用程序网关的探测。

类型:List<T>[PSApplicationGatewayProbe]
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-RedirectConfigurations

重定向配置列表

类型:List<T>[PSApplicationGatewayRedirectConfiguration]
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-RequestRoutingRules

指定应用程序网关的请求路由规则列表。

类型:List<T>[PSApplicationGatewayRequestRoutingRule]
Position:Named
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-ResourceGroupName

指定要在其中创建应用程序网关的资源组的名称。

类型:String
Position:Named
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-Sku

指定应用程序网关的库存单位(SKU)。

类型:PSApplicationGatewaySku
Position:Named
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-SslCertificates

指定应用程序网关的安全套接字层(SSL)证书列表。

类型:List<T>[PSApplicationGatewaySslCertificate]
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-SslPolicy

指定应用程序网关的 SSL 策略。

类型:PSApplicationGatewaySslPolicy
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-Tag

以哈希表的形式进行键值对。 例如:@{key0=“value0”;key1=$null;key2=“value2”}

类型:Hashtable
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-TrustedRootCertificate

受信任的根证书列表

类型:List<T>[PSApplicationGatewayTrustedRootCertificate]
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-UrlPathMaps

指定应用程序网关的 URL 路径映射。

类型:List<T>[PSApplicationGatewayUrlPathMap]
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-WebApplicationFirewallConfiguration

指定 Web 应用程序防火墙(WAF)配置。 可以使用 Get-AzureRmApplicationGatewayWebApplicationFirewallConfiguration cmdlet 获取 WAF。

类型:PSApplicationGatewayWebApplicationFirewallConfiguration
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-WhatIf

显示运行该 cmdlet 时会发生什么情况。 cmdlet 未运行。

类型:SwitchParameter
别名:wi
Position:Named
默认值:False
必需:False
接受管道输入:False
接受通配符:False

-Zone

表示应用程序网关需要来自的可用性区域列表。

类型:List<T>[String]
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

输入

String

PSApplicationGatewaySku

PSApplicationGatewaySslPolicy

List<T>[[Microsoft.Azure.Commands.Network.Models.PSApplicationGatewayIPConfiguration, Microsoft.Azure.Commands.Network, Version=6.4.1.0, Culture=neutral, PublicKeyToken=null]]

List<T>[[Microsoft.Azure.Commands.Network.Models.PSApplicationGatewaySslCertificate, Microsoft.Azure.Commands.Network, Version=6.4.1.0, Culture=neutral, PublicKeyToken=null]]

List<T>[[Microsoft.Azure.Commands.Network.Models.PSApplicationGatewayAuthenticationCertificate, Microsoft.Azure.Commands.Network, Version=6.4.1.0, Culture=neutral, PublicKeyToken=null]]

List<T>[[Microsoft.Azure.Commands.Network.Models.PSApplicationGatewayFrontendIPConfiguration, Microsoft.Azure.Commands.Network, Version=6.4.1.0, Culture=neutral, PublicKeyToken=null]]

List<T>[[Microsoft.Azure.Commands.Network.Models.PSApplicationGatewayFrontendPort, Microsoft.Azure.Commands.Network, Version=6.4.1.0, Culture=neutral, PublicKeyToken=null]]

List<T>[[Microsoft.Azure.Commands.Network.Models.PSApplicationGatewayProbe, Microsoft.Azure.Commands.Network, Version=6.4.1.0, Culture=neutral, PublicKeyToken=null]]

List<T>[[Microsoft.Azure.Commands.Network.Models.PSApplicationGatewayBackendAddressPool, Microsoft.Azure.Commands.Network, Version=6.4.1.0, Culture=neutral, PublicKeyToken=null]]

List<T>[[Microsoft.Azure.Commands.Network.Models.PSApplicationGatewayBackendHttpSettings, Microsoft.Azure.Commands.Network, Version=6.4.1.0, Culture=neutral, PublicKeyToken=null]]

List<T>[[Microsoft.Azure.Commands.Network.Models.PSApplicationGatewayHttpListener, Microsoft.Azure.Commands.Network, Version=6.4.1.0, Culture=neutral, PublicKeyToken=null]]

List<T>[[Microsoft.Azure.Commands.Network.Models.PSApplicationGatewayUrlPathMap, Microsoft.Azure.Commands.Network, Version=6.4.1.0, Culture=neutral, PublicKeyToken=null]]

List<T>[[Microsoft.Azure.Commands.Network.Models.PSApplicationGatewayRequestRoutingRule, Microsoft.Azure.Commands.Network, Version=6.4.1.0, Culture=neutral, PublicKeyToken=null]]

List<T>[[Microsoft.Azure.Commands.Network.Models.PSApplicationGatewayRedirectConfiguration, Microsoft.Azure.Commands.Network, Version=6.4.1.0, Culture=neutral, PublicKeyToken=null]]

PSApplicationGatewayWebApplicationFirewallConfiguration

Hashtable

输出

PSApplicationGateway