2013-05-05 2 views
1

Android에 익숙하지 않지만 이전에 PHP 용 AWS SDK를 이미 사용했지만 이런 종류의 문제가 발생하지 않았습니다. DescribeInstancesRequest를 사용하여 모든 인스턴스 및 해당 상태의 목록을 가져옵니다. 시작/중지 작업을 위해 ToggleButton을 사용하여 모든 인스턴스의 목록을 만드는 것이 아이디어입니다. AsyncTask를 걸쳐 나는이 같은 AWS에 요청을 실행 해요 :목록 대신 하나의 EC2 인스턴스 만 반환하는 Android AWS SDK

private class LoadInstancesListTask extends AsyncTask<DescribeInstancesRequest, Void, DescribeInstancesResult> { 

    private Context ctx; 

    public void setContext(Context ctx) { 
     this.ctx = ctx; 
    } 

    @Override 
    protected DescribeInstancesResult doInBackground(DescribeInstancesRequest... params) { 
     DescribeInstancesRequest request = params[0]; 
     AmazonEC2AsyncClient client = new AmazonEC2AsyncClient(request.getRequestCredentials()); 
     client.setEndpoint("ec2.us-east-1.amazonaws.com"); 
     DescribeInstancesResult response = client.describeInstances(request); 
     return response; 
    } 

    @Override 
    protected void onPostExecute(DescribeInstancesResult response) { 
     Reservation reservation = response.getReservations().get(0); 
     Log.d(MainActivity.TAG, reservation.toString()); 
     InstanceListAdapter adapter = new InstanceListAdapter(this.ctx, R.layout.instance_list_row_layout, reservation.getInstances()); 
     setListAdapter(adapter); 
    } 
} 

것은 내가 응답 인스턴스 목록 대신 내가 현재 사용하고 4 만 1 EC2 인스턴스를 얻고있다. 누구나 비슷한 문제가 있거나 AWS SDK에서 인스턴스 목록을 가져 오는 다른 방법을 알고 있습니까?

감사합니다. 감사드립니다.

+1

아마존 API를 모르지만이'response.getReservations(). get (0)'을 사용하면 응답에서 인덱스 0 만 회수하는 것이고 아마도 그 이유 일 것입니다. 너는 모든 것을 얻지 못한다. – kaderud

+0

@chrkad 감사합니다! 나는 모든 인스턴스가 단일 예약 및 althogh에 온다라고 생각했다 나는 단 한 개의 예약으로 인스턴스 목록을 점검했다 나는 다른 예약이 있는지를 완전히 확인하는 것을 잊었다 :) – NemanjaSRB

답변

1

@chrkad가 의견에서 지적했듯이 나는 그 대신 모두 첫 번째 예약만을 찾고있었습니다. 다시 한번 감사드립니다 :)

관련 문제