Добавить рабочие примеры
polRk opened this issue · 4 comments
Почему-то не получается задеплоить функции на go, в ответе неясная ошибка:
Unknown function "actions" found
Unknown function "triggers" found
Unknown function "api" found
[object Object]
Failed to update function
telegram: betteraskbot-dev-telegram
Unknown function "web-app" found
Unknown function "telegram" found
[object Object]
Failed to update function
actions: betteraskbot-dev-actions
[object Object]
Failed to update function
triggers: betteraskbot-dev-triggers
[object Object]
Failed to update function
api: betteraskbot-dev-api
[object Object]
Failed to create function "web-app"
Service deployed successfully
serverless.yml
service: betteraskbot
frameworkVersion: "3"
provider:
name: yandex-cloud
runtime: golang117
environment:
YDB_ENDPOINT:
YDB_DATABASE:
AWS_ACCESS_KEY_ID:
AWS_SECRET_ACCESS_KEY:
plugins:
- '@yandex-cloud/serverless-plugin'
package:
include:
- functions/**
functions:
triggers:
handler: functions/triggers.TriggersHandler
memorySize: 128
timeout: 30
account: betteraskbot-cf
events:
- sqs:
arn: yrn:yc:ymq:ru-central1:b1gv32ui3q6vnrs08cfh:triggers
batchSize: 10
enabled: true
maximumRetryAttempts: 5
actions:
handler: functions/actions.ActionsHandler
memorySize: 128
timeout: 30
account: betteraskbot-cf
api:
handler: functions/api.ApiHandler
memorySize: 128
timeout: 30
account: betteraskbot-cf
telegram:
handler: functions/telegram.TelegramHandler
memorySize: 128
timeout: 30
account: betteraskbot-cf
events:
- http:
path: /telegram/{merchantID}/{channelID}
method: post
request:
parameters:
paths:
merchantID: true
channelID: true
web-app:
handler: functions/web_app.WebAppHandler
memorySize: 128
timeout: 30
account: betteraskbot-cf
resources:
betteraskbot-cf:
type: yc::ServiceAccount
roles:
- editor
- ydb.editor
- serverless.functions.invoker
betteraskbot-mq:
type: yc::ServiceAccount
roles:
- editor
- ymq.writer
- serverless.functions.invoker
Структура проекта
С такой структурой проекта у вас скорее всего получается что все файлы *.go
после распаковки также останутся в директории functions/
. А для того чтобы функция корректно создалась, нужно чтобы файлы лежали в корне.
Фреймворк serverless
корнем считает ту директорию, где лежит файл serverless.yml
.
Таким образом самым простым решением будет перенести его в functions/
и соответственно избавиться от этого префикса в хэндлерах.
@nikolaymatrosov Попробую
@nikolaymatrosov Попробую
@polRk получилось?
@nikolaymatrosov Попробую
@polRk получилось?
А я забросил тогда это дело и не отписался 😅