Я пытаюсь использовать интерфейс командной строки AWS apigateway, чтобы установить шаблон отображения ответа интеграции для одной из моих конечных точек в моем API. Этот конкретный случай включает использование text / html в качестве моего Content-Type, и в качестве такового мой шаблон отображения представляет собой необработанный HTML-код. В зависимости от определенных обстоятельств я хотел бы использовать интерфейс командной строки для установки шаблона отображения на другой код HTML. В связи с этим я пытаюсь прочитать содержимое HTML из указанного файла в строку --response-template
JSON, которая заполнит шаблон сопоставления.
Команда для этого следующая:
aws apigateway put-integration-response
--rest-api-id $(restApiId) --resource-id $(resourceId) \
--http-method POST --status-code 200 \
--selection-pattern "" \
--response-parameters '{"method.response.header.Content-Type":"'"'"'text/html'"'"'"}' \
--response-templates '{"text/html": "<!DOCTYPE html><html lang="en"><body><p>Hello, world</p></body></html>"}'
Я изначально пытался сделать это в Makefile, отсюда и переменные, но я открыт для создания сценария оболочки для достижениятоже самое. Мой HTML-файл намного больше, чем в приведенном выше примере, и содержит сценарии с функциями, скобками, объектами JSON, множеством строк в таблицах стилей и тому подобным - другими словами, многие символы, которые необходимо экранировать. Я не могу вручную изменить файл HTML, и я не уверен, что смогу изменить его с помощью escape-символов, поскольку шаблон отображения должен быть точным содержимым HTML, поскольку именно это и отображается.
Могу ли я поместить все содержимое файла HTML в часть значения этой строки JSON? Если так, как я могу заставить это работать?
Любая помощь приветствуется.