Это простой шаблон, который позволит запустить первую версию вашего приложения в облаке. Делается за минуту:
- Загрузите
go.mod
иmain.go
в вашу функцию - Поставьте точка входа -
main.Router
- Поставьте галочку
публичная функция
Потом перейдите на https://functions.yandexcloud.net/d4e3...
(написан там где галочку ставили). Вы победили!
Чтобы у нас работало, что-то кроме одного маршрута, мы добавим Api Gateway
. Там все очень просто.
Это делается на тот, случай если ты решишь, что тебе нужен ещё например такой адрес /info
router.Get(/info, infoHandler)
-
Запомнить идентификатор функции. Или в адресе
https://functions.yandexcloud.net/<идентификатор>
, или в списке всех функций -
Перейдем в сервис
Api Gateway
в яндекс облаке и создадим новый гейт -
Запишем такую конфигурацию в окне создания шлюза, и поменяем строчку
function_id
на полученный в первом пунтке идентификаторopenapi: 3.0.0 info: title: Sample API version: 1.0.0 paths: /{url+}: x-yc-apigateway-any-method: parameters: - explode: false in: path name: url required: false style: simple x-yc-apigateway-integration: function_id: твой_идентификатор tag: $latest type: cloud_functions
-
Теперь твоя функция работает по такому адресу
https://d5dphasdln.apigw.yandexcloud.net
, его можно посмотреть в поле служебный домен на открывшейся странице
Готово! 🙌
Форкните на гитхабе и установите себе локально репозиторий, чтобы можно было работать с кодом.
Ещё вот есть интересный гайд по git или прекрасный курс на Яндекс.Практикуме
- зайдите в папку
- скачайте в нее репозиторий
git clone https://github.com/<ваше_имя>/<ваш_репозиторий> .
Чтобы сервер можно было запускать локально добавьте в конце main.go
такой код
func main(){
http.ListenAndServe(":8080", router)
}
В дальнейшем планируется добавить полезных функций для чтения контекста, и прочего. Записать видео, как создать функцию
Дмитрий Фроленко 2023