Elastic Load Balancing - 使用 Tools for PowerShell 的第 1 版範例 - AWS SDK 程式碼範例

文件 AWS SDK AWS 範例 SDK 儲存庫中有更多可用的 GitHub 範例。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Elastic Load Balancing - 使用 Tools for PowerShell 的第 1 版範例

下列程式碼範例示範如何使用 AWS Tools for PowerShell 搭配 Elastic Load Balancing - 第 1 版,來執行動作並實作常見案例。

Actions 是大型程式的程式碼摘錄,必須在內容中執行。雖然 動作會示範如何呼叫個別服務函數,但您可以在其相關案例中查看內容中的動作。

每個範例都包含完整原始程式碼的連結,您可以在其中找到如何在內容中設定和執行程式碼的指示。

主題

動作

下列程式碼範例示範如何使用 Add-ELBLoadBalancerToSubnet

for PowerShell 工具

範例 1:此範例會將指定的子網路新增至為指定的負載平衡器設定的子網路集。輸出包含子網路的完整清單。

Add-ELBLoadBalancerToSubnet -LoadBalancerName my-load-balancer -Subnet subnet-12345678

輸出:

subnet-12345678 subnet-87654321

下列程式碼範例示範如何使用 Add-ELBResourceTag

for PowerShell 工具

範例 1:此範例會將指定的標籤新增至指定的負載平衡器。此範例使用的語法需要 PowerShell 第 3 版或更新版本。

Add-ELBResourceTag -LoadBalancerName my-load-balancer -Tag @{ Key="project";Value="lima" },@{ Key="department";Value="digital-media" }

範例 2:使用 PowerShell 第 2 版,您必須使用 New-Object 為 Tag 參數建立標籤。

$tag = New-Object Amazon.ElasticLoadBalancing.Model.Tag $tag.Key = "project" $tag.Value = "lima" Add-ELBResourceTag -LoadBalancerName my-load-balancer -Tag $tag
  • 如需 API 詳細資訊,請參閱 AWS Tools for PowerShell Cmdlet 參考中的 AddTags

下列程式碼範例示範如何使用 Disable-ELBAvailabilityZoneForLoadBalancer

for PowerShell 工具

範例 1:此範例會從指定的負載平衡器移除指定的可用區域。輸出包含剩餘的可用區域。

Disable-ELBAvailabilityZoneForLoadBalancer -LoadBalancerName my-load-balancer -AvailabilityZone us-west-2a

輸出:

us-west-2b

下列程式碼範例示範如何使用 Dismount-ELBLoadBalancerFromSubnet

for PowerShell 工具

範例 1:此範例會從為指定負載平衡器設定的子網路集移除指定的子網路。輸出包含剩餘的子網路。

Dismount-ELBLoadBalancerFromSubnet -LoadBalancerName my-load-balancer -Subnet subnet-12345678

輸出:

subnet-87654321

下列程式碼範例示範如何使用 Edit-ELBLoadBalancerAttribute

for PowerShell 工具

範例 1:此範例會啟用指定負載平衡器的跨區域負載平衡。

Edit-ELBLoadBalancerAttribute -LoadBalancerName my-load-balancer -CrossZoneLoadBalancing_Enabled $true

範例 2:此範例會停用指定負載平衡器的連線耗盡。

Edit-ELBLoadBalancerAttribute -LoadBalancerName my-load-balancer -ConnectionDraining_Enabled $false

範例 3:此範例會啟用指定負載平衡器的存取記錄。

Edit-ELBLoadBalancerAttribute -LoadBalancerName my-load-balancer ` >> -AccessLog_Enabled $true ` >> -AccessLog_S3BucketName amzn-s3-demo-logging-bucket ` >> -AccessLog_S3BucketPrefix my-app/prod ` >> -AccessLog_EmitInterval 60

下列程式碼範例示範如何使用 Enable-ELBAvailabilityZoneForLoadBalancer

for PowerShell 工具

範例 1:此範例會將指定的可用區域新增至指定的負載平衡器。輸出包含可用區域的完整清單。

Enable-ELBAvailabilityZoneForLoadBalancer -LoadBalancerName my-load-balancer -AvailabilityZone us-west-2a

輸出:

us-west-2a us-west-2b

下列程式碼範例示範如何使用 Get-ELBInstanceHealth

for PowerShell 工具

範例 1:此範例說明向指定負載平衡器註冊的執行個體狀態。

Get-ELBInstanceHealth -LoadBalancerName my-load-balancer

輸出:

Description InstanceId ReasonCode State ----------- ---------- ---------- ----- N/A i-87654321 N/A InService Instance has failed at lea... i-12345678 Instance OutOfService

範例 2:此範例說明向指定負載平衡器註冊的指定執行個體狀態。

Get-ELBInstanceHealth -LoadBalancerName my-load-balancer -Instance i-12345678

範例 3:此範例會顯示指定執行個體狀態的完整描述。

(Get-ELBInstanceHealth -LoadBalancerName my-load-balancer -Instance i-12345678).Description

輸出:

Instance has failed at least the UnhealthyThreshold number of health checks consecutively.

下列程式碼範例示範如何使用 Get-ELBLoadBalancer

for PowerShell 工具

範例 1:此範例會列出負載平衡器的名稱。

Get-ELBLoadBalancer | format-table -property LoadBalancerName

輸出:

LoadBalancerName ---------------- my-load-balancer my-other-load-balancer my-internal-load-balancer

範例 2:此範例說明指定的負載平衡器。

Get-ELBLoadBalancer -LoadBalancerName my-load-balancer

輸出:

AvailabilityZones : {us-west-2a, us-west-2b} BackendServerDescriptions : {Amazon.ElasticLoadBalancing.Model.BackendServerDescription} CanonicalHostedZoneName : my-load-balancer-1234567890.us-west-2.elb.amazonaws.com CanonicalHostedZoneNameID : Z3DZXE0EXAMPLE CreatedTime : 4/11/2015 12:12:45 PM DNSName : my-load-balancer-1234567890.us-west-2.elb.amazonaws.com HealthCheck : Amazon.ElasticLoadBalancing.Model.HealthCheck Instances : {i-207d9717, i-afefb49b} ListenerDescriptions : {Amazon.ElasticLoadBalancing.Model.ListenerDescription} LoadBalancerName : my-load-balancer Policies : Amazon.ElasticLoadBalancing.Model.Policies Scheme : internet-facing SecurityGroups : {sg-a61988c3} SourceSecurityGroup : Amazon.ElasticLoadBalancing.Model.SourceSecurityGroup Subnets : {subnet-15aaab61} VPCId : vpc-a01106c2

範例 3:此範例說明目前 AWS 區域中的所有負載平衡器。

Get-ELBLoadBalancer

範例 4:此範例說明所有可用負載平衡器的所有負載平衡器 AWS 區域。

Get-AWSRegion | % { Get-ELBLoadBalancer -Region $_ }
  • 如需 API 詳細資訊,請參閱 AWS Tools for PowerShell Cmdlet 參考中的 DescribeLoadBalancers

下列程式碼範例示範如何使用 Get-ELBLoadBalancerAttribute

for PowerShell 工具

範例 1:此範例說明指定負載平衡器的屬性。

Get-ELBLoadBalancerAttribute -LoadBalancerName my-load-balancer

輸出:

AccessLog : Amazon.ElasticLoadBalancing.Model.AccessLog AdditionalAttributes : {} ConnectionDraining : Amazon.ElasticLoadBalancing.Model.ConnectionDraining ConnectionSettings : Amazon.ElasticLoadBalancing.Model.ConnectionSettings CrossZoneLoadBalancing : Amazon.ElasticLoadBalancing.Model.CrossZoneLoadBalancing

下列程式碼範例示範如何使用 Get-ELBLoadBalancerPolicy

for PowerShell 工具

範例 1:此範例說明與指定負載平衡器相關聯的政策。

Get-ELBLoadBalancerPolicy -LoadBalancerName my-load-balancer

輸出:

PolicyAttributeDescriptions PolicyName PolicyTypeName --------------------------- ---------- -------------- {ProxyProtocol} my-ProxyProtocol-policy ProxyProtocolPolicyType {CookieName} my-app-cookie-policy AppCookieStickinessPolicyType

範例 2:此範例說明指定政策的屬性。

(Get-ELBLoadBalancerPolicy -LoadBalancerName my-load-balancer -PolicyName my-ProxyProtocol-policy).PolicyAttributeDescriptions

輸出:

AttributeName AttributeValue ------------- -------------- ProxyProtocol true

範例 3:此範例說明預先定義的政策,包括範例政策。範例政策的名稱具有 ELBSample 字首。

Get-ELBLoadBalancerPolicy

輸出:

PolicyAttributeDescriptions PolicyName PolicyTypeName --------------------------- ---------- -------------- {Protocol-SSLv2, Protocol-TLSv1, Pro... ELBSecurityPolicy-2015-05 SSLNegotiationPolicyType {Protocol-SSLv2, Protocol-TLSv1, Pro... ELBSecurityPolicy-2015-03 SSLNegotiationPolicyType {Protocol-SSLv2, Protocol-TLSv1, Pro... ELBSecurityPolicy-2015-02 SSLNegotiationPolicyType {Protocol-SSLv2, Protocol-TLSv1, Pro... ELBSecurityPolicy-2014-10 SSLNegotiationPolicyType {Protocol-SSLv2, Protocol-TLSv1, Pro... ELBSecurityPolicy-2014-01 SSLNegotiationPolicyType {Protocol-SSLv2, Protocol-TLSv1, Pro... ELBSecurityPolicy-2011-08 SSLNegotiationPolicyType {Protocol-SSLv2, Protocol-TLSv1, Pro... ELBSample-ELBDefaultCipherPolicy SSLNegotiationPolicyType {Protocol-SSLv2, Protocol-TLSv1, Pro... ELBSample-OpenSSLDefaultCipherPolicy SSLNegotiationPolicyType

下列程式碼範例示範如何使用 Get-ELBLoadBalancerPolicyType

for PowerShell 工具

範例 1:此範例會取得 Elastic Load Balancing 支援的政策類型。

Get-ELBLoadBalancerPolicyType

輸出:

Description PolicyAttributeTypeDescriptions PolicyTypeName ----------- ------------------------------- -------------- Stickiness policy with session lifet... {CookieExpirationPeriod} LBCookieStickinessPolicyType Policy that controls authentication ... {PublicKeyPolicyName} BackendServerAuthenticationPolicyType Listener policy that defines the cip... {Protocol-SSLv2, Protocol-TLSv1, Pro... SSLNegotiationPolicyType Policy containing a list of public k... {PublicKey} PublicKeyPolicyType Stickiness policy with session lifet... {CookieName} AppCookieStickinessPolicyType Policy that controls whether to incl... {ProxyProtocol} ProxyProtocolPolicyType

範例 2:此範例說明指定的政策類型。

Get-ELBLoadBalancerPolicyType -PolicyTypeName ProxyProtocolPolicyType

輸出:

Description PolicyAttributeTypeDescriptions PolicyTypeName ----------- ------------------------------- -------------- Policy that controls whether to incl... {ProxyProtocol} ProxyProtocolPolicyType

範例 3:此範例顯示指定政策類型的完整描述。

(Get-ELBLoadBalancerPolicyType -PolicyTypeName).Description

輸出:

Policy that controls whether to include the IP address and port of the originating request for TCP messages. This policy operates on TCP/SSL listeners only

下列程式碼範例示範如何使用 Get-ELBResourceTag

for PowerShell 工具

範例 1:此範例列出指定負載平衡器的標籤。

Get-ELBResourceTag -LoadBalancerName @("my-load-balancer","my-internal-load-balancer")

輸出:

LoadBalancerName Tags ---------------- ---- my-load-balancer {project, department} my-internal-load-balancer {project, department}

範例 2:此範例說明指定負載平衡器的標籤。

(Get-ELBResourceTag -LoadBalancerName my-load-balancer).Tags

輸出:

Key Value --- ----- project lima department digital-media
  • 如需 API 詳細資訊,請參閱 AWS Tools for PowerShell Cmdlet 參考中的 DescribeTags

下列程式碼範例示範如何使用 Join-ELBSecurityGroupToLoadBalancer

for PowerShell 工具

範例 1:此範例會將指定負載平衡器的目前安全群組取代為指定的安全群組。

Join-ELBSecurityGroupToLoadBalancer -LoadBalancerName my-load-balancer -SecurityGroup sg-87654321

輸出:

sg-87654321

範例 2:若要保留目前的安全群組並指定其他安全群組,請同時指定現有和新的安全群組。

Join-ELBSecurityGroupToLoadBalancer -LoadBalancerName my-load-balancer -SecurityGroup @("sg-12345678", "sg-87654321")

輸出:

sg-12345678 sg-87654321

下列程式碼範例示範如何使用 New-ELBAppCookieStickinessPolicy

for PowerShell 工具

範例 1:此範例會建立黏性政策,遵循指定應用程式產生的 Cookie 的黏性工作階段生命週期。

New-ELBAppCookieStickinessPolicy -LoadBalancerName my-load-balancer -PolicyName my-app-cookie-policy -CookieName my-app-cookie

下列程式碼範例示範如何使用 New-ELBLBCookieStickinessPolicy

for PowerShell 工具

範例 1:此範例會建立黏性政策,其黏性工作階段生命週期由指定的過期期間 (以秒為單位) 控制。

New-ELBLBCookieStickinessPolicy -LoadBalancerName my-load-balancer -PolicyName my-duration-cookie-policy -CookieExpirationPeriod 60

範例 2:此範例會建立粘性政策,其粘性工作階段生命週期由瀏覽器的生命週期 (使用者代理程式) 控制。

New-ELBLBCookieStickinessPolicy -LoadBalancerName my-load-balancer -PolicyName my-duration-cookie-policy

下列程式碼範例示範如何使用 New-ELBLoadBalancer

for PowerShell 工具

範例 1:此範例會建立 HTTP 中具有 VPC 接聽程式的負載平衡器。

$httpListener = New-Object Amazon.ElasticLoadBalancing.Model.Listener $httpListener.Protocol = "http" $httpListener.LoadBalancerPort = 80 $httpListener.InstanceProtocol = "http" $httpListener.InstancePort = 80 New-ELBLoadBalancer -LoadBalancerName my-vpc-load-balancer -SecurityGroup sg-a61988c3 -Subnet subnet-15aaab61 -Listener $httpListener my-vpc-load-balancer-1234567890.us-west-2.elb.amazonaws.com

範例 2:此範例會建立具有 HTTP-Classic 中 EC2 接聽程式的負載平衡器。

New-ELBLoadBalancer -LoadBalancerName my-classic-load-balancer -AvailabilityZone us-west-2a` -Listener $httpListener

輸出:

my-classic-load-balancer-123456789.us-west-2.elb.amazonaws.com

範例 3:此範例會使用 HTTPS 接聽程式建立負載平衡器。

$httpsListener = New-Object Amazon.ElasticLoadBalancing.Model.Listener $httpsListener.Protocol = "https" $httpsListener.LoadBalancerPort = 443 $httpsListener.InstanceProtocol = "http" $httpsListener.InstancePort = 80 $httpsListener.SSLCertificateId="arn:aws:iam::123456789012:server-certificate/my-server-cert" New-ELBLoadBalancer -LoadBalancerName my-load-balancer -AvailabilityZone us-west-2a -Listener $httpsListener my-load-balancer-123456789.us-west-2.elb.amazonaws.com
  • 如需 API 詳細資訊,請參閱 AWS Tools for PowerShell Cmdlet 參考中的 CreateLoadBalancer

下列程式碼範例示範如何使用 New-ELBLoadBalancerListener

for PowerShell 工具

範例 1:此範例會將 HTTPS 接聽程式新增至指定的負載平衡器。

$httpsListener = New-Object Amazon.ElasticLoadBalancing.Model.Listener $httpsListener.Protocol = "https" $httpsListener.LoadBalancerPort = 443 $httpsListener.InstanceProtocol = "https" $httpsListener.InstancePort = 443 $httpsListener.SSLCertificateId="arn:aws:iam::123456789012:server-certificate/my-server-cert" New-ELBLoadBalancerListener -LoadBalancerName my-load-balancer -Listener $httpsListener

下列程式碼範例示範如何使用 New-ELBLoadBalancerPolicy

for PowerShell 工具

範例 1:此範例會為指定的負載平衡器建立新的代理通訊協定政策。

$attribute = New-Object Amazon.ElasticLoadBalancing.Model.PolicyAttribute -Property @{ AttributeName="ProxyProtocol" AttributeValue="True" } New-ELBLoadBalancerPolicy -LoadBalancerName my-load-balancer -PolicyName my-ProxyProtocol-policy -PolicyTypeName ProxyProtocolPolicyType -PolicyAttribute $attribute

下列程式碼範例示範如何使用 Register-ELBInstanceWithLoadBalancer

for PowerShell 工具

範例 1:此範例會向指定的負載平衡器註冊指定的 EC2 執行個體。

Register-ELBInstanceWithLoadBalancer -LoadBalancerName my-load-balancer -Instance i-12345678

輸出:

InstanceId ---------- i-12345678 i-87654321

下列程式碼範例示範如何使用 Remove-ELBInstanceFromLoadBalancer

for PowerShell 工具

範例 1:此範例會從指定的負載平衡器移除指定的 EC2 執行個體。除非您也指定強制參數,否則在操作進行之前會提示您進行確認。

Remove-ELBInstanceFromLoadBalancer -LoadBalancerName my-load-balancer -Instance i-12345678

輸出:

Confirm Are you sure you want to perform this action? Performing operation "Remove-ELBInstanceFromLoadBalancer (DeregisterInstancesFromLoadBalancer)" on Target "Amazon.ElasticLoadBalancing.Model.Instance". [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): InstanceId ---------- i-87654321

下列程式碼範例示範如何使用 Remove-ELBLoadBalancer

for PowerShell 工具

範例 1:此範例會刪除指定的負載平衡器。除非您也指定強制參數,否則在操作進行之前會提示您進行確認。

Remove-ELBLoadBalancer -LoadBalancerName my-load-balancer

輸出:

Confirm Are you sure you want to perform this action? Performing operation "Remove-ELBLoadBalancer (DeleteLoadBalancer)" on Target "my-load-balancer". [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"):
  • 如需 API 詳細資訊,請參閱 AWS Tools for PowerShell Cmdlet 參考中的 DeleteLoadBalancer

下列程式碼範例示範如何使用 Remove-ELBLoadBalancerListener

for PowerShell 工具

範例 1:此範例會刪除指定負載平衡器連接埠 80 上的接聽程式。除非您也指定強制參數,否則系統會提示您在操作進行之前進行確認。

Remove-ELBLoadBalancerListener -LoadBalancerName my-load-balancer -LoadBalancerPort 80

輸出:

Confirm Are you sure you want to perform this action? Performing operation "Remove-ELBLoadBalancerListener (DeleteLoadBalancerListeners)" on Target "80". [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"):

下列程式碼範例示範如何使用 Remove-ELBLoadBalancerPolicy

for PowerShell 工具

範例 1:此範例會從指定的負載平衡器刪除指定的政策。除非您也指定強制參數,否則在操作進行之前會提示您進行確認。

Remove-ELBLoadBalancerPolicy -LoadBalancerName my-load-balancer -PolicyName my-duration-cookie-policy

輸出:

Confirm Are you sure you want to perform this action? Performing operation "Remove-ELBLoadBalancerPolicy (DeleteLoadBalancerPolicy)" on Target "my-duration-cookie-policy". [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"):

下列程式碼範例示範如何使用 Remove-ELBResourceTag

for PowerShell 工具

範例 1:此範例會從指定的負載平衡器移除指定的標籤。除非您也指定強制參數,否則在操作進行之前會提示您進行確認。此範例使用的語法需要 PowerShell 第 3 版或更新版本。

Remove-ELBResourceTag -LoadBalancerName my-load-balancer -Tag @{ Key="project" }

輸出:

Confirm Are you sure you want to perform this action? Performing the operation "Remove-ELBResourceTag (RemoveTags)" on target "Amazon.ElasticLoadBalancing.Model.TagKeyOnly". [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"):

範例 2:使用 Powershell 第 2 版時,您必須使用 New-Object 為 Tag 參數建立標籤。

$tag = New-Object Amazon.ElasticLoadBalancing.Model.TagKeyOnly $tag.Key = "project" Remove-ELBResourceTag -Tag $tag -Force
  • 如需 API 詳細資訊,請參閱 AWS Tools for PowerShell Cmdlet 參考中的 RemoveTags

下列程式碼範例示範如何使用 Set-ELBHealthCheck

for PowerShell 工具

範例 1:此範例會設定指定負載平衡器的運作狀態檢查設定。

Set-ELBHealthCheck -LoadBalancerName my-load-balancer ` >> -HealthCheck_HealthyThreshold 2 ` >> -HealthCheck_UnhealthyThreshold 2 ` >> -HealthCheck_Target "HTTP:80/ping" ` >> -HealthCheck_Interval 30 ` >> -HealthCheck_Timeout 3

輸出:

HealthyThreshold : 2 Interval : 30 Target : HTTP:80/ping Timeout : 3 UnhealthyThreshold : 2
  • 如需 API 詳細資訊,請參閱 AWS Tools for PowerShell Cmdlet 參考中的 ConfigureHealthCheck

下列程式碼範例示範如何使用 Set-ELBLoadBalancerListenerSSLCertificate

for PowerShell 工具

範例 1:此範例會取代終止指定接聽程式 SSL 連線的憑證。

Set-ELBLoadBalancerListenerSSLCertificate -LoadBalancerName my-load-balancer ` >> -LoadBalancerPort 443 ` >> -SSLCertificateId "arn:aws:iam::123456789012:server-certificate/new-server-cert"

下列程式碼範例示範如何使用 Set-ELBLoadBalancerPolicyForBackendServer

for PowerShell 工具

範例 1:此範例會以指定的政策取代指定連接埠的政策。

Set-ELBLoadBalancerPolicyForBackendServer -LoadBalancerName my-load-balancer -InstancePort 80 -PolicyName my-ProxyProtocol-policy

範例 2:此範例會移除與指定連接埠相關聯的所有政策。

Set-ELBLoadBalancerPolicyForBackendServer -LoadBalancerName my-load-balancer -InstancePort 80

下列程式碼範例示範如何使用 Set-ELBLoadBalancerPolicyOfListener

for PowerShell 工具

範例 1:此範例會以指定的政策取代指定接聽程式的政策。

Set-ELBLoadBalancerPolicyOfListener -LoadBalancerName my-load-balancer -LoadBalancerPort 443 -PolicyName my-SSLNegotiation-policy

範例 2:此範例會移除與指定接聽程式相關聯的所有政策。

Set-ELBLoadBalancerPolicyOfListener -LoadBalancerName my-load-balancer -LoadBalancerPort 443