4

以下のスクリプトを使用して、powershell を使用して新しい EC2 キーペアを作成しています。

Import-Module AWSPowerShell
$Region = "EU West"
$ProfileName = "AWS Default"
Initialize-AWSDefaults -ProfileName $ProfileName
$KeyName = "SecurityEssentials"
$KeyPair = New-EC2KeyPair -KeyName $KeyName 

ただし、最後の行で失敗し、次のメッセージが表示されます。

New-EC2KeyPair : 無効な URI: ホスト名を解析できませんでした。C:\Users\John\Documents\Cloud\AWS Setup.ps1:12 char:12 + $KeyPair = New-EC2KeyPair -KeyName $KeyName + ~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (Amazon.PowerShe...C2KeyPairCmdlet:NewEC2KeyPairCmdlet) [New-EC2KeyPair], InvalidOperationException + FullyQualifiedErrorId : System.UriFormatException,Amazon.PowerShell.Cmdlets .EC2.NewEC2KeyPairCmdlet

デバッグ フラグを使用しても、新しい情報は提供されません。最新の AWS SDK と AWS powershell コマンドレットで Windows 8.1 を使用しています

編集: 問題は、AWSDefaults の設定方法にあるようです。これ以降にコマンドを発行すると、同じエラーが発生することが判明しました。

4

1 に答える 1

6

このエラーInvalid URI: The hostname could not be parsed.は、地域を正しく指定していない場合に発生する可能性があります。あなたの場合、「EU West」を間違って指定しているようeu-west-1です。代わりに指定する必要があります。

たとえば、Get-EC2Instances正しく構成されているセッションで「EU 西部」をリージョンとして使用すると、同じエラーが発生します。

PS C:\> get-ec2instance -Region "EU West"
get-ec2instance : Invalid URI: The hostname could not be parsed.
At line:1 char:1
+ get-ec2instance -Region "EU West"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (Amazon.PowerShe...2InstanceCmdlet:GetEC2InstanceCmdlet) [Get-EC2Insta
   nce], InvalidOperationException
    + FullyQualifiedErrorId : System.UriFormatException,Amazon.PowerShell.Cmdlets.EC2.GetEC2InstanceCmdlet

Powershell から利用可能な AWS リージョンを一覧表示するには、Get-AWSRegion. 私のシェルのデフォルトが である例を次に示しますus-east-1

PS C:\> Get-AWSRegion

Region         Name                      IsShellDefault
------         ----                      --------------
us-east-1      US East (Virginia)                  True
us-west-1      US West (N. California)            False
us-west-2      US West (Oregon)                   False
eu-west-1      EU West (Ireland)                  False
eu-central-1   EU Central (Frankfurt)             False
ap-northeast-1 Asia Pacific (Tokyo)               False
ap-southeast-1 Asia Pacific (Singapore)           False
ap-southeast-2 Asia Pacific (Sydney)              False
sa-east-1      South America (Sao Paulo)          False

したがって、ここでは EU 西部が実際にはリージョンであることがわかりますが、eu-west-1代わりにとして指定されていますEU West。したがって、EU West を参照するだけでeu-west-1、デフォルトを設定できるはずです。

Initialize-AWSDefaults で使用するリージョンを明示的に設定できます。

Initialize-AWSDefaults -ProfileName MyProfileName -Region eu-west-1

AWS リージョンの指定の詳細については、ドキュメントを参照してください。

于 2015-02-25T13:48:26.367 に答える