SDK Golang untuk Dynamodb: ReturnValuesOnConditionCheckFailure tidak mengembalikan butiran tentang keadaan apabila keadaan chcekfailure berlaku

PHPz
Lepaskan: 2024-02-10 18:45:18
ke hadapan
541 orang telah melayarinya

适用于 Dynamodb 的 Golang SDK:ReturnValuesOnConditionCheckFailure 不返回有关条件chcekfailure 发生时的条件的详细信息

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.

Kandungan soalan

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)
Salin selepas log masuk

Penyelesaian

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")
Salin selepas log masuk

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!

Label berkaitan:
sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!