我正在尝试将 AWS Powershell 与 Eucalyptus 一起使用。
我可以使用带有参数 --endpoint-url 的 AWS CLI 执行此操作。
是否可以在 AWS Powershell 中设置端点 url?我可以在 AWS Powershell 中使用自己的终端节点 URL 创建自定义区域吗?
我正在尝试将 AWS Powershell 与 Eucalyptus 一起使用。
我可以使用带有参数 --endpoint-url 的 AWS CLI 执行此操作。
是否可以在 AWS Powershell 中设置端点 url?我可以在 AWS Powershell 中使用自己的终端节点 URL 创建自定义区域吗?
- 更新 -
适用于 Windows PowerShell 的 AWS 工具的较新版本(根据 Get-AWSPowerShellVersion,我正在运行 3.1.66.0),具有用于相关命令的可选 -EndpointUrl 参数。
例子:
Get-EC2Instance -EndpointUrl https://somehostnamehere
此外,上述 错误已得到修复。
好东西!
--原始答案--
TL;TR
自定义它。例子:
{
"version": 2,
"endpoints": {
"*/*": {
"endpoint": "your_endpoint_here"
}
}
}
导入 AWSPowerShell 模块后,告诉开发工具包使用您的自定义终端节点配置。例子:
[Amazon.AWSConfigs]::EndpointDefinition = "path to your customized Amazon.endpoints.json here"
注意:底层 SDK 中存在一个错误,导致具有路径组件的端点无法正确签名。该错误影响此解决方案和@HyperAnthony 提出的解决方案。
附加信息
通过阅读 .NET SDK 文档,我偶然发现了一个部分,该部分显示可以在给定文件的情况下全局设置区域规则:http: //docs.aws.amazon.com/AWSSdkDocsNET/latest/V2/DeveloperGuide/net-dg -config-other.html#config-setting-awsendpointdefinition
不幸的是,我找不到任何记录此类文件格式的地方。
然后,我浏览了 AWSSDK.Core.dll代码并找到了 SDK 加载文件的位置(请参阅https://github.com/aws/aws-sdk-net/blob/master/sdk/src/上的 LoadEndpointDefinitions() 方法核心/区域端点.cs)。
通读代码,如果文件没有在 AWSConfigs.EndpointDefinition 上明确指定,它最终会从嵌入式资源加载文件(即https://github.com/aws/aws-sdk-net/blob/master/sdk /src/Core/endpoints.json )
我不相信它是。此通用参数列表(可与所有 AWS PowerShell cmdlet 一起使用)不包括服务 URL,而是选择一个简单的字符串Region
来根据一组已知区域设置服务 URL。
如果您对 PowerShell 中的可能替代方案感兴趣,此AWS .NET Development 论坛帖子建议您可以在 .NET SDK 配置对象上设置服务 URL。这是该线程的示例用法:
$config=New-Object Amazon.EC2.AmazonEC2Config
$config.ServiceURL = "https://ec2.us-west-1.amazonaws.com"
$client=[Amazon.AWSClientFactory]::CreateAmazonEC2Client($accessKeyID,$secretKeyID,$config)
设置客户端时,您似乎可以将它与大多数配置对象一起使用。下面是一些具有 ServiceURL 属性的示例。我想这是在大多数 AWS 配置对象上:
旧版本的文档(针对 v1)指出,如果RegionEndpoint
设置了 ,则此属性将被忽略。我不确定v2是否仍然如此。