Thông tin về lớp học lập trình này
1. Giới thiệu
Trong phòng thí nghiệm này, bạn sẽ sử dụng Gemini, một cộng sự dựa trên AI trong Google Cloud, để khắc phục vấn đề khi triển khai Chức năng đám mây bằng cách phân tích nhật ký lỗi, xác định nguyên nhân gốc của vấn đề và tìm cách khắc phục.
Bạn sẽ thực hiện...
- Bạn sẽ dùng Cloud Shell Terminal và gcloud CLI để thiết lập môi trường, bao gồm cả việc bật các API có liên quan của Google và tạo một Hàm đám mây từ mã được cung cấp
- Bạn sẽ dùng tính năng tóm tắt nhật ký của Cloud Logging để tạo bản tóm tắt nhật ký nhằm hiểu được thông tin đã thu thập.
- Bạn sẽ trò chuyện với Gemini để được Gemini hỗ trợ khắc phục sự cố và giải quyết vấn đề.
Kiến thức bạn sẽ học được...
- Cách sử dụng Gemini có khả năng quan sát của Google Cloud và để khắc phục sự cố.
- Cách tìm và hiểu nhật ký Chức năng đám mây nhờ sự trợ giúp của Gemini.
Những thứ bạn cần...
- Trình duyệt web Chrome
- Một dự án trên Google Cloud đã bật tính năng thanh toán
- Tài khoản Google có quyền truy cập vào dự án cho phép bạn bật các API và thao tác với tài nguyên
Phòng thí nghiệm này nhắm đến các kỹ sư DevOps (Phát triển và vận hành) cũng như các kỹ sư nền tảng và nhà phát triển phần mềm ở mọi cấp độ, kể cả những người mới bắt đầu. Trọng tâm của chúng tôi sẽ là mang đến trải nghiệm thực tế về các tính năng của Gemini trong việc khắc phục sự cố.
2. Thiết lập
Phần này bao gồm mọi việc bạn cần làm để bắt đầu với phòng thí nghiệm này.
Định cấu hình môi trường
1. Đăng nhập vào Cloud Console bằng cách mở https://console.cloud.google.com.
2. Chọn một dự án trên Google Cloud mà bạn dự định hợp tác trong phòng thí nghiệm này.
3. Mở trang Cloud Functions trong Console. Bạn có thể thực hiện việc này bằng cách chọn Cloud Functions trên trình đơn điều hướng (biểu tượng trên cùng bên trái Điều chỉnh theo cửa sổ Console) để thực hiện việc này.
Ngoài ra, bạn có thể tìm bằng cụm từ "chức năng đám mây" trong phần tìm kiếm trên bảng điều khiển:
Nhấp vào nút Tạo hàm ở đầu danh sách hàm
Nếu trước đây bạn chưa sử dụng Cloud Functions trong dự án này, thì để làm việc, bạn sẽ được yêu cầu bật Google API.
Nhấp vào BẬT để tiếp tục.
4. Xác định các thuộc tính cơ bản của Hàm đám mây mới.
- Đặt tên thành "
codelab-cf
" - Chọn lựa chọn Cho phép lệnh gọi chưa được xác thực
Để hoàn tất bước này, hãy nhấp vào nút TIẾP THEO ở phần dưới cùng bên trái của cửa sổ:
Sau khi nhấp vào TIẾP THEO, bạn có thể được nhắc bật(các) API khác của Google. Như ở bước 4, nhấp vào BẬT.
Thiết lập thời gian chạy và mã của Hàm đám mây
CodeLab này sử dụng Python làm ngôn ngữ lập trình. Đừng lo nếu bạn không quen thuộc với Python. Để hoàn thành lớp học lập trình này, bạn không cần có kiến thức về Python.
5. Chọn Python 3.11 làm thời gian chạy của hàm
Xin lưu ý rằng việc thay đổi thời gian chạy sẽ thay đổi mã nguồn hiển thị trong Trình chỉnh sửa cùng dòng.
6. Sao chép mã bên dưới vào Trình chỉnh sửa cùng dòng để sửa đổi ví dụ về tính năng tự động tạo bắt đầu nhanh.
from google.cloud import storage
import json
import re
client = storage.Client()
def get_object_list(request):
if request.args and 'path' in request.args:
path = request.args['path']
else:
return '{}'
parsed = re.search('gs:\/\/([a-zA-Z0-9_-]{3,63})\/([-a-zA-Z0-9_\+.\/]*)', path)
bucket, prefix = parsed.group(1), parsed.group(2)
blobs = client.list_blobs(bucket, prefix=prefix, delimiter='/')
objects = []
if (blobs):
for blob in blobs:
objects.append(blob.name)
return json.dumps(objects)
Mã này đọc thuộc tính path
trong yêu cầu GET, phân tích cú pháp đường dẫn để lấy tên bộ chứa và gọi Google Cloud Storage API để lấy danh sách các đối tượng được lưu trữ tại đường dẫn này. Hàm (get_object_list
) chấp nhận yêu cầu là đối tượng Flask làm đối số đầu vào và trả về tên của các đối tượng dưới dạng mảng JSON.
7. Chọn tệp requirements.txt
trong danh sách các tệp còn lại trong Trình chỉnh sửa cùng dòng. Thay thế danh sách phần phụ thuộc hiện tại bằng danh sách mới bằng cách sao chép mã bên dưới vào Inline Editor (Trình chỉnh sửa cùng dòng).
google-cloud-storage
8. Để triển khai Chức năng đám mây, hãy nhấp vào DEPLOY ở dưới cùng bên trái.
Bạn có thể cần phải đợi vài phút cho đến khi quá trình triển khai hoàn tất. Nếu đã làm theo đúng hướng dẫn thiết lập, bạn sẽ thấy quá trình triển khai được báo cáo là không thành công.
3. Tìm và giải quyết vấn đề
Trong phần này, bạn sẽ sử dụng tính năng Giải thích nhật ký và các công cụ hỗ trợ khác của Gemini để xác định vấn đề cũng như tìm cách giải quyết.
1. Không triển khai được. Bạn sẽ nhìn thấy thông báo lỗi cho bạn biết về điều này kèm theo thông tin bổ sung và tuỳ chọn xem nhật ký triển khai. Nhấp vào XEM NHẬT KÝ để xem nhật ký về quá trình triển khai.
LƯU Ý rằng nhật ký triển khai sẽ được mở trong một thẻ riêng biệt trên cùng một trình duyệt. Bạn sẽ cần di chuyển giữa các thẻ để hoàn thành lớp học lập trình này.
LƯU Ý rằng bạn có thể không thấy các dòng nhật ký khi nhấp vào XEM NHẬT KÝ hoặc chỉ thấy một vài dòng. Trong trường hợp như vậy, hãy sử dụng bộ chọn phạm vi thời gian trong ngăn truy vấn của Trình khám phá nhật ký rồi chọn 30 phút qua.
2. Kiểm tra nhật ký trong thẻ đã mở. Hãy lưu ý rằng phần tóm tắt nhật ký trông giống như nhiều dòng trong ngăn xếp lệnh gọi của ngoại lệ. Nguyên nhân là do Hàm đám mây ghi lại văn bản in bằng stdout
hoặc stderr
và ghi mỗi dòng dưới dạng một mục nhập nhật ký riêng biệt. Các dòng nhật ký khác tóm tắt thông tin về mã lỗi thoát cũng như thông tin bổ sung do Cloud Functions và API Cloud Run báo cáo.
Bạn có thể nhấp vào bất kỳ dòng nào để xem thêm thông tin về một nhật ký cụ thể. Nhật ký mở rộng sẽ có thêm các thành phần trên giao diện người dùng mà bạn có thể nhấp vào để sao chép mọi thông tin về nhật ký, mở rộng tất cả trường để hiển thị tất cả dữ liệu của mục nhật ký và để giải thích về mục nhập nhật ký sử dụng Gemini.
4. Ngăn xếp lệnh gọi ngoại lệ không cung cấp nhiều thông tin. Xem qua nhật ký để tìm phần cuối của nhật ký theo dõi ngăn xếp của ngoại lệ. Đó là dòng có nội dung "Container called exit(1)
". Phần tóm tắt nhật ký sau đây cho biết:
functions_framework.exceptions.MissingTargetException: File /workspace/main.py is expected to contain...
Có vẻ như phương án này phù hợp để điều tra. Nhấp vào dòng này để mở rộng mục nhập nhật ký. Sau đó nhấp vào "Giải thích mục nhập nhật ký này" để xem thông tin bổ sung về nhật ký đã chọn.
Nếu trước đây không sử dụng Gemini trong dự án này, bạn sẽ được nhắc bật một API bắt buộc. Nếu bạn được nhắc bật API, hãy nhấp vào BẬT để tiếp tục.
Xin lưu ý rằng đôi khi, bạn có thể gặp lỗi khi nhắc Gemini. Trong sự kiện như vậy, hãy lặp lại thao tác với câu lệnh một lần nữa để nhận phản hồi. Ví dụ: nhấp vào "Giải thích mục nhập nhật ký này" .
5. Xem nội dung giải thích do Gemini cung cấp. Nếu nội dung giải thích đã đưa ra chưa đầy đủ hoặc không rõ ràng, hãy nhắc Gemini cung cấp thêm thông tin bằng cách sử dụng một trong những câu lệnh sau đây hoặc tự soạn câu hỏi
Bạn có thể cung cấp thêm thông tin về nhật ký này không?
Bạn có thể cung cấp thêm thông tin về lỗi này không?
6. Sau đó, hãy nhắc Gemini cung cấp các đề xuất để giải quyết vấn đề. Chẳng hạn hỏi Gemini
Làm thế nào để giải quyết sự cố này?
Đề xuất giải pháp để khắc phục lỗi này
Đề xuất cách tôi có thể khắc phục lỗi này
Câu trả lời của Gemini có thể thay đổi tuỳ thuộc vào ngữ cảnh hiện tại cũng như từ ngữ và định dạng của câu lệnh bạn đưa ra. Theo dự kiến, Gemini sẽ đề xuất để đảm bảo rằng mã nguồn của Hàm đám mây có một hàm có tên là hello_http
.
7. Bạn hiện đang xem thẻ hiển thị nhật ký Cloud Functions. Chọn thẻ trước đó hiển thị trang triển khai Chức năng đám mây có lỗi rồi nhấp vào CHỈNH SỬA.
8. Xác nhận rằng xác thực vẫn được đặt thành Cho phép lời gọi chưa được xác thực và cập nhật lựa chọn nếu cần.
9. Nhấp vào TIẾP THEO ở dưới cùng để xem Trình chỉnh sửa nội tuyến. Làm theo đề xuất của Gemini và đổi tên hàm từ get_order_list
thành hello_http
.
Sau khi hoàn tất việc chỉnh sửa, hãy nhấp vào DEPLOY.
Bạn có thể cần phải đợi vài phút cho đến khi quá trình triển khai hoàn tất. Xác nhận rằng quá trình triển khai hoàn tất thành công và không có thông báo lỗi nào xuất hiện.
LƯU Ý rằng Bảng điều khiển có thể tiếp tục hiển thị cho bạn thông báo lỗi cuối cùng cho đến khi quá trình triển khai hoàn tất.
10. Kiểm tra để đảm bảo rằng Chức năng đám mây đang hoạt động bằng cách gửi yêu cầu HTTPS sau đây bằng curl
. Bạn có thể sử dụng Cloud Shell hoặc thực hiện trên bất kỳ thiết bị đầu cuối nào đã cài đặt curl
và gcloud
CLI trong quá trình cài đặt.thực thi lệnh sau từ Cloud Shell Terminal.
curl -m 70 -X GET \
https://us-central1-${GOOGLE_CLOUD_PROJECT}.cloudfunctions.net/\
codelab-cf?path=gs://cloud-samples-data/generative-ai/image/ \
-H "Authorization: bearer $(gcloud auth print-identity-token)"
LƯU Ý rằng để chạy lệnh này trên một thiết bị đầu cuối, bạn sẽ phải xác thực bằng gcloud CLI và đặt giá trị của mã dự án thành biến môi trường GOOGLE_CLOUD_PROJECT
.
Phần thưởng
Tên của hàm hello_http
được định nghĩa là một điểm truy cập mặc định cho HTTP kích hoạt Hàm đám mây khi thời gian chạy Python được chọn. Giải pháp thay thế có thể là giữ get_order_list
làm tên hàm trong mã nguồn và cập nhật trường điểm truy cập của Hàm đám mây nằm phía trên Trình chỉnh sửa cùng dòng ở bên phải của trường Thời gian chạy:
Việc thay đổi điểm truy cập từ hello_http
thành get_order_list
sẽ giải quyết vấn đề khi triển khai.
4. Dọn dẹp
Để dọn dẹp, bạn có thể tắt dự án hoặc xoá phiên bản của Cloud Function. Bạn có thể xoá Cloud Functions bằng Bảng điều khiển hoặc bằng lệnh CLI như dưới đây:
gcloud functions delete codelab-cf --region=us-central1
5. Xin chúc mừng!
Xin chúc mừng! Bạn đã sử dụng thành công Gemini để khắc phục sự cố và giải quyết vấn đề liên quan đến ứng dụng của mình. Giờ đây, bạn đã có thể hiểu được Gemini có thể hỗ trợ bạn như thế nào trong việc tìm hiểu nhật ký và tìm câu trả lời cho các câu hỏi về Google Cloud.