aws java api를 통해 프로그래밍 방식으로 ec2 인스턴스를 나열하려고합니다.AWS/Java : AWS Java API에서 EC2 인스턴스를 가져 오는 방법
public static void main(String[] args) {
AWSCredentials awsCredentials = new BasicAWSCredentials(awsAccessKey, awsSecretKey);
AmazonEC2AsyncClient amazonEC2AsyncClient = new AmazonEC2AsyncClient(awsCredentials);
DescribeAvailabilityZonesRequest describeAvailabilityZonesRequest = new DescribeAvailabilityZonesRequest();
Future<DescribeAvailabilityZonesResult> describeAvailabilityZonesResultFuture = amazonEC2AsyncClient.describeAvailabilityZonesAsync(describeAvailabilityZonesRequest);
try {
DescribeAvailabilityZonesResult describeAvailabilityZonesResult = describeAvailabilityZonesResultFuture.get();
System.out.println(describeAvailabilityZonesResult);
} catch (Exception e) {
e.printStackTrace();
}
}
이 같은 인쇄 : 그러나
{AvailabilityZones: [
{ZoneName: us-east-1a,State: available,RegionName: us-east-1,Messages: []},
{ZoneName: us-east-1b,State: available,RegionName: us-east-1,Messages: []},
{ZoneName: us-east-1c,State: available,RegionName: us-east-1,Messages: []}]}
을, 나는 우리 서쪽-2의 인스턴스가 알고있다. 내가
describeAvailabilityZonesRequest.withZoneNames("us-west-2");
를 통해 내 API 쿼리에 그를 추가 할 때이 오류
java.util.concurrent.ExecutionException: com.amazonaws.AmazonServiceException: Status Code: 400, AWS Service: AmazonEC2, AWS Request ID: 38956486-2686-4466-b9e0-45ef12395676, AWS Error Code: InvalidParameterValue,
AWS Error Message: Invalid availability zone: [us-west-2]
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:188)
at com.pledgeling.platform.system.SystemAdmin.main(SystemAdmin.java:25)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Caused by: com.amazonaws.AmazonServiceException: Status Code: 400, AWS Service: AmazonEC2, AWS Request ID: 38956486-2686-4466-b9e0-45ef12395676, AWS Error Code: InvalidParameterValue, AWS Error Message: Invalid availability zone: [us-west-2]
at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:767)
at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:414)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:228)
at com.amazonaws.services.ec2.AmazonEC2Client.invoke(AmazonEC2Client.java:7918)
나는이 문제를 해결하기 위해 어떻게해야 하는가를 얻을? 왜 우리 서쪽의 사례가 나타나지 않는거야?
마이클, 답변과 링크에 대해 매우 감사드립니다. 완벽하게 명확하고 올바르게. –
나는 이것을했지만 그래도 항상 우리만을 보여줍니다. – user3217883
EndpointConfiguration endpointConfiguration = new EndpointConfiguration ("ec2.us-west-2.amazonaws.com", "us-west-2"); \t \t EC2 AmazonEC2ClientBuilder.standard =() \t \t \t \t .withEndpointConfiguration (endpointConfiguration) .build(); – user3217883