2012-01-23 38 views
6

Tôi đang cố gắng khởi động máy điện toán đám mây Amazon EC2 với phương thức [startInstance][2] sử dụng aws-sdk trong Java. Mã của tôi là như sau.Thông báo lỗi AWS: InvalidInstanceID.NotFound

public String startInstance(String instanceId) throws Exception { 
    List<String> instanceIds = new ArrayList<String>(); 
    instanceIds.add(instanceId); 

    StartInstancesRequest startRequest = new StartInstancesRequest(
      instanceIds); 
    startRequest.setRequestCredentials(getCredentials()); 

    StartInstancesResult startResult = ec2.startInstances(startRequest); 
    List<InstanceStateChange> stateChangeList = startResult 
      .getStartingInstances(); 
    log.trace("Starting instance '{}':", instanceId); 

    // Wait for the instance to be started 
    return waitForTransitionCompletion(stateChangeList, "running", 
      instanceId); 
} 

Khi tôi chạy đoạn mã trên, tôi nhận được lỗi AWS sau:

Status Code: 400, AWS Request ID: e1bd4795-a609-44d1-9e80-43611e80006b, AWS Erro 
r Code: InvalidInstanceID.NotFound, AWS Error Message: The instance ID 'i-2b97ac 
2f' does not exist 
     at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpCli 
ent.java:538) 
     at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.ja 
va:283) 
     at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:168 
) 
     at com.amazonaws.services.ec2.AmazonEC2Client.invoke(AmazonEC2Client.jav 
a:5208) 
     at com.amazonaws.services.ec2.AmazonEC2Client.startInstances(AmazonEC2Cl 
ient.java:2426) 

Trả lời

13

AWS Error Message: The instance ID 'i-2b97ac2f' does not exist

Bạn sẽ phải mất phản ứng AWS cho các cấp ở đây, tức là ví dụ làm không tồn tại;)

Nhưng nghiêm túc: Có lẽ bạn đã xác minh rằng bạn đang thực sự chạy một cá thể có ID này trong tài khoản của bạn? Điều này rất có thể là do nhắm mục tiêu sai điểm cuối API, trong đó một ID cá thể chỉ hợp lệ trong một khu vực cụ thể (nếu không được chỉ định, khu vực mặc định là 'us-east-1', xem bên dưới).

Trong trường hợp này, bạn cần phải xác định khu vực ví dụ thực tế thông qua phương thức setEndpoint() của đối tượng AmazonEC2Client trong ec2 biến rõ ràng toàn cầu trước khi gọi startInstances().

Có một số ví dụ về Using Regions with the AWS SDKs và tất cả hiện đang có sẵn AWS URL endpoint khu vực được liệt kê trong Regions and Endpoints, đặc biệt là Amazon Elastic Compute Cloud (EC2) mặc định là 'chúng tôi đông-1':

If you just specify the general endpoint (ec2.amazonaws.com), Amazon EC2 directs your request to the us-east-1 endpoint.

+0

Hoàn toàn đúng. Cảm ơn về sự phản hồi nhanh chóng. – diya

10

Chúng tôi chạy một dịch vụ (Qubole) thường xuyên sinh ra và sau đó các thẻ (và trong một số trường hợp chấm dứt) các cá thể AWS ngay lập tức.

Chúng tôi nhận thấy rằng Amazon sẽ, mỗi lần trong một thời gian, yêu cầu một cá thể không hợp lệ - mặc dù nó vừa tạo ra nó. Thử lại một vài lần với một số thời gian ngủ ném thường giải quyết vấn đề. Ngay cả một khoảng thời gian thử lại của 15s đã chứng minh là không đủ trong những trường hợp hiếm hoi.

Trải nghiệm này xuất phát từ khu vực sử dụng nấm men. Chúng tôi không thực hiện cuộc gọi api đến các vùng khác nhau - vì vậy đó không phải là một lời giải thích. Nhiều khả năng - đây là sự nhất quán cuối cùng khét tiếng trong công việc - nơi AWS không thể cung cấp tính nhất quán đọc sau khi ghi cho các cuộc gọi api này.

+0

Tôi gặp phải vấn đề tương tự hai lần trong eu-west-1. – Martijn

0

Tôi đang sử dụng AWI ruby ​​api và tôi nhận thấy cùng một vấn đề khi tạo hình ảnh AMI và trạng thái của nó đang chờ xử lý khi tôi xem trong bảng điều khiển AWS nhưng sau một thời gian hình ảnh có sẵn để sử dụng.

Đây là kịch bản của tôi

image = ec2.images.create(:name => image_name, :instance_id => ami_id, :description => desc) 

sleep 5 while image.state != :available 

tôi ngủ khoảng 5 giây cho hình ảnh được trong có sẵn nhưng tôi nhận được báo lỗi nói rằng "AWS Thông báo lỗi: InvalidInstanceID.NotFound". Trong quá trình thử nghiệm của tôi, điều này là tốt nhưng hầu hết thời gian này dường như không thành công trong quá trình tích hợp liên tục.

Các vấn đề liên quan