تحديد null
في نموذج الاستجابة على النحو التالي:
aws apigateway put-integration-response \
--region "$region" \
--rest-api-id "$api_id" \
--resource-id "$resource_id" \
--http-method GET \
--status-code 200 \
--response-templates '{"application/json":null}'
ينتج عن الخطأ:
Parameter validation failed:
Invalid type for parameter responseTemplates.application/json, value: None, type: <type 'NoneType'>, valid types: <type 'basestring'>
إذا استبدلت null
بـ "Empty"
فإن cli يقبل المعلمة:
--response-templates '{"application/json":"Empty"}'
عندما تنشئ وحدة تحكم AWS نفس الطريقة وأقوم بالاستعلام عنها ، تظهر القيمة على أنها null
. يبدو أنني يجب أن أكون قادرًا على ضبطه على نفس القيمة من خلال aws-cli.
aws-cli / v1.9.2
الحل هو تمرير سلسلة فارغة بدلاً من null
، أي --response-templates '{"application/json":""}'
، وستحصل على
{
"statusCode": "200",
"responseTemplates": {
"application/json": null
}
}
شكرا.
شكرا @ quiver و @ ehammond . أخشى أن يكون "الحل البديل" هو الطريقة الصحيحة للقيام بذلك. الحقيقة هي أن خدمة البوابة تم تصميمها على أنها تتوقع سلسلة كمدخلات ، لذلك تعمل جميع حزم AWS SDK بهذه الطريقة ، ويبدو أن البوابة تترجم السلسلة الفارغة على أنها فارغة تحت الغطاء. من المفترض أن تحدث نفس القصة في AWS Console أيضًا.
التعليق الأكثر فائدة
الحل هو تمرير سلسلة فارغة بدلاً من
null
، أي--response-templates '{"application/json":""}'
، وستحصل على