arrow_back

Практична робота підвищеного рівня складності "Виконання завдань із продуктами для роботи з фундаментальною інфраструктурою в Google Cloud"

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

Практична робота підвищеного рівня складності "Виконання завдань із продуктами для роботи з фундаментальною інфраструктурою в Google Cloud"

Lab 1 година 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

GSP315

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

Вступ

Практична робота підвищеного рівня складності передбачає сценарій і кілька завдань. Покрокових інструкцій немає. Натомість ви маєте застосувати навички, які здобули під час практичних робіт квесту, і самостійно з’ясувати, як виконувати завдання. Автоматична система оцінювання (показана на цій сторінці) згенерує відгук щодо того, чи правильно виконано завдання.

Під час практичної роботи підвищеного рівня складності ви не вивчаєте нові поняття Google Cloud, а розвиваєте опановані навички (наприклад, змінюєте значення за умовчанням і переглядаєте повідомлення про помилки для їх виправлення).

Щоб набрати 100%, слід правильно виконати всі завдання за визначений період часу.

Цю практичну роботу рекомендовано для слухачів, які зареєструвалися на квест Google Cloud Skills Boost Perform Foundational Infrastructure Tasks in Google Cloud. Готові почати?

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

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

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

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

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

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

Сценарій

Ви починаєте працювати на посаді молодшого розробника хмарних рішень у компанії Jooli Inc, і вже допомагали команді розробників створювати й налаштовувати ресурси Google Cloud.

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

Ваше завдання

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

  • Створити сегмент для зберігання фотографій.
  • Створити тему Pub/Sub, яку використовуватиме ваша функція Cloud Function.
  • Створити функцію Cloud Function.
  • Вилучити облікові дані розробника хмарних рішень, який раніше працював над цим проектом.

Слід дотримуватися кількох стандартів Jooli Inc., описаних нижче.

  • Створювати всі ресурси в регіоні і зоні , якщо немає інших вказівок.
  • Використовувати VPC, призначені для цього проекту.
  • Давати назви у форматі команда-ресурс (приклад назви екземпляра: kraken-webserver1).
  • Економно використовувати розміри ресурсів. Проекти відстежуються, і в разі використання надлишкових ресурсів відповідний проект може бути припинено (так само як вашу участь), тому ретельно плануйте навантаження. Звертайте увагу на інструкції команди з відстеження: якщо немає інших вказівок, для невеликих віртуальних машин Linux слід використовувати e2-micro, а для Windows і інших додатків, як-от вузлів Kubernetes, – e2-medium.

Нижче детально описано кожне завдання. Бажаємо успіху!

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

Потрібно створити сегмент для зберігання фотографій під назвою . Переконайтеся, що ресурс створено в регіоні і зоні .

Щоб підтвердити виконання завдання, натисніть Check my progress (Підтвердити виконання). Створіть сегмент під назвою

Завдання 2. Створіть тему Pub/Sub

Створіть тему Pub/Sub під назвою , щоб дозволити функції Cloud Function надсилати повідомлення.

Щоб підтвердити виконання завдання, натисніть Check my progress (Підтвердити виконання). Створіть тему Pub/Sub під назвою

Завдання 3. Створіть функцію Cloud Function для генерування зменшених зображень

Створіть функцію Cloud Function , яка генеруватиме зменшене зображення для кожного об’єкта, доданого до сегмента . Функція Cloud Function має використовувати середовище 2-го покоління. Переконайтеся, що ресурс створено в регіоні і зоні .

  1. Створіть функцію Cloud Function під назвою
Примітка. Функція Cloud Function повинна виконуватися щоразу, коли в створений у Завданні 1 сегмент додається об’єкт. Під час цього процесу функція Cloud Function може запитувати дозвіл увімкнути певні API, тож надайте їй усі необхідні дозволи.
  1. Укажіть для параметра Entry point (Точка входу) (функція, яку потрібно виконати) значення , а для Trigger (Активатор)Cloud Storage.

  2. Додайте наведений нижче код у файл index.js.

const functions = require('@google-cloud/functions-framework'); const crc32 = require("fast-crc32c"); const { Storage } = require('@google-cloud/storage'); const gcs = new Storage(); const { PubSub } = require('@google-cloud/pubsub'); const imagemagick = require("imagemagick-stream"); functions.cloudEvent('{{{ project_0.startup_script.function }}}', cloudEvent => { const event = cloudEvent.data; console.log(`Event: ${event}`); console.log(`Hello ${event.bucket}`); const fileName = event.name; const bucketName = event.bucket; const size = "64x64" const bucket = gcs.bucket(bucketName); const topicName = "{{{ project_0.startup_script.topic }}}"; const pubsub = new PubSub(); if ( fileName.search("64x64_thumbnail") == -1 ){ // doesn't have a thumbnail, get the filename extension var filename_split = fileName.split('.'); var filename_ext = filename_split[filename_split.length - 1]; var filename_without_ext = fileName.substring(0, fileName.length - filename_ext.length ); if (filename_ext.toLowerCase() == 'png' || filename_ext.toLowerCase() == 'jpg'){ // only support png and jpg at this point console.log(`Processing Original: gs://${bucketName}/${fileName}`); const gcsObject = bucket.file(fileName); let newFilename = filename_without_ext + size + '_thumbnail.' + filename_ext; let gcsNewObject = bucket.file(newFilename); let srcStream = gcsObject.createReadStream(); let dstStream = gcsNewObject.createWriteStream(); let resize = imagemagick().resize(size).quality(90); srcStream.pipe(resize).pipe(dstStream); return new Promise((resolve, reject) => { dstStream .on("error", (err) => { console.log(`Error: ${err}`); reject(err); }) .on("finish", () => { console.log(`Success: ${fileName} → ${newFilename}`); // set the content-type gcsNewObject.setMetadata( { contentType: 'image/'+ filename_ext.toLowerCase() }, function(err, apiResponse) {}); pubsub .topic(topicName) .publisher() .publish(Buffer.from(newFilename)) .then(messageId => { console.log(`Message ${messageId} published.`); }) .catch(err => { console.error('ERROR:', err); }); }); }); } else { console.log(`gs://${bucketName}/${fileName} is not an image I can handle`); } } else { console.log(`gs://${bucketName}/${fileName} already has a thumbnail`); } });
  1. Додайте наведений нижче код у файл package.json.
{ "name": "thumbnails", "version": "1.0.0", "description": "Create Thumbnail of uploaded image", "scripts": { "start": "node index.js" }, "dependencies": { "@google-cloud/functions-framework": "^3.0.0", "@google-cloud/pubsub": "^2.0.0", "@google-cloud/storage": "^5.0.0", "fast-crc32c": "1.0.4", "imagemagick-stream": "4.1.1" }, "devDependencies": {}, "engines": { "node": ">=4.3.2" } }

Перевірте, чи створюються зменшені зображення.

Щоб підтвердити виконання завдання, натисніть Check my progress (Підтвердити виконання). Перевірте функцію Cloud Function

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

Завантажте в сегмент одне зображення у форматі JPG або PNG

  1. Завантажте зображення у форматі PNG або JPG в сегмент .
Примітка. Ви можете скористатися зображенням за цим посиланням: https://storage.googleapis.com/cloud-training/gsp315/map.jpg. Завантажте зображення на свою машину, а потім додайте його в сегмент.
  1. Зменшене зображення з’явиться незабаром (натисніть REFRESH (ОНОВИТИ) на сторінці з інформацією про сегмент).

Завдання 5. Вилучіть облікові дані попереднього розробника хмарних рішень

У проекті є два облікові записи користувачів:

  • один із них належить вам ( із роллю власника);
  • а інший – попередньому розробнику хмарних рішень ( із роллю користувача з правами перегляду).
  1. Вилучіть облікові дані розробника хмарних рішень, який раніше працював над цим проектом.

Щоб підтвердити виконання завдання, натисніть Check my progress (Підтвердити виконання). Вилучіть облікові дані попереднього розробника хмарних рішень

Вітаємо!

Значок за виконання завдань із продуктами для роботи з фундаментальною інфраструктурою в Google Cloud

Отримайте наступний значок

Цю практичну роботу можна виконувати у власному темпі, і вона входить до квесту Perform Foundational Infrastructure Tasks in Google Cloud. Пройшовши квест, ви отримаєте значок як відзнаку за досягнення. Додайте значок у своє резюме й на сторінки в соціальних мережах. Розкажіть про свої досягнення за допомогою хештегу #GoogleCloudBadge.

Цей квест входить до планів навчання Google щодо Виконання завдань із продуктами для роботи з фундаментальною інфраструктурою в Google Cloud і для архітекторів хмарних рішень. Якщо ви вже виконали інші квести у своєму плані навчання, у каталозі Google Cloud Skills Boost є більше ніж 20 інших доступних квестів.

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

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

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

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

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