yandex-cloud / go-sdk

Yandex.Cloud Go SDK
MIT License
80 stars 15 forks source link

Как пользоваться в Cloud Function? Размер мешает сборке #23

Open nickiv opened 1 month ago

nickiv commented 1 month ago

Здравствуйте!

Пытаюсь разработать Cloud Function API Gateway + Websocket. При подключении SDK в проект он перестает собираться при публикации новой версии функции.

Я подключаю SDK путем добавления в import:

"github.com/yandex-cloud/go-genproto/yandex/cloud/serverless/apigateway/websocket/v1"
ycsdk "github.com/yandex-cloud/go-sdk"

Перед этим делаю: go get github.com/yandex-cloud/go-sdk

SDK мне нужен для того, что бы отправить данные в websocket. Так вот, после добавления этого import функция перестает собираться. После 3 минут выдает ссылку на лог:

===> executing build script
go: downloading github.com/go-telegram-bot-api/telegram-bot-api/v5 v5.5.1
go: downloading github.com/google/uuid v1.6.0
go: downloading github.com/sirupsen/logrus v1.9.3
go: downloading github.com/xeonx/timeago v1.0.0-rc5
go: downloading github.com/yandex-cloud/go-genproto v0.0.0-20240729164347-c5b523b251a7
go: downloading github.com/yandex-cloud/go-sdk v0.0.0-20240729164733-eb9da8ab7eda
go: downloading github.com/ydb-platform/ydb-go-sdk/v3 v3.76.1
go: downloading github.com/ydb-platform/ydb-go-yc v0.12.1
go: downloading golang.org/x/sys v0.22.0
go: downloading google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4
go: downloading google.golang.org/grpc v1.65.0
go: downloading google.golang.org/protobuf v1.34.2
go: downloading github.com/golang-jwt/jwt/v4 v4.5.0
go: downloading github.com/ydb-platform/ydb-go-genproto v0.0.0-20240528144234-5d5a685e41f7
go: downloading github.com/ydb-platform/ydb-go-yc-metadata v0.6.1
go: downloading golang.org/x/net v0.27.0
go: downloading github.com/ghodss/yaml v1.0.0
go: downloading gopkg.in/yaml.v2 v2.2.8
go: downloading github.com/hashicorp/go-multierror v1.0.0
go: downloading github.com/jonboulle/clockwork v0.4.0
go: downloading github.com/hashicorp/errwrap v1.0.0
go: downloading golang.org/x/sync v0.7.0
go: downloading golang.org/x/text v0.16.0
[redacted]/[redacted]/: /function/runtime/pkg/tool/linux_amd64/link: signal: killed
===> execution failed: exit status 1

Если убрать этот импорт, то все собирается. Я обратил внимание, что при локальной сборке подключение SDK приводит к увеличению размера собранного исполняемого файла на 43МБ, то есть больше чем в два раза. Что наводит на мысль, что SDK либо не успевает загрузиться при сборке в облаке, либо натыкается на какой-то другой лимит.

Могу ли я подключить SDK частично, только ту часть, которая работает с apigateway/websocket? Может быть есть какое-то внутренне зеркало GitHub для SDK?

Как этим пользоваться в Yandex Cloud Function?

opportunity356 commented 1 month ago

Здравствуйте! К сожалению, отдельного зеркала или возможности импортировать только часть sdk сейчас нет. Советую обратиться к документации. Замечу, что лимиты суммарные по всем функциям. Так же есть возможность увеличить лимиты

https://yandex.cloud/ru/docs/functions/concepts/limits#functions-limits