Сообщение Re[3]: Сloud functions и ограничения по ЯП от 31.07.2023 21:15
Изменено 31.07.2023 21:17 vsb
Re[3]: Сloud functions и ограничения по ЯП
Здравствуйте, Shmj, Вы писали:
vsb>>Можно, просто это никому не нужно. И Go и Rust ничем принципиально от C++ не отличаются. На Java тоже можно в память писать, ежели умеючи. Конечно же там всё ограничено на уровне виртуальных машин, иначе никак.
S>На уровне компиляции можно делать проверки.
Компилируешь на своей машине.
S>>>С Rust, как я понял, удалось за счет того, что можно отключит unsafe и оставить только safe. С C# та же петрушка, по сути — там тоже unsafe. А вот с С++ это не проканает, т.к. нету концепции safe|unsafe. Правильно я понял?
vsb>>Откуда ты это взял, что там только safe?
S>Там его вообще нет — ни в каком виде. Видимо ранее был и осталась инфа.
В AWS есть.
vsb>>Ещё обычно есть опция — просто OCI-образ,
S>Вы точно не путаете с Kuber и подобными?
Это называется AWS Fargate. По сути та же lambda.
vsb>>Ты туда деплоишь скомпилированный бинарник. Им твои исходники не нужны. Ничего они не проверяют и не могут проверять.
S>Вроде бинарник нельзя для Go.
https://docs.aws.amazon.com/lambda/latest/dg/golang-package.html
Инструкции:
Как видно — собирается пользователем на своём компьютере, стандартным компилятором с обычными флагами. Кладётся собранный бинарник в zip и деплоится.
S>Это же просто бинарник — как они отличат на каком ЯП он сделан?
Никак, им это не надо. Они этот бинарник запустят в окружении, которого ожидает Go и всё.
vsb>>Можно, просто это никому не нужно. И Go и Rust ничем принципиально от C++ не отличаются. На Java тоже можно в память писать, ежели умеючи. Конечно же там всё ограничено на уровне виртуальных машин, иначе никак.
S>На уровне компиляции можно делать проверки.
Компилируешь на своей машине.
S>>>С Rust, как я понял, удалось за счет того, что можно отключит unsafe и оставить только safe. С C# та же петрушка, по сути — там тоже unsafe. А вот с С++ это не проканает, т.к. нету концепции safe|unsafe. Правильно я понял?
vsb>>Откуда ты это взял, что там только safe?
S>Там его вообще нет — ни в каком виде. Видимо ранее был и осталась инфа.
В AWS есть.
vsb>>Ещё обычно есть опция — просто OCI-образ,
S>Вы точно не путаете с Kuber и подобными?
Это называется AWS Fargate. По сути та же lambda.
vsb>>Ты туда деплоишь скомпилированный бинарник. Им твои исходники не нужны. Ничего они не проверяют и не могут проверять.
S>Вроде бинарник нельзя для Go.
https://docs.aws.amazon.com/lambda/latest/dg/golang-package.html
Инструкции:
GOOS=linux GOARCH=amd64 go build -tags lambda.norpc -o bootstrap main.go
zip myFunction.zip bootstrap
aws lambda create-function --function-name myFunction --runtime provided.al2 --handler bootstrap --architectures arm64 --role arn:aws:iam::111122223333:role/lambda-ex --zip-file fileb://myFunction.zip
Как видно — собирается пользователем на своём компьютере, стандартным компилятором с обычными флагами. Кладётся собранный бинарник в zip и деплоится.
S>Это же просто бинарник — как они отличат на каком ЯП он сделан?
Никак, им это не надо. Они этот бинарник запустят в окружении, которого ожидает Go и всё.
Re[3]: Сloud functions и ограничения по ЯП
Здравствуйте, Shmj, Вы писали:
vsb>>Можно, просто это никому не нужно. И Go и Rust ничем принципиально от C++ не отличаются. На Java тоже можно в память писать, ежели умеючи. Конечно же там всё ограничено на уровне виртуальных машин, иначе никак.
S>На уровне компиляции можно делать проверки.
Компилируешь на своей машине.
S>>>С Rust, как я понял, удалось за счет того, что можно отключит unsafe и оставить только safe. С C# та же петрушка, по сути — там тоже unsafe. А вот с С++ это не проканает, т.к. нету концепции safe|unsafe. Правильно я понял?
vsb>>Откуда ты это взял, что там только safe?
S>Там его вообще нет — ни в каком виде. Видимо ранее был и осталась инфа.
В AWS есть.
vsb>>Ещё обычно есть опция — просто OCI-образ,
S>Вы точно не путаете с Kuber и подобными?
https://aws.amazon.com/blogs/containers/containerizing-lambda-deployments-using-oci-container-images/
vsb>>Ты туда деплоишь скомпилированный бинарник. Им твои исходники не нужны. Ничего они не проверяют и не могут проверять.
S>Вроде бинарник нельзя для Go.
https://docs.aws.amazon.com/lambda/latest/dg/golang-package.html
Инструкции:
Как видно — собирается пользователем на своём компьютере, стандартным компилятором с обычными флагами. Кладётся собранный бинарник в zip и деплоится.
S>Это же просто бинарник — как они отличат на каком ЯП он сделан?
Никак, им это не надо. Они этот бинарник запустят в окружении, которого ожидает Go и всё.
vsb>>Можно, просто это никому не нужно. И Go и Rust ничем принципиально от C++ не отличаются. На Java тоже можно в память писать, ежели умеючи. Конечно же там всё ограничено на уровне виртуальных машин, иначе никак.
S>На уровне компиляции можно делать проверки.
Компилируешь на своей машине.
S>>>С Rust, как я понял, удалось за счет того, что можно отключит unsafe и оставить только safe. С C# та же петрушка, по сути — там тоже unsafe. А вот с С++ это не проканает, т.к. нету концепции safe|unsafe. Правильно я понял?
vsb>>Откуда ты это взял, что там только safe?
S>Там его вообще нет — ни в каком виде. Видимо ранее был и осталась инфа.
В AWS есть.
vsb>>Ещё обычно есть опция — просто OCI-образ,
S>Вы точно не путаете с Kuber и подобными?
https://aws.amazon.com/blogs/containers/containerizing-lambda-deployments-using-oci-container-images/
vsb>>Ты туда деплоишь скомпилированный бинарник. Им твои исходники не нужны. Ничего они не проверяют и не могут проверять.
S>Вроде бинарник нельзя для Go.
https://docs.aws.amazon.com/lambda/latest/dg/golang-package.html
Инструкции:
GOOS=linux GOARCH=amd64 go build -tags lambda.norpc -o bootstrap main.go
zip myFunction.zip bootstrap
aws lambda create-function --function-name myFunction \
--runtime provided.al2 --handler bootstrap \
--architectures arm64 \
--role arn:aws:iam::111122223333:role/lambda-ex \
--zip-file fileb://myFunction.zip
Как видно — собирается пользователем на своём компьютере, стандартным компилятором с обычными флагами. Кладётся собранный бинарник в zip и деплоится.
S>Это же просто бинарник — как они отличат на каком ЯП он сделан?
Никак, им это не надо. Они этот бинарник запустят в окружении, которого ожидает Go и всё.