arrow_back

Cloud Functions: Qwik Start – командний рядок

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

Cloud Functions: Qwik Start – командний рядок

Lab 30 годин universal_currency_alt 1 кредит show_chart Початковий
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP080

Логотип Google Cloud Self-Paced Labs

Огляд

Хмарна функція — це фрагмент коду, який запускається у відповідь на подію, наприклад запит HTTP, повідомлення від сервісу обміну повідомленнями або завантаження файлу. Події в хмарі – це речі, що відбуваються в хмарному середовищі. Це можуть бути, наприклад, зміни в даних у базі даних, файли, додані в систему зберігання, або новий екземпляр віртуальної машини, що створюється.

Оскільки хмарні функції залежать від подій, вони запускаються лише тоді, коли відбувається певна подія. Завдяки цьому вони чудово підходять для виконання швидких або періодичних завдань.

Наприклад, ви можете використовувати хмарну функцію, щоб виконувати такі дії:

  • автоматично створювати зменшені зображення для завантажень у Cloud Storage;
  • надсилати сповіщення на телефон користувача, коли в Cloud Pub/Sub надходить нове повідомлення;
  • обробляти дані з бази даних Cloud Firestore і створювати звіт.

Ви можете написати код будь-якою мовою, яка підтримує Node.js, а також розгорнути свій код у хмарі за кілька кліків. Після розгортання хмарної функції вона автоматично запускатиметься у відповідь на події.

У цій практичній роботі ви навчитеся створювати, розгортати й тестувати хмарну функцію за допомогою консолі Google Cloud.

У цій практичній роботі ви навчитеся створювати, розгортати й тестувати хмарну функцію за допомогою командного рядка Google Cloud Shell.

Завдання

  • Створити просту хмарну функцію
  • Розгорнути й протестувати створену функцію
  • Переглянути журнали

Налаштування

Перш ніж натиснути кнопку Start Lab (Почати практичну роботу)

Ознайомтеся з наведеними нижче вказівками. На виконання практичної роботи відводиться обмежений час, і її не можна призупинити. Щойно ви натиснете Start Lab (Почати практичну роботу), з’явиться таймер, який показуватиме, скільки часу для роботи з ресурсами Google Cloud у вас залишилося.

Ви зможете виконати практичну роботу в дійсному робочому хмарному середовищі (не в симуляції або демонстраційному середовищі). Для цього на час виконання практичної роботи вам надаються тимчасові облікові дані для реєстрації і входу в Google Cloud.

Щоб виконати цю практичну роботу, потрібно мати:

  • стандартний веб-переглядач, наприклад Chrome (рекомендовано)
Примітка. Виконуйте практичну роботу в режимі анонімного перегляду. Так ви уникнете додаткової плати, що може стягуватися з вашого особистого облікового запису внаслідок його конфліктів з обліковим записом для навчання.
  • достатню кількість часу, оскільки почавши практичну роботу, ви не зможете призупинити її
Примітка. Якщо ви маєте особистий обліковий запис або проект Google Cloud, не використовуйте їх для доступу до цієї практичної роботи. Так ви уникнете додаткових стягнень з вашого облікового запису.

Як почати виконувати практичну роботу й увійти в Google Cloud Console

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

    • кнопка Open Google Console (Відкрити Google Console);
    • час до закінчення;
    • тимчасові облікові дані, які потрібно використовувати для доступу до цієї практичної роботи;
    • інша необхідна для виконання цієї практичної роботи інформація.
  2. Натисніть Open Google Console (Відкрити Google Console). Завантажаться необхідні ресурси. Потім відкриється нова вкладка зі сторінкою Sign in (Вхід).

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

    Примітка. Якщо з’явиться вікно Choose an account (Виберіть обліковий запис), натисніть Use Another Account (Увійти в інший обліковий запис).
  3. За потреби скопіюйте Username (Ім’я користувача) з панелі Lab Details (Відомості про практичну роботу) і вставте його у вікні Sign in (Вхід). Натисніть Next (Далі).

  4. Скопіюйте Password (Пароль) з панелі Lab Details (Відомості про практичну роботу) і вставте його у вікні Welcome (Привітання). Натисніть Next (Далі).

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

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

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

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

Як активувати Cloud Shell

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

  1. Угорі консолі Google Cloud натисніть Activate Cloud Shell (Активувати Cloud Shell) Значок активації Cloud Shell.

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

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

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

  1. (Необов’язково) Щоб вивести поточне ім’я облікового запису, введіть таку команду:
gcloud auth list
  1. Натисніть Authorize (Авторизувати).

  2. Вихідні дані матимуть такий вигляд:

Вивід:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (Необов’язково) Щоб вивести ідентифікатор проекту, введіть таку команду:
gcloud config list project

Вивід:

[core] project = <project_ID>

Приклад виводу:

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

Завдання 1. Створіть функцію

Спочатку ви створите просту функцію під назвою helloWorld. Ця функція записує повідомлення в журналах Cloud Functions. Вона активується подіями хмарних функцій і приймає функцію зворотного виклику, що використовується для сповіщення про виконання функції.

У цій практичній роботі подією хмарної функції є подія теми Cloud Pub/Sub. Pub/Sub – це сервіс обміну повідомленнями, де відправники повідомлень відокремлені від одержувачів. Потрібно підписатися на певну тему, щоб отримувати сповіщення, коли хтось надсилає або публікує відповідні повідомлення, і мати змогу переглядати такі повідомлення. Щоб дізнатися більше про Pub/Sub, перегляньте статтю Сервіс обміну повідомленнями Google Cloud Pub/Sub у відповідному посібнику.

Щоб дізнатися більше про параметр події і параметр зворотного виклику, перегляньте статтю Функції фонового режиму в документації Cloud Functions.

Щоб створити хмарну функцію, виконайте наведені нижче дії.

  1. Для налаштування регіону за умовчанням виконайте в Cloud Shell таку команду:
gcloud config set compute/region {{{project_0.default_region |REGION}}}
  1. Створіть каталог для коду функції:
mkdir gcf_hello_world
  1. Перейдіть у каталог gcf_hello_world:
cd gcf_hello_world
  1. Створіть файл index.js і відкрийте його для редагування:
nano index.js
  1. Скопіюйте наведений нижче код у файл index.js.
/** * Background Cloud Function to be triggered by Pub/Sub. * This function is exported by index.js, and executed when * the trigger topic receives a message. * * @param {object} data The event payload. * @param {object} context The event metadata. */ exports.helloWorld = (data, context) => { const pubSubMessage = data; const name = pubSubMessage.data ? Buffer.from(pubSubMessage.data, 'base64').toString() : "Hello World"; console.log(`My Cloud Function: ${name}`); };
  1. Щоб вийти з текстового редактора Nano, натисніть клавіші Ctrl + X. Збережіть файл (Y).

Завдання 2. Створіть сегмент Cloud Storage

  • Виконайте наведену нижче команду, щоб створити новий сегмент Cloud Storage для своєї функції.
gsutil mb -p [PROJECT_ID] gs://[BUCKET_NAME]
  • PROJECT_ID – це ідентифікатор проекту, наведений на панелі відомостей про практичну роботу ліворуч від неї:

  • BUCKET_NAME – це назва, яку ви дали сегменту. Для неї ви можете використовувати ідентифікатор проекту, щоб забезпечити глобально унікальну назву:

Щоб дізнатися більше про створення назв сегментів, перегляньте відповідні вказівки в документації Cloud Storage.

Перевірка виконаного завдання

Щоб підтвердити виконання завдання, натисніть Check my progress (Підтвердити виконання). Якщо завдання виконано правильно, з’явиться оцінка.

Створіть сегмент Cloud Storage.

Завдання 3. Розгорніть свою функцію

Під час розгортання нової функції слід указати активатор (--trigger-topic, --trigger-bucket або --trigger-http). У разі розгортання оновлення наявної функції зберігається наявний активатор (якщо не вказано інше).

У цій практичній роботі ви налаштовуєте активатор --trigger-topic як hello_world.

  1. Розгорніть функцію в темі Pub/Sub hello_world, замінивши [BUCKET_NAME] на назву вашого сегмента:
gcloud functions deploy helloWorld \ --stage-bucket [BUCKET_NAME] \ --trigger-topic hello_world \ --runtime nodejs20 Примітка. Якщо з’явиться попередження про помилку OperationError, ігноруйте його й виконайте команду повторно.

Якщо з’явиться відповідний запит, введіть Y, щоб дозволити неавтентифіковані виклики нової функції.

  1. Перевірте статус функції:
gcloud functions describe helloWorld

Статус ACTIVE (АКТИВНА) означає, що функцію розгорнуто.

entryPoint: helloWorld eventTrigger: eventType: providers/cloud.pubsub/eventTypes/topic.publish failurePolicy: {} resource: ... status: ACTIVE ...

Коли буде опубліковано повідомлення з цією темою, така дія активує виконання функції, і вміст повідомлення буде передано як вхідні дані.

Перевірка виконаного завдання

Щоб підтвердити виконання завдання, натисніть Check my progress (Підтвердити виконання). Якщо завдання виконано правильно, з’явиться оцінка.

Розгорніть функцію.

Завдання 4. Протестуйте функцію

Ви розгорнули функцію і переконалися, що вона активна. Тепер перевірте, чи створює ця функція повідомлення в журналі Cloud після виявлення події.

  • Введіть наведену нижче команду, щоб створити тест для перевірки функції.
DATA=$(printf 'Hello World!'|base64) && gcloud functions call helloWorld --data '{"data":"'$DATA'"}'

Хмарний інструмент повертає ідентифікатор виконання. Це означає, що в журналі з’явилося повідомлення.

Приклад виводу:

executionId: 3zmhpf7l6j5b

Перевірте, чи є в журналах повідомлення з ідентифікатором виконання.

Завдання 5. Перегляньте журнали

  • Перевірте журнали й знайдіть ваші повідомлення в їх історії:
gcloud functions logs read helloWorld

Якщо функцію виконано правильно, повідомлення в журналі матимуть такий вигляд:

LEVEL: D NAME: helloWorld EXECUTION_ID: 4bgl3jw2a9i3 TIME_UTC: 2023-03-23 13:45:31.545 LOG: Function execution took 912 ms, finished with status: 'ok' LEVEL: I NAME: helloWorld EXECUTION_ID: 4bgl3jw2a9i3 TIME_UTC: 2023-03-23 13:45:31.533 LOG: My Cloud Function: Hello World! LEVEL: D NAME: helloWorld EXECUTION_ID: 4bgl3jw2a9i3 TIME_UTC: 2023-03-23 13:45:30.633 LOG: Function execution started Примітка. Журнали з’являться протягом 10 хвилин. Крім того, щоб переглянути журнали, можна натиснути Logging (Ведення журналів) > Logs Explorer.

Ви розгорнули й протестували додаток і вмієте переглядати журнали.

Завдання 6. Перевірте свої знання

Дайте відповіді на запитання з кількома варіантами відповіді нижче, щоб закріпити розуміння понять, які зустрічаються в практичній роботі.

Вітаємо!

Пройдіть квест

Цю практичну роботу можна виконувати у власному темпі, і вона входить до серій завдань Початок роботи з розгортанням і розробкою, Початок роботи з інфраструктурою та Оптимізація витрат на Google Cloud. Серія завдань містить пов’язані практичні роботи, що разом утворюють план навчання. Виконавши всю серію, ви отримаєте значок як відзнаку за досягнення. Значки можна зробити видимими для інших, додавши посилання на них в онлайн-резюме або обліковий запис у соціальній мережі. Почніть цю або будь-яку іншу серію завдань, що містить цю практичну роботу, і відразу отримайте бонус за завершення. Усі доступні серії можна переглянути в каталозі Google Cloud Skills Boost.

Виконайте наступну практичну роботу

Це завдання також входить до низки практичних робіт під назвою Qwik Starts. Вони призначені для ознайомлення з функціями Google Cloud. Такі практичні роботи можна знайти в каталозі за запитом "Qwik Starts".

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

  • Ви вже використовували командний рядок для запуску функції Cloud Functions. Щоб навчитися запускати її за допомогою Cloud Console, виконайте практичну роботу Cloud Functions: Qwik Start – консоль.
  • Щоб дізнатися більше про те, як створити активатори й зв’язати їх із функціями, перегляньте цю статтю.

Навчання й сертифікація Google Cloud

…допомагають ефективно використовувати технології Google Cloud. Наші курси передбачають опанування технічних навичок, а також ознайомлення з рекомендаціями, що допоможуть вам швидко зорієнтуватися й вивчити матеріал. Ми пропонуємо курси різних рівнів – від базового до високого. Ви можете вибрати формат навчання (за запитом, онлайн або офлайн) відповідно до власного розкладу. Пройшовши сертифікацію, ви перевірите й підтвердите свої навички та досвід роботи з технологіями Google Cloud.

Посібник востаннє оновлено 10 серпня 2023 року

Практичну роботу востаннє протестовано 10 серпня 2023 року

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