Контрольні точки
Deploy the function
/ 100
Cloud Functions: Qwik Start – командний рядок
GSP080
Огляд
Хмарна функція — це фрагмент коду, який запускається у відповідь на подію, наприклад запит 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 Console
-
Натисніть кнопку Start Lab (Почати практичну роботу). Якщо за практичну роботу необхідно заплатити, відкриється спливаюче вікно, де ви зможете обрати спосіб оплати. Ліворуч розміщено панель Lab Details (Відомості про практичну роботу) з такими даними:
- кнопка Open Google Cloud console (Відкрити Google Cloud Console);
- час до закінчення;
- тимчасові облікові дані, які потрібно використовувати для доступу до цієї практичної роботи;
- інша інформація, необхідна для виконання цієї практичної роботи.
-
Натисніть Open Google Cloud console (Відкрити Google Cloud Console) або натисніть правою кнопкою миші й виберіть Open Link in Incognito Window (Відкрити посилання в анонімному вікні), якщо ви використовуєте вебпереглядач Chrome.
Завантажаться необхідні ресурси. Потім відкриється нова вкладка зі сторінкою Sign in (Вхід).
Порада. Упорядковуйте вкладки в окремих вікнах, розміщуючи їх поруч.
Примітка. Якщо з’явиться вікно Choose an account (Виберіть обліковий запис), натисніть Use Another Account (Увійти в інший обліковий запис). -
За потреби скопіюйте значення в полі Username (Ім’я користувача) нижче й вставте його у вікні Sign in (Вхід).
{{{user_0.username | "Username"}}} Поле Username (Ім’я користувача) також можна знайти на панелі Lab Details (Відомості про практичну роботу).
-
Натисніть Next (Далі).
-
Скопіюйте значення в полі Password (Пароль) нижче й вставте його у вікні Welcome (Привітання).
{{{user_0.password | "Password"}}} Поле Password (Пароль) також можна знайти на панелі Lab Details (Відомості про практичну роботу).
-
Натисніть Next (Далі).
Важливо. Обов’язково використовуйте облікові дані, призначені для відповідної практичної роботи. Не використовуйте облікові дані Google Cloud. Примітка. Якщо ввійти у власний обліковий запис Google Cloud, може стягуватися додаткова плата. -
Виконайте наведені нижче дії.
- Прийміть Умови використання.
- Не додавайте способи відновлення й двохетапну перевірку (оскільки це тимчасовий обліковий запис).
- Не реєструйте безкоштовні пробні версії.
Через кілька секунд Google Cloud Console відкриється в новій вкладці.
Як активувати Cloud Shell
Cloud Shell – це віртуальна машина з попередньо завантаженими інструментами для розробників. Вона містить головний каталог обсягом 5 ГБ постійної пам’яті й працює в середовищі Google Cloud. Cloud Shell надає доступ до ресурсів Google Cloud через командний рядок.
- Угорі консолі Google Cloud натисніть Activate Cloud Shell (Активувати Cloud Shell) .
Щойно ви підключитеся, вас буде автентифіковано, а проект отримає ваш PROJECT_ID (ІДЕНТИФІКАТОР ПРОЕКТУ). Вивід міститиме рядок зі значенням PROJECT_ID (ІДЕНТИФІКАТОР ПРОЕКТУ) для цього сеансу:
gcloud
– це інструмент командного рядка для Google Cloud. Він входить у пакет Cloud Shell і підтримує функцію автозавершення клавішею TAB.
- (Необов’язково) Щоб вивести поточне ім’я облікового запису, введіть таку команду:
-
Натисніть Authorize (Авторизувати).
-
Вихідні дані матимуть такий вигляд:
Вивід:
- (Необов’язково) Щоб вивести ідентифікатор проекту, введіть таку команду:
Вивід:
Приклад виводу:
gcloud
, перегляньте посібник з інтерфейсу командного рядка gcloud у Google Cloud.
Завдання 1. Створіть функцію
Спочатку ви створите просту функцію під назвою helloWorld
. Ця функція записує повідомлення в журналах Cloud Functions. Вона активується подіями хмарних функцій і приймає функцію зворотного виклику, що використовується для сповіщення про виконання функції.
У цій практичній роботі подією хмарної функції є подія теми Cloud Pub/Sub. Pub/Sub – це сервіс обміну повідомленнями, де відправники повідомлень відокремлені від одержувачів. Потрібно підписатися на певну тему, щоб отримувати сповіщення, коли хтось надсилає або публікує відповідні повідомлення, і мати змогу переглядати такі повідомлення. Щоб дізнатися більше про Pub/Sub, перегляньте статтю Сервіс обміну повідомленнями Google Cloud Pub/Sub у відповідному посібнику.
Щоб дізнатися більше про параметр події і параметр зворотного виклику, перегляньте статтю Функції фонового режиму в документації Cloud Functions.
Щоб створити хмарну функцію, виконайте наведені нижче дії.
-
Для налаштування регіону за умовчанням виконайте в Cloud Shell таку команду:
gcloud config set run/region {{{project_0.default_region |REGION}}} -
Створіть каталог для коду функції:
mkdir gcf_hello_world && cd $_ -
Створіть файл
index.js
і відкрийте його для редагування:nano index.js -
Скопіюйте наведений нижче код у файл
index.js
.const functions = require('@google-cloud/functions-framework'); // Register a CloudEvent callback with the Functions Framework that will // be executed when the Pub/Sub trigger topic receives a message. functions.cloudEvent('helloPubSub', cloudEvent => { // The Pub/Sub message is passed as the CloudEvent's data payload. const base64name = cloudEvent.data.message.data; const name = base64name ? Buffer.from(base64name, 'base64').toString() : 'World'; console.log(`Hello, ${name}!`); }); -
Щоб вийти з текстового редактора Nano, натисніть клавіші Ctrl + X. Збережіть файл (Y).
-
Створіть файл
package.json
і відкрийте його для редагування: -
Скопіюйте наведений нижче код у файл
package.json
.{ "name": "gcf_hello_world", "version": "1.0.0", "main": "index.js", "scripts": { "start": "node index.js", "test": "echo \"Error: no test specified\" && exit 1" }, "dependencies": { "@google-cloud/functions-framework": "^3.0.0" } } -
Щоб вийти з текстового редактора Nano, натисніть клавіші Ctrl + X. Збережіть файл (Y).
-
Установіть залежності пакета
npm install Очікуваний вивід:
added 140 packages, and audited 141 packages in 9s 27 packages are looking for funding run `npm fund` for details found 0 vulnerabilities
Завдання 2. Розгорніть свою функцію
У цій практичній роботі ви налаштовуєте активатор --trigger-topic
як cf_demo
.
Хмарні функції працюють на основі подій, тому обов’язково потрібно вказати тип активатора. Під час розгортання нової функції часто застосовуються такі активатори подій, як `--trigger-topic`, `--trigger-bucket` і `--trigger-http`. Коли ви розгортаєте оновлення наявної функції, зберігається наявний активатор (якщо не вказано інше).
-
Розгорніть функцію helloPubSub у темі Pub/Sub під назвою cf-demo.
gcloud functions deploy nodejs-pubsub-function \ --gen2 \ --runtime=nodejs20 \ --region={{{ project_0.default_region | REGION }}} \ --source=. \ --entry-point=helloPubSub \ --trigger-topic cf-demo \ --stage-bucket {{{ project_0.project_id | PROJECT_ID }}}-bucket \ --service-account cloudfunctionsa@{{{ project_0.project_id | PROJECT_ID }}}.iam.gserviceaccount.com \ --allow-unauthenticated Примітка.
Якщо з’явиться сповіщення сервісного облікового запису serviceAccountTokenCreator, виберіть "n". -
Перевірте статус функції.
gcloud functions describe nodejs-pubsub-function \ --region={{{ project_0.default_region | REGION }}} Статус ACTIVE (АКТИВНА) означає, що функцію розгорнуто.
Очікуваний вивід:
BuildConfig: automaticUpdatePolicy: {} build: projects/630521560493/locations/{{{ project_0.default_region | REGION }}}/builds/7ff9d415-50d9-4557-9bcd-5afad42a6390 dockerRegistry: ARTIFACT_REGISTRY dockerRepository: projects/{{{ project_0.project_id | PROJECT_ID }}}/locations/{{{ project_0.default_region | REGION }}}/repositories/gcf-artifacts entryPoint: helloPubSub ... State: ACTIVE ... UpdateTime: '2024-08-05T13:51:05.317298824Z' Url: https://{{{ project_0.default_region | REGION }}}-{{{ project_0.project_id | PROJECT_ID }}}.cloudfunctions.net/nodejs-pubsub-function
Коли буде опубліковано повідомлення із цією темою, така дія активує виконання функції, і вміст повідомлення буде передано як вхідні дані.
Перевірка виконаного завдання
Щоб підтвердити виконання завдання, натисніть Check my progress (Підтвердити виконання). Якщо завдання виконано правильно, з’явиться оцінка.
Завдання 3. Протестуйте функцію
Ви розгорнули функцію і переконалися, що вона активна. Тепер перевірте, чи створює ця функція повідомлення в журналі Cloud після виявлення події.
-
Викличте PubSub за допомогою певних даних.
gcloud pubsub topics publish cf-demo --message="Cloud Function Gen2" Приклад виводу:
messageIds: - '11927162971409664'
Перевірте, чи є в журналах повідомлення з ідентифікатором виконання.
Завдання 4. Перегляньте журнали
-
Перевірте журнали й знайдіть ваші повідомлення в їх історії:
gcloud functions logs read nodejs-pubsub-function \ --region={{{ project_0.default_region | REGION }}} Примітка.
Журнали можуть з’явитися протягом 10 хвилин. Крім того, щоб переглянути журнали, можна натиснути Logging (Ведення журналів) > Logs Explorer.Хмарна функція виведе приблизно таку інформацію:
LEVEL: NAME: nodejs-pubsub-function EXECUTION_ID: h4v6akxf4sxt TIME_UTC: 2024-08-05 15:15:25.723 LOG: Hello, Cloud Function Gen2! LEVEL: I NAME: nodejs-pubsub-function EXECUTION_ID: TIME_UTC: 2024-08-05 15:15:25.711 LOG: LEVEL: NAME: nodejs-pubsub-function EXECUTION_ID: h4oxfjn7zlyu TIME_UTC: 2024-08-05 15:10:34.303 LOG: Hello, Friend! LEVEL: I NAME: nodejs-pubsub-function EXECUTION_ID: TIME_UTC: 2024-08-05 15:10:34.291 LOG: LEVEL: NAME: nodejs-pubsub-function EXECUTION_ID: h4fjhyfxua3k TIME_UTC: 2024-08-05 15:03:16.342 LOG: Hello, "SGVsbG8gZnJvbSB0aGUgY29tbWFuZCBsaW5l"!
Ви розгорнули й протестували додаток і вмієте переглядати журнали.
Завдання 5. Перевірте свої знання
-
Дайте відповіді на запитання з кількома варіантами відповіді нижче, щоб закріпити розуміння понять, які зустрічаються в практичній роботі.
Вітаємо!
Ви створили, розгорнули й протестували хмарну функцію за допомогою командного рядка в Google Cloud Console.
Виконайте наступну практичну роботу
Ця робота входить до низки практичних робіт під назвою Qwik Starts. Вони призначені для ознайомлення з функціями Google Cloud. Такі практичні роботи можна знайти в каталозі за запитом "Qwik Starts".
Наступні кроки/Докладніше
- Ви вже використовували командний рядок для запуску функції Cloud Functions. Щоб навчитися запускати її за допомогою Cloud Console, виконайте практичну роботу Cloud Functions: Qwik Start – консоль.
- Щоб дізнатися більше про те, як створити активатори й зв’язати їх із функціями, перегляньте цю статтю.
Навчання й сертифікація Google Cloud
…допомагають ефективно використовувати технології Google Cloud. Наші курси передбачають опанування технічних навичок, а також ознайомлення з рекомендаціями, що допоможуть вам швидко зорієнтуватися й вивчити матеріал. Ми пропонуємо курси різних рівнів – від базового до високого. Ви можете вибрати формат навчання (за запитом, онлайн або офлайн) відповідно до власного розкладу. Пройшовши сертифікацію, ви перевірите й підтвердите свої навички та досвід роботи з технологіями Google Cloud.
Посібник востаннє оновлено 5 серпня 2024 року
Практичну роботу востаннє протестовано 5 серпня 2024 року
© Google LLC 2024. Усі права захищено. Назва та логотип Google є торговельними марками Google LLC. Усі інші назви компаній і продуктів можуть бути торговельними марками відповідних компаній, з якими вони пов’язані.