Можно ли использовать API вместо SDK? - PullRequest
0 голосов
/ 08 мая 2018

Мне нравится быстрое выполнение кода (из-за этого я переключился с Python на Go) и мне не нравятся зависимости. Amazon рекомендует использовать SDK для более простой аутентификации (но в Lambda я могу получить токены из IAM из переменных среды) и из-за встроенного в SDK повторения ошибок (несколько строк кода, как мне кажется). Да, быстрее писать мой код с использованием SDK, но какие дополнительные предостережения по поводу использования чистого HTTP API вместо SDK? Я слишком без ума от миллисекунд? Стоит ли такая оптимизация?

Ответы [ 2 ]

0 голосов
/ 08 мая 2018

Я думаю, что заявленный акцент на производительности противоречит реальным компромиссам.

Учтите, что кому-то придется поддерживать ваш код - если вы используете API, область тестирования мала, но API AWS могут измениться или устареть; если вы SDK, следующий программист подключит новую версию SDK и будет надеяться, что она работает, но если этого не произойдет, они увязнут в весе SDK.

Аналогично, представьте, что кто-то должен сделать обзор безопасности этого приложения или представить что-то, что еще не охватывалось SDK (давайте представим, что учетная группа распространяется от роли вызывающей стороны к базовому хранилищу).

Не думаю, что есть четкий ответ.

Вот мои предложения :

  • поддерживать согласованность - API или SDK (в рамках данного приложения)
  • рассмотрите более широкую картину (сколько приложений вы планируете написать?)
  • не бойтесь переключиться на другой подход позже

Мне приходилось выбирать что-то подобное в прошлом с Docker (гораздо более приятные API и SDK / библиотеки). Вот как это разыгрывается:

Для тестирования мы использовали бета-версию привязок Docker Python: версии prod не хватало, а привязки (ваш SDK) в целом были довольно хорошими и понятными.

Для очистки журнала я использовал HTTP-вызовы (ваш API), «потому что производительность», в действительности сравнительная умственная нагрузка с использованием API против SDK и потому что привязки (SDK) не поддерживали asyncio.

0 голосов
/ 08 мая 2018

Все, что вы делаете с AWS, является результатом вызова API, независимо от того, выполняется ли он CLI, веб-консолью или SDK.

SDK упрощают взаимодействие с этими API. Несмотря на то, что вы можете внести некоторые незначительные улучшения в некоторые вызовы, в целом вы потратите много времени, делая это с очень небольшой выгодой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...