當通過調用建立執行個體介面在ECS中建立雲伺服器時,如果遇到了請求逾時或伺服器內部錯誤時,用戶端可能會嘗試重發請求,這時用戶端可以通過提供選擇性參數ClientToken避免伺服器建立出比預期要多的執行個體,也就是通過提供ClientToken參數保證請求的等冪性。ClientToken是一個由用戶端生成的唯一的、大小寫敏感、不超過64個ASCII字元的字元串。

如果使用者使用同一個ClientToken值調用建立執行個體介面,則服務端會返回相同的請求結果,包含相同的InstanceId。因此使用者在遇到錯誤進行重試的時候,可以通過提供相同的ClientToken值,來確保ECS只建立一個執行個體,並得到這個執行個體的InstanceId

如果使用者提供了一個已經使用過的ClientToken,但其他請求參數不同,則ECS會返回IdempotentParameterMismatch的錯誤碼。但需要注意的是,SignatureNonceTimestampSignature參數在重試時是需要變化的,因為ECS使用SignatureNonce來防止重放攻擊,使用Timestamp來標記每次請求時間,所以再次請求必須提供不同的SignatureNonceTimestamp參數值,這同時也會導致Signature值的變化。

通常,用戶端只需要在500(InternalErrorInternalError)或503(ServiceUnavailable)錯誤、或者無法得到響應結果的情況下進行重試操作。返回結果是200時,重試可以得到上次相同的結果,但不會對服務端狀態帶來任何影響。而對4xx的返回錯誤,除非提示資訊裡明確出現“try it later”,通常重試也是不能成功的。