Editor php Xiaoxin memperkenalkan kepada anda ciri penting dalam SDK Golang untuk Dynamodb: ReturnValuesOnConditionCheckFailure. Ciri ini melindungi data sensitif dengan tidak mengembalikan maklumat terperinci tentang keadaan apabila pemeriksaan syarat gagal. Menggunakan ciri ini, pembangun boleh mengendalikan kegagalan pemeriksaan keadaan dengan lebih selamat dan meningkatkan kebolehpercayaan aplikasi. Dalam artikel ini, kami akan menyelidiki penggunaan dan kelebihan ciri ini untuk membantu pembangun memahami dan menerapkannya dengan lebih baik pada projek sebenar.
Saya menggunakan golang sdk https://pkg.go.dev/github.com/aws/[email protected]/ untuk syarat penyahpepijatan untuk menyemak ralat dan mengetahui sebab mengapa satu penulisan mesej operasi gagal, tetapi saya hanya dapat melihat ralat Message_: "Permintaan bersyarat gagal". Tiada maklumat tambahan tentang sebab khusus diberikan apabila menggunakan parameter ReturnValuesOnConditionCheckFailure: ALL_OLD dalam UpdateItemInput. Untuk TransactWriteItems, saya dapat melihat dengan tepat mengapa semakan syarat gagal apabila menggunakan parameter yang sama. Bagaimanakah saya boleh mendapatkan butiran ini untuk satu operasi tulis? Rujukan: https://aws.amazon.com/about-aws/whats-new/2023/06/amazon-dynamodb-cost-failed-conditional-writes Sintaks yang saya gunakan:
input := &dynamodb.UpdateItemInput{ TableName: aws.String("DummyTable"), Key: keyAttr, ExpressionAttributeValues: updateExpr.Values(), ExpressionAttributeNames: updateExpr.Names(), ConditionExpression: updateExpr.Condition(), ReturnValues: aws.String(dynamodb.ReturnValueAllOld), UpdateExpression: updateExpr.Update(), ReturnValuesOnConditionCheckFailure: aws.String(dynamodb.ReturnValuesOnConditionCheckFailureAllOld), } output, err := dl.ddbI.UpdateItem(input)
Item hendaklah terletak di dalam komponen ralat, biasanya dalam error.response.Item
.
Sebagai contoh dalam Python:
except botocore.exceptions.ClientError as error: if error.response["Error"]["Code"] == "ConditionalCheckFailedException": print("The conditional expression is not met") current_value = error.response.get("Item")
Nota: Jika anda menggunakan DynamoDB Local, ciri ini belum wujud lagi
Atas ialah kandungan terperinci SDK Golang untuk Dynamodb: ReturnValuesOnConditionCheckFailure tidak mengembalikan butiran tentang keadaan apabila keadaan chcekfailure berlaku. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!