質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

1回答

305閲覧

ELBに、EC2インスタンスを接続させるためのPowershellのコード

fnglsh_mae

総合スコア10

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

1クリップ

投稿2019/03/07 00:59

現在、作成しようとしているのが
「ELBに2つのEC2インスタンスがある中で、1つのEC2インスタンスが切断されている状態から接続する」ためのPowershellスクリプトです。
ですが、現状上手く接続が出来ません。
下記にそのコードを添付します。

powershell

1Param( 2 $Name="AAAP0000AAA-SS", 3 $CurrentInstanceID="i-6tgrjyfdfdt" 4) 5$ErrorActionPreference = "STOP" 6 7#パラメータ初期化 8$Sleep = 5 9$ErrorCount = 0 10 11#エラー変数初期化 12$RC_SUCCESS = 0 13$WRN_SKIP = 6 14$ERR_UNEXPECTED = 9 15 16 17$ELB2TargetGroups = Get-ELB2TargetGroup -name $Name | select *, @{L="Targets";E={Get-ELB2TargetHealth -TargetGroupArn $_.TargetGroupArn}} 18$CurrentInstanceTarget = $ELB2TargetGroups.targets.target | ?{$_.id -eq $CurrentInstanceID} 19 20Write-Host "PRE-Check" 21(get-ELB2Targethealth -TargetGroupArn $ELB2TargetGroups.TargetGroupArn).Target.Id 22 23Write-Host "Register" 24Register-ELB2Target -TargetGroupArn $ELB2TargetGroups.TargetGroupArn -Target @{Id=$CurrentInstanceTarget.Id;Port=$CurrentInstanceTarget.port} 25 26Write-Host "Post-Check" 27(get-ELB2Targethealth -TargetGroupArn $ELB2TargetGroups.TargetGroupArn).Target.Id 28 29trap{ 30 Exit 9 31}

今回のコードがうまくいかない原因は、下記の変数で宣言したインスタンスIDが、切断されているものであるため、

$Name="AAAP0000AAA-SS", $CurrentInstanceID="i-6tgrjyfdfdt"

こちらの$ELB2TargetGroupsの対象に含まれないから、その先のコードも空ぶってしまうと思料しております。

$ELB2TargetGroups = Get-ELB2TargetGroup -name $Name | select *, @{L="Targets";E={Get-ELB2TargetHealth -TargetGroupArn $_.TargetGroupArn}}

ですので、うまくいくためにどういったコードにすればいいか、ご教授願えたらと思っております。

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

下記のコードでやりたいことは解決しました。

Powershell

1Param( 2 $Name, 3 $CurrentInstanceID 4) 5 6$ErrorActionPreference = "STOP" 7 8#パラメータ初期化 9$Sleep = 5 10$ErrorCount = 0 11 12#エラー変数初期化 13$RC_SUCCESS = 0 14$WRN_SKIP = 6 15$ERR_UNEXPECTED = 9 16 17 18$ELB2TargetGroups = Get-ELB2TargetGroup -name $Name | select *, @{L="Targets";E={Get-ELB2TargetHealth -TargetGroupArn $_.TargetGroupArn}} 19 20Write-Host "PRE-Check" 21(get-ELB2Targethealth -TargetGroupArn $ELB2TargetGroups.TargetGroupArn).Target.Id 22 23Write-Host "Register" 24Register-ELB2Target -TargetGroupArn $ELB2TargetGroups.TargetGroupArn -Target @{Id=$CurrentInstanceID} 25 26Write-Host "Post-Check" 27(get-ELB2Targethealth -TargetGroupArn $ELB2TargetGroups.TargetGroupArn).Target.Id 28 29trap{ 30 Exit 9 31}

投稿2019/03/12 08:01

fnglsh_mae

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問