Пожалуйста, укажите мне документацию, где AWS определяет $ LATEST лямбда-версии, или предположите, что именно так AWS использует терминологию без ее определения.
Понятно AWS лямбда-документы говорят, что $ LATEST - это версия.
- AWS Версии лямбда-функций
Если вы не опубликовали версию выбранной функции, на панели «Версии» отображается только $ LATEST version .
Сначала я думал, что это похоже на тег HEAD , указывающий на последний коммит в ветви Git. Git commit является неизменным, но лямбда версия не является.
AWS Версии лямбда-функции
A версия может быть опубликован тот, который является постоянным.
Система создает новую версию вашей лямбда-функции каждый раз, когда вы публикуете sh функцию. ... Когда вы публикуете sh версию, код и большинство настроек блокируются , чтобы обеспечить согласованное использование для пользователей этой версии.
Но также это может быть неопубликованный , который можно изменить и сохранить.
Вы можете изменить код функции и настройки только на неопубликованная версия функции.
Итак, я не могу найти определение по AWS, что $ LATEST является временным снимком код + время выполнения + настройка, которую кто-то сохранил в какой-то момент в учетной записи AWS и еще не обновил и не сохранил.
Полагаю, это похоже на временный артефакт в процессе выполнения в локальном git хранилище. Мы не будем знать, что это за код, потому что кто-то может его сохранить, и мы никогда не узнаем, что мы выполняем, если не будем использовать опубликованную, а значит, неизменную версию в качестве квалификатора при вызове.
И лично верим версия должна быть неизменной. Он не должен быть изменяемым, как Lambda $ LATEST. Версия 1 по состоянию на 19 марта 15:00 или версия 1 по состоянию на 20 марта 13:00 не имеют для меня никакого смысла. Версия 1 должна быть уникальной. Если внесено изменение, оно должно быть версии 1.1 или 2.0.
Invoke
POST /2015-03-31/functions/FunctionName/invocations?Qualifier=Qualifier HTTP/1.1
Пожалуйста, сообщите, если это правильное понимание, и мы не должны использовать $ ПОСЛЕДНИЕ для вызова, если только один человек не работает и не тестирует.
И если это так, то, я полагаю, наличие $ LATEST не имеет практической цели в правильном проектировании, где мы должны быть в состоянии последовательно идентифицировать ревизию кода и воспроизводить тот же результат, если мы повторим то же самое процедура по пересмотру.
Обновление
В настоящее время я считаю, что моя путаница произошла из-за непоследовательного и, возможно, неправильного именования AWS.
Версия является неизменным, если опубликовано, но изменяемым, если не опубликовано, и в этом случае называется $ LATEST.
Версия может быть снимком лямбда-функции, но может быть целым числом.
$ LATEST указывает на последнюю сохраненную лямбда-функцию, которую можно изменить в любое время, и мы можем знать, что мы выполняем или смотрим, если мы используем $ LATEST. $ LATEST для меня может отличаться для кого-то еще. Мне кажется, я работаю над движущейся целью.