arrow_back

Початок роботи з Cloud Run

Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Початок роботи з Cloud Run

Lab 1 година universal_currency_alt 5 кредитів show_chart Початковий
info This lab may incorporate AI tools to support your learning.
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Огляд

Логотип Cloud Run

Cloud Run – це керована платформа обчислення, на якій можна запускати контейнери без статусу через запити HTTP. Платформа безсерверна: вам не доведеться керувати інфраструктурою, тож ви зможете зосередитися на головному – створенні додатків.

Cloud Run створено на основі Knative: ви можете керувати роботою контейнерів лише за допомогою Cloud Run або запустити їх у кластері Google Kubernetes Engine за допомогою Cloud Run у GKE.

Мета цієї практичної роботи – створити простий образ контейнерного додатка й розгорнути його в Cloud Run.

Цілі

Виконуючи цю практичну роботу, ви навчитеся виконувати наведені нижче дії.

  • Вмикати Cloud Run API.
  • Створювати простий додаток Node.js, який можна розгорнути як безсерверний контейнер без статусу.
  • Поміщати додаток у контейнер і завантажувати в Artifact Registry.
  • Розгортати контейнерний додаток на Cloud Run.
  • Видаляти непотрібні образи, щоб уникнути додаткових витрат на зберігання.

Налаштування й вимоги

Для кожного практичного заняття ви безкоштовно отримуєте новий проект Google Cloud і набір ресурсів на визначений період часу.

  1. Натисніть кнопку Почати заняття. Якщо за практичне заняття необхідно заплатити, відкриється спливаюче вікно, де ви зможете обрати спосіб оплати. Ліворуч розміщено панель Відомості про практичне заняття з такими компонентами:

    • кнопка Відкрити консоль Google;
    • час до закінчення;
    • тимчасові облікові дані, які потрібно використовувати для доступу до цього практичного заняття;
    • інша інформація, необхідна для виконання цього практичного заняття.
  2. Натисніть Відкрити консоль Google або натисніть правою кнопкою миші й виберіть Відкрити анонімне вікно, якщо ви використовуєте вебпереглядач Chrome.

    Завантажаться необхідні ресурси. Потім відкриється нова вкладка зі сторінкою Вхід.

    Порада. Упорядковуйте вкладки в окремих вікнах, розміщуючи їх поруч.

    Примітка. Якщо з’явиться вікно Виберіть обліковий запис, натисніть Вибрати інший обліковий запис.
  3. За потреби скопіюйте значення в полі Username (Ім’я користувача) нижче й вставте його у вікні Вхід.

    {{{user_0.username | "Username"}}}

    Поле Username (Ім’я користувача) також можна знайти на панелі Відомості про практичне заняття.

  4. Натисніть Next (Далі).

  5. Скопіюйте значення в полі Password (Пароль) нижче й вставте його у вікні Welcome (Привітання).

    {{{user_0.password | "Password"}}}

    Поле Password (Пароль) також можна знайти на панелі Відомості про практичне заняття.

  6. Натисніть Next (Далі).

    Важливо. Обов’язково використовуйте облікові дані, призначені для відповідного практичного заняття. Не використовуйте облікові дані Google Cloud. Примітка. Якщо ввійти у власний обліковий запис Google Cloud, може стягуватися додаткова плата.
  7. Що від вас очікується

    • Прийміть Умови використання.
    • Не додавайте способи відновлення й двохетапну перевірку (оскільки це тимчасовий обліковий запис).
    • Не реєструйте безкоштовні пробні версії.

Через кілька секунд Google Cloud Console відкриється в новій вкладці.

Примітка. Щоб переглянути меню зі списком продуктів і сервісів Google Cloud, натисніть меню навігації вгорі ліворуч. Значок меню навігації

Активація Google Cloud Shell

Google Cloud Shell – це віртуальна машина з попередньо завантаженими інструментами для розробників. Вона містить головний каталог обсягом 5 ГБ постійної пам’яті й працює в середовищі Google Cloud.

Google Cloud Shell надає доступ до ресурсів Google Cloud через командний рядок.

  1. У консолі Cloud Console на панелі інструментів угорі праворуч натисніть кнопку Open Cloud Shell (Відкрити Cloud Shell).

    Виділений значок Cloud Shell

  2. Натисніть Continue (Продовжити).

Налаштування та підключення до середовища триватиме кілька секунд. Щойно ви підключитеся, вас буде автентифіковано, а проект отримає ваш PROJECT_ID (ІДЕНТИФІКАТОР ПРОЕКТУ). Наприклад:

Ідентифікатор проекту, виділений у Cloud Shell Terminal

gcloud – це інструмент командного рядка для Google Cloud. Він входить у пакет Cloud Shell і підтримує функцію автозавершення клавішею TAB.

  • Щоб вивести поточне ім’я облікового запису, введіть таку команду:
gcloud auth list

Вихідні дані:

Credentialed accounts: - @.com (active)

Приклад вихідних даних:

Credentialed accounts: - google1623327_student@qwiklabs.net
  • Щоб вивести ідентифікатор проекту, введіть таку команду:
gcloud config list project

Вихідні дані:

[core] project =

Приклад вихідних даних:

[core] project = qwiklabs-gcp-44776a13dea667a6 Примітка. Повну документацію щодо gcloud наведено в посібнику з інтерфейсу командного рядка gcloud .

Довідкові матеріали

Основні команди Linux

Нижче наведено список основних команд Linux, які може бути включено до вказівок або блоків коду для цього завдання.

Команда --> Дія . Команда --> Дія
mkdir (make directory) створити нову папку . cd (change directory) призначити іншу папку як місцеположення
ls (list ) вивести список файлів і папок у каталозі . cat (concatenate) вивести зміст файлу без використання редактора
apt-get update оновити бібліотеку менеджера пакетів . ping надіслати сигнал для перевірки доступності хосту
mv (move ) переміщує файл . cp (copy) створює копію файлу
pwd (present working directory ) повертає поточне місцеположення . sudo (super user do) надає найвищі права адміністратора

Завдання 1. Увімкніть Cloud Run API і налаштуйте середовище Shell

  1. Увімкніть Cloud Run API у Cloud Shell:
gcloud services enable run.googleapis.com
  1. За потреби дайте дозвіл на використання ваших облікових даних. Після цього з’явиться схоже повідомлення про те, що операцію виконано успішно:
Operation "operations/acf.cc11852d-40af-47ad-9d59-477a12847c9e" finished successfully. Примітка. API можна також увімкнути на консолі в розділі APIs & Services (API і сервіси).
  1. Укажіть регіон обчислення:
gcloud config set compute/region {{{project_0.default_region | "REGION"}}}
  1. Створіть змінну середовища LOCATION (МІСЦЕЗНАХОДЖЕННЯ):
LOCATION="{{{project_0.default_region | Region}}}"

Завдання 2. Напишіть тестовий додаток

У цьому завданні ви маєте створити тестовий додаток Node.js на основі фреймворку Express, що відповідає на запити HTTP.

  1. Створіть новий каталог під назвою helloworld у Cloud Shell і перенесіть у нього представлення:
mkdir helloworld && cd helloworld
  1. Далі ви створюєте й редагуєте файли. Для редагування файлів використовується редактор коду nano або Cloud Shell. Щоб відкрити редактор, натисніть відповідну кнопку в Cloud Shell.

  2. Створіть файл package.json, а потім додайте в нього такий вміст:

nano package.json { "name": "helloworld", "description": "Simple hello world sample in Node", "version": "1.0.0", "main": "index.js", "scripts": { "start": "node index.js" }, "author": "Google LLC", "license": "Apache-2.0", "dependencies": { "express": "^4.17.1" } }

Файл вище містить команду запуску скрипту й залежність від фреймворку вебдодатка Express.

  1. Щоб зберегти файл package.json, спочатку натисніть Ctrl+X, а потім введіть Y і натисніть клавішу Enter.

  2. Після цього створіть у тому самому каталозі файл index.js і скопіюйте в нього наведені нижче рядки.

nano index.js const express = require('express'); const app = express(); const port = process.env.PORT || 8080; app.get('/', (req, res) => { const name = process.env.NAME || 'World'; res.send(`Hello ${name}!`); }); app.listen(port, () => { console.log(`helloworld: listening on port ${port}`); });

Цей код створює базовий вебсервер, який очікує передавання даних на порті, визначеному змінною середовища PORT. Додаток готовий. Його можна перенести в контейнер і завантажити в Artifact Registry.

  1. Щоб зберегти файл index.js, спочатку натисніть Ctrl+X, а потім введіть Y і натисніть клавішу Enter.
Примітка. У Cloud Run можна використовувати інші мови. Інструкції для скриптів Go, Python, Java, PHP, Ruby, Shell тощо можна переглянути в посібнику Quickstarts.

Завдання 3. Помістіть додаток у контейнер і завантажте в Artifact Registry

  1. Щоб помістити тестовий додаток у контейнер, створіть новий файл під назвою Dockerfile у каталозі з вихідними файлами й додайте в нього такий вміст:
nano Dockerfile # Use the official lightweight Node.js 12 image. # https://hub.docker.com/_/node FROM node:12-slim # Create and change to the app directory. WORKDIR /usr/src/app # Copy application dependency manifests to the container image. # A wildcard is used to ensure copying both package.json AND package-lock.json (when available). # Copying this first prevents re-running npm install on every code change. COPY package*.json ./ # Install production dependencies. # If you add a package-lock.json, speed your build by switching to 'npm ci'. # RUN npm ci --only=production RUN npm install --only=production # Copy local code to the container image. COPY . ./ # Run the web service on container startup. CMD [ "npm", "start" ]
  1. Щоб зберегти файл Dockerfile, спочатку натисніть Ctrl+X, а потім введіть Y і натисніть клавішу Enter.

  2. Тепер створіть образ контейнера за допомогою Cloud Build – виконайте команду з каталогу, що містить Dockerfile. Зверніть увагу на змінну середовища $GOOGLE_CLOUD_PROJECT у команді, що містить ідентифікатор проекту практичної роботи:

gcloud builds submit --tag gcr.io/$GOOGLE_CLOUD_PROJECT/helloworld

Cloud Build – це сервіс, що виконує складання в Google Cloud. Він виконує низку етапів складання, де кожен етап виконується в контейнері Docker, щоб створити контейнер додатка (або інші артефакти) і перемістити його в Artifact Registry за допомогою однієї команди.

Після цього з’явиться повідомлення про те, що контейнер успішно переміщено, з назвою образу (gcr.io/[PROJECT-ID]/helloworld). Образ зберігається в Artifact Registry. За потреби його можна використати повторно.

  1. Щоб скласти список усіх образів контейнера, пов’язаних із поточним проектом, виконайте таку команду:
gcloud container images list
  1. Укажіть gcloud як інструмент для входу для всіх підтримуваних Google реєстрів Docker:
gcloud auth configure-docker Примітка. Можливо, з’явиться запит: Do you want to continue? (Продовжити?) (Y/N)? Щоб погодитися, введіть Y.
  1. Щоб запустити й протестувати додаток локально в Cloud Shell, виконайте стандартну команду docker:
docker run -d -p 8080:8080 gcr.io/$GOOGLE_CLOUD_PROJECT/helloworld
  1. У вікні Cloud Shell натисніть опцію Web preview (Попередній перегляд у вебпереглядачі) і виберіть Preview on port 8080 (Переглянути через порт 8080).

Відкриється вікно вебпереглядача з повідомленням "Hello World!" (Привіт, світе!). Також можна використати curl localhost:8080.

Завдання 4. Розгорніть додаток за допомогою Cloud Run

  1. Щоб розгорнути контейнерний додаток за допомогою Cloud Run, виконайте наведену нижче команду, додавши ідентифікатор власного проекту.
gcloud run deploy --image gcr.io/$GOOGLE_CLOUD_PROJECT/helloworld --allow-unauthenticated --region=$LOCATION

Завдяки позначці allow-unauthenticated (автентифікація необов’язкова) сервіс стає загальнодоступним.

  1. За потреби підтвердьте назву сервісу, натиснувши клавішу Enter.
Примітка. Можливо, з’явиться запит: Do you want enable these APIs to continue (this will take a few minutes)? (Увімкнути ці API, щоб продовжити (це займе кілька хвилин)?) (Y/N)? Щоб погодитися й увімкнути потрібні API, введіть Y.

Розгортання триватиме кілька хвилин.

У разі успіху в командному рядку з’явиться URL-адреса сервісу:

Service [helloworld] revision [helloworld-00001-xit] has been deployed and is serving 100 percent of traffic. Service URL: https://helloworld-h6cp412q3a-uc.a.run.app

Тепер можна перейти в розгорнутий контейнер, відкривши URL-адресу сервісу в будь-якому вікні вебпереглядача:

Вітаємо! Ви розгорнули додаток, запакований в образ контейнера, за допомогою Cloud Run. Cloud Run автоматично й горизонтально масштабує образ додатка для обробки отриманих запитів, а в разі скорочення кількості запитів зменшує його масштаб. У власному середовищі ви платите лише за ресурси ЦП, пам’яті й мережі, використані для обробки запитів.

Крім командного рядка gcloud, можна також використовувати Cloud Run на Cloud Console.

  • У меню навігації відкрийте розділ Serverless (Безсерверний) і натисніть Cloud Run. Ви побачите сервіс helloworld:

Вкладка Cloud Run із сервісом helloworld

Завдання 5. Видаліть непотрібні об’єкти

Ви не платите за Cloud Run, коли сервіс не використовується, проте з вас може стягуватися плата за зберігання створеного образу контейнера.

  1. Ви можете видалити проект Google Cloud (у такому разі плата за використані в проекті ресурси не стягуватиметься) або образ helloworld за допомогою такої команди:
gcloud container images delete gcr.io/$GOOGLE_CLOUD_PROJECT/helloworld
  1. Щоб продовжити, за потреби введіть Y і натисніть клавішу Enter.

  2. Щоб видалити сервіс Cloud Run, виконайте таку команду:

gcloud run services delete helloworld --region={{{project_0.default_region | "REGION"}}}
  1. Щоб продовжити, за потреби введіть Y і натисніть клавішу Enter.

Завершіть завдання

Закінчивши виконувати завдання, натисніть кнопку End Lab (Завершити завдання). Google Cloud Skills Boost вилучить використані ресурси й очистить обліковий запис.

Ви зможете оцінити, наскільки вам сподобалося виконувати завдання на платформі. Виберіть потрібну кількість зірочок, введіть коментар і натисніть Submit (Надіслати).

Кількість зірочок відповідає певній оцінці:

  • 1 зірочка = зовсім не сподобалося
  • 2 зірочки = не сподобалося
  • 3 зірочки = не можу сказати напевно
  • 4 зірочки = сподобалося
  • 5 зірочок = дуже сподобалося

Якщо ви не хочете надсилати відгук, просто закрийте діалогове вікно.

Залишайте свої відгуки, пропозиції або коментарі на вкладці Support (Підтримка).

Вітаємо!

Ви виконали практичну роботу.

Наступні кроки/Докладніше

Щоб дізнатися більше про те, як створити придатний для Cloud Run HTTP-контейнер без статусу з вихідного коду й перемістити його в Artifact Registry, перегляньте наведені нижче статті.

© Google LLC 2022. Усі права захищено. Назва та логотип Google є торговельними марками Google LLC. Усі інші назви компаній і продуктів можуть бути торговельними марками відповідних компаній, з якими вони пов’язані.

This content is not currently available

We will notify you via email when it becomes available

Great!

We will contact you via email if it becomes available