我正在使用适用于Amazon AWS的Java API.我成功进行了身份验证,然后获取所有图像,我的图像不在其中(我的AMI是私有的,但我想我仍然会看到它们,因为我已经过身份验证).这是我的来源......
final AmazonEC2 client = new AmazonEC2Client(credentails);
for(Image image: client.describeImages().getImages()){
if(image.getOwnerId().equals("1234567890")){
//... do something usefull with the AMI
}
}
Run Code Online (Sandbox Code Playgroud)
而我的"OwnerId"并不是收到的.问题是什么,我不会公开我的AMI,我怎样才能获得我的AMI?
答案:我在一个错误的地区,我只从该地区获得AMI,而不是我的.改变地区的方式是:
client.setEndpoint("ec2.us-west-1.amazonaws.com");
Run Code Online (Sandbox Code Playgroud) 我已经在我的应用程序配置中这样声明了RegionEndpoint
<add key="AWSRegion" value="EUWest1" xdt:Transform="Insert"/>
Run Code Online (Sandbox Code Playgroud)
在我的程序中,我尝试将其称为AWSRegion
private static string RegionEndPoint = ConfigurationManager.AppSettings["AWSRegion"];
Run Code Online (Sandbox Code Playgroud)
所以当我声明我的SQSClient时出现错误,无法从字符串转换为RegionEndPoint
var SQSClient = new AmazonSQSClient(credentials, RegionEndPoint);
Run Code Online (Sandbox Code Playgroud)
我试图在这里理解这个问题,如何为C#.NET SDK设置EndPoint / Region:EC2Client?
但它适用于EC2Client,因此对我来说似乎不起作用。
我也曾尝试使用这样的AWS开发工具包声明regionendpoint
private static RegionEndpoint RegionEndPoint = ConfigurationManager.AppSettings["AWSRegion"];
Run Code Online (Sandbox Code Playgroud)
我还收到一条错误消息,提示无法从字符串类型隐式转换为Amazon.RegionEndpoint
因此,如果有办法在配置文件中添加RegionEndPoint并在SQSClient中使用它,请帮助我。
有必要定义
<add key="AWSRegion" value="us-east-1"/>
Run Code Online (Sandbox Code Playgroud)
App.config 中的应用程序设置以指定要使用的区域。
我需要以编程方式改变它
var creds = new BasicAWSCredentials(key, token);
using (var routes = AWSClientFactory.CreateAmazonRoute53Client(creds)){}
Run Code Online (Sandbox Code Playgroud)
如何在代码中指定区域?