Get access to 700+ labs and courses

Початок роботи з Cloud Run [APPRUN] (AWS)

Lab 1 година universal_currency_alt 5 кредитів show_chart Початковий
info This lab may incorporate AI tools to support your learning.
Get access to 700+ labs and courses

Нещодавно ви стали розробником хмарних рішень у команді ІТ-компанії, для якої Google Cloud є основним постачальником хмарних сервісів. Вам доручили створювати хмарні безсерверні вебдодатки без відстеження стану. Для цього вам потрібно налаштувати сервіс Cloud Run від Google Cloud. Нижче наведено ваші основні завдання.

  • Увімкнути Cloud Run API.
  • Налаштувати зберігання образу контейнера.
  • Розгортати безсерверні контейнерні додатки.
  • Дотримуватися практичних порад щодо зменшення витрат.

Оскільки ви раніше працювали з AWS, ви знаєте, що AWS Fargate надає контейнерні середовища без серверів. AWS Fargate забезпечує запуск, масштабування й відстеження контейнерів, завдяки чому розробники можуть зосередитися на написанні коду додатків, а також легко розгортати, масштабувати контейнерні додатки й керувати ними. Також за допомогою AWS Fargate можна розгортати контейнери для Amazon Elastic Container Service (Amazon ECS) або Amazon Elastic Kubernetes Service (Amazon EKS). Це означає, що розробники можуть вибрати варіант оркестрації, який найкраще відповідає їхнім потребам.

Безсерверний контейнерний додаток на основі AWS Fargate виглядає так, як показано на наведеній нижче схемі.

Схема AWS

Нижче описано, як розгортати додатки в Google Cloud.

Огляд

Логотип Cloud Run

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

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

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

Цілі

На цьому практичному занятті ви навчитеся виконувати наведені нижче дії.

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

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

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

  1. Увійдіть у Qwiklabs у вікні в режимі анонімного перегляду.

  2. Слідкуйте за тим, скільки часу залишилося для виконання практичної роботи (наприклад: 1:15:00). Постарайтеся завершити її вчасно.
    Завдання не можна призупинити, а лише почати спочатку.

  3. Коли будете готові, натисніть Start Lab (Почати практичну роботу).

  4. Занотуйте облікові дані для практичної роботи (ім’я користувача й пароль). Вони знадобляться для входу в Google Cloud Console.

  5. Натисніть Open Google Console (Відкрити Google Console).

  6. Виберіть Use another account (Увійти в інший обліковий запис), потім скопіюйте та вставте облікові дані для доступу до цієї практичної роботи у відповідні поля.
    Якщо ви ввійдете з іншими обліковими даними, станеться помилка або з вас може почати стягуватися плата.

  7. Прийміть умови й пропустіть сторінку відновлення ресурсу.

Як почати виконувати завдання й увійти в Console

  1. Натисніть кнопку Start Lab (Почати практичну роботу). Якщо за практичну роботу необхідно заплатити, відкриється спливаюче вікно, де ви зможете обрати спосіб оплати. На панелі ліворуч ви побачите тимчасові облікові дані, які потрібно використовувати для доступу до цієї практичної роботи.

    Панель облікових даних

  2. Скопіюйте ім’я користувача, а потім натисніть Open Google Console (Відкрити Google Console). Завантажаться необхідні ресурси. Потім відкриється нова вкладка зі сторінкою Choose an account (Виберіть обліковий запис).

    Примітка. Відкривайте вкладки в окремих вікнах, розміщуючи їх поруч.
  3. На сторінці Choose an account (Виберіть обліковий запис) натисніть Use Another Account (Інший обліковий запис). Відкриється сторінка входу в обліковий запис.

    Діалогове вікно вибору облікового запису з виділеною опцією Use Another Account (Інший обліковий запис)

  4. Вставте ім’я користувача, скопійоване з панелі Connection Details (Відомості про підключення). Потім скопіюйте й вставте пароль.

Примітка. Обов’язково використовуйте облікові дані з панелі Connection Details (Відомості про підключення). Не використовуйте облікові дані Google Cloud Skills Boost. Якщо у вас є власний обліковий запис Google Cloud, не використовуйте його для доступу до цієї практичної роботи (інакше з вас може бути стягнуто плату).
  1. Виконайте наведені нижче дії.
  • Прийміть Умови використання.
  • Не додавайте способи відновлення й двохетапну перевірку (оскільки це тимчасовий обліковий запис).
  • Не реєструйте безкоштовні пробні версії.

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

Примітка. Ви можете переглянути меню зі списком продуктів і сервісів Google Cloud, натиснувши меню навігації вгорі ліворуч. Меню Cloud Console

Активація 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. Далі ви створюєте й редагуєте файли. Для редагування файлів використовується редактор коду vi, emac, 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.

  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 (ПОРТ). Додаток готовий. Його можна перенести в контейнер і завантажити в Container Registry.

  1. Щоб зберегти файл index.js, натисніть CTRL+X, а потім – Y.
Примітка. У 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.

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

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

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

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

  1. Щоб скласти список усіх образів контейнера, пов’язаних із поточним проектом, виконайте таку команду:
gcloud container images list
  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.

Примітка. Якщо команда docker не отримує образ віддаленого контейнера, виконайте таку команду: gcloud auth configure-docker

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

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

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

  1. За потреби підтвердьте назву сервісу, натиснувши клавішу Enter.

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

У разі успіху в командному рядку з’явиться 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. Можна видалити проект GCP (у такому разі плата за використані в проекті ресурси не стягуватиметься) або образ 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.

Вітаємо!

Ви завершили практичне заняття.

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

Нижче наведено огляд деяких основних подібностей і відмінностей.

Подібності

  • І Google Cloud Run, і AWS Fargate – це безсерверні обчислювальні сервіси, тобто розробникам не потрібно керувати основною інфраструктурою, коли вони пишуть код.
  • Обидва сервіси використовують контейнери для розміщення й розгортання додатків.
  • Google Cloud Run і Azure App Service підтримують контейнери Docker як формат розгортання.
  • Обидва сервіси підтримують автоматичне масштабування й можуть збільшувати або зменшувати обсяг ресурсів за запитом.

Відмінності

  • У AWS Fargate користувачі мають самостійно налаштовувати оркестрацію контейнерів, як-от Kubernetes, і керувати нею, тоді як у Google Cloud Run оркестрацією контейнерів керує сама платформа.
  • Google Cloud Run – це окремий сервіс, тоді як AWS Fargate надає доступ для сервісів керування контейнерами (Amazon ECS або Amazon EKS).
  • В AWS для розгортання безсерверного контейнерного середовища потрібна комбінована інтеграція AWS Fargate і сервісу оркестрації, як-от Amazon ECS або Amazon EKS. У Google Cloud можна використовувати лише Cloud Run.

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

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

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

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

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

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

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

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

Before you begin

  1. Labs create a Google Cloud project and resources for a fixed time
  2. Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
  3. On the top left of your screen, click Start lab to begin

Use private browsing

  1. Copy the provided Username and Password for the lab
  2. Click Open console in private mode

Sign in to the Console

  1. Sign in using your lab credentials. Using other credentials might cause errors or incur charges.
  2. Accept the terms, and skip the recovery resource page
  3. Don't click End lab unless you've finished the lab or want to restart it, as it will clear your work and remove the project

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

One lab at a time

Confirm to end all existing labs and start this one

Use private browsing to run the lab

Use an Incognito or private browser window to run this lab. This prevents any conflicts between your personal account and the Student account, which may cause extra charges incurred to your personal account.