Aws-cli: aws apigateway put-integration-response: Antwortvorlagenwert „null“ nicht akzeptiert

Erstellt am 31. Okt. 2015  ·  3Kommentare  ·  Quelle: aws/aws-cli

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

guidance

Hilfreichster Kommentar

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
    }
}

Alle 3 Kommentare

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.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen