Geben Sie null
in der Antwortvorlage wie folgt an:
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}'
ergibt den Fehler:
Parameter validation failed:
Invalid type for parameter responseTemplates.application/json, value: None, type: <type 'NoneType'>, valid types: <type 'basestring'>
Wenn ich null
durch "Empty"
ersetze, akzeptiert die CLI den Parameter:
--response-templates '{"application/json":"Empty"}'
Wenn die AWS-Konsole dieselbe Methode erstellt und ich sie abfrage, wird der Wert als null
angezeigt. Es scheint, als sollte ich in der Lage sein, es über das aws-cli auf denselben Wert zu setzen.
aws-cli/v1.9.2
Die Problemumgehung besteht darin, anstelle von null
eine leere Zeichenfolge zu übergeben, dh --response-templates '{"application/json":""}'
, und Sie erhalten
{
"statusCode": "200",
"responseTemplates": {
"application/json": null
}
}
Danke.
Danke @quiver und @ehammond . Ich fürchte, dass "Workaround" eigentlich der richtige Weg ist, es zu tun. Tatsache ist, dass der apigateway-Service so modelliert ist, dass er einen String als Eingabe erwartet, also funktionieren alle AWS SDKs auf diese Weise, und apigateway übersetzt scheinbar den leeren String unter der Haube als null. Vermutlich passiert die gleiche Geschichte auch in der AWS-Konsole.
Hilfreichster Kommentar
Die Problemumgehung besteht darin, anstelle von
null
eine leere Zeichenfolge zu übergeben, dh--response-templates '{"application/json":""}'
, und Sie erhalten