2016-10-01 11 views
2

AWS SimpleDB documentationget_attributes있어서 사용에 대해서는 아래의 예를 제공SimpleDB 도메인에 요청 된 항목이 있는지 감지하는 방법은 무엇입니까? 루비 SDK 용

resp = client.get_attributes({ 
    domain_name: "String", # required 
    item_name: "String", # required 
    attribute_names: ["String"], 
    consistent_read: false, 
}) 

을 ...하고 다음 응답 예

resp.attributes #=> Array 
resp.attributes[0].name #=> String 
resp.attributes[0].alternate_name_encoding #=> String 
resp.attributes[0].value #=> String 
resp.attributes[0].alternate_value_encoding #=> String 

또한 다음 부분을 말한다 조언 :

이 작업을 위해 액세스 한 복제본에 항목이 없으면 빈 집합이 반환됩니다. 네드. 해당 항목이 다른 복제본에 존재하지 않는다고 보장 할 수 없으므로 시스템에서 오류를 반환하지 않습니다.

나는 이것을 오해하기를 바랍니다. 그러나 응답이 빈 세트를 반환하면, 제공된 항목 이름이있는 항목이 없거나 요청이 방금 맞았는지 어떻게 알 수 있습니까? 항목이 포함되지 않은 복제본입니까?

답변

1

이전에는 AWS SimpleDB를 사용 해본 적이 없지만 아마존의 DynamoDB에서 복제에 대한 정보를 얻은 적이 거의 없습니다. 일반적으로 데이터는 결국 일관성이 있습니다. 복제본 중 사용자의 요청 읽기, 이전에 작성한 복제 프로세스 데이터를 저장하는 복제본에서 데이터가 계속 발생할 수 있습니다. 따라서 특성을 읽으려는 요청을 처리하는 복제본에 데이터가 저장되어 있지 않아도 (즉,) 오류 메시지로 응답 할 수없는 이유가 여기에 있습니다.

따라 the documentation of get_attributes method

에 : 100 % 확인하기 위해 할 수 있어야 무엇

는 데이터가 AWS SimpleDB의 존재 여부를 알려 주어야로 consistent_read: true 매개 변수를 지정하는 것입니다

: consistent_read (부울) -

데이터가 SimpleDB를 읽을 때 강한 일관성이 적용되어야하는지 여부를 결정. true의 경우, SimpleDB에 이전에 기입해진 데이터가 돌려 주어집니다. 그렇지 않으면 결국 결과가 일관되고 클라이언트가 읽기 직전에 작성된 데이터를 볼 수 없습니다.