Как развернуть SAPUI5 / OPENUI5 на GCP App Engine вместо Compute Engine? - PullRequest
1 голос
/ 08 ноября 2019

Я уже сделал приложение, используя пробную версию SCP, и хочу развернуть его на GCP App Engine, чтобы сократить расходы. Это возможно?

Я уже пытался развернуть файл .yaml, который идет вместе с экспортом программы из SCP.

По сути, я просто хочу, чтобы он был развернут с использованием механизма приложений Google Cloud Platform.

1 Ответ

0 голосов
/ 09 ноября 2019

Может быть, вы могли бы попробовать это . Просто будьте осторожны, так как этот учебник немного старсреда, использующая настраиваемые среды выполнения в гибкой среде App Engine .

Если вы хотите использовать альтернативную реализациюPython, Java, Node.js, Go, Ruby, PHP, .NET или вы пишете код на любом другом языке, тогда пользовательские среды выполнения для вас. Настраиваемые среды выполнения позволяют вам определять новые среды выполнения, которые могут включать дополнительные компоненты, такие как языковые интерпретаторы или серверы приложений.

Как и для встроенных сред выполнения, вам необходимо добавить app.yamlфайл и дополнительно Dockerfile в проекте. Я создал пример, используя этот Quickstart и этот GitHub репозиторий .

Вам нужно немного изменить файлы Dockerfile и index.js:

Dockerfile

FROM node:alpine

ARG ui5_version="1.69.1"
ARG ui5_filename="openui5-sdk-${ui5_version}.zip"
ARG ui5_url="https://github.com/SAP/openui5/releases/download/${ui5_version}/${ui5_filename}"

WORKDIR /home/node/app

## copy node sources
COPY . .

# install tmp. packages
RUN apk add --no-cache --virtual .sdk wget unzip python make g++

# download sdk
RUN wget ${ui5_url} --no-check-certificate -P /home/node/app

# unzip sdk
RUN unzip -o /home/node/app/${ui5_filename} -d /home/node/app/sdk

# delete sdk.zip
RUN rm /home/node/app/${ui5_filename}

# install node_modules
RUN yarn install --production

# delete tmp. packages
RUN apk del .sdk

# Here's the change for Dockerfile
# App engine expects the application listen on port 8080 
# so let's expose that port
EXPOSE 8080

# start server
ENV NODE_ENV=production
CMD [ "yarn", "serve" ]

index.js

const path = require('path');
const fastify = require('fastify')();
const fastifyCors = require('fastify-cors');
const fastifyStatic = require('fastify-static');

// We define port 8080 as GAE expects the app listen on that port.
const port = 8080;
const address = '0.0.0.0';
const root = 'sdk';

(async () => {
    try {
        // cors
        fastify.register(fastifyCors);
        // static
        fastify.register(fastifyStatic, {
            root: path.join(__dirname, root),
            dotfiles: 'allow'
        });
        // listen
        await fastify.listen(port, address);
    } catch (err) {
        process.exit(1)
    }
})();

Затем создайте файл app.yaml:

# We define our runtime as custom so GAE search for
# a Dockerfile.
runtime: custom
env: flex

Наконец, разверните приложение с помощью gcloud app deploy.

Исходя из этого, вы можете попробовать развернуть свое собственное приложение OPENUI5.

...