Trước khi có thể gửi yêu cầu đến Earth Engine thông qua một thư viện ứng dụng, bạn phải xác thực và sử dụng thông tin xác thực thu được để khởi động ứng dụng Earth Engine.
Trình chỉnh sửa mã Earth Engine và JavaScript
Quy trình xác thực và khởi chạy được xử lý tự động trong Trình chỉnh sửa mã. Bạn có thể chọn định tuyến các yêu cầu thông qua một Dự án trên đám mây từ thông tin đăng nhập ở phía trên cùng bên phải của Trình chỉnh sửa mã.
Nếu bạn đang sử dụng JavaScript API (bên ngoài Trình chỉnh sửa mã), hãy sử dụng một trong các trình trợ giúp xác thực trong ee.data (ví dụ: ee.data.authenticateViaPopup()) rồi dùng ee.initialize() như trong ví dụ này.
Python và dòng lệnh
Trước khi sử dụng thư viện ứng dụng Earth Engine Python, bạn cần xác thực (xác minh danh tính) và sử dụng thông tin xác thực thu được để khởi chạy ứng dụng Python. Các quy trình xác thực sử dụng Cloud Projects để xác thực và được dùng cho cả mục đích sử dụng miễn phí (không thương mại) và có trả phí. Để xác thực và khởi tạo, hãy chạy
ee.Authenticate()
ee.Initialize(project='my-project')
Thao tác này trước tiên sẽ chọn chế độ xác thực tốt nhất cho môi trường của bạn và nhắc bạn xác nhận quyền truy cập cho tập lệnh. Nếu thông tin đăng nhập đã tồn tại, thì thông tin đó sẽ tự động được dùng lại – hãy chạy ee.Authenticate(force=True) để tạo thông tin đăng nhập mới.
Bước khởi chạy sẽ xác minh rằng thông tin xác thực hợp lệ tồn tại, được tạo từ ee.Authenticate() hoặc đã tồn tại dưới dạng thông tin xác thực mặc định của Google. Sau đó, ứng dụng sẽ khởi động thư viện ứng dụng Python bằng các phương thức mà máy chủ phụ trợ hỗ trợ. Bạn sẽ cần cung cấp một dự án mà bạn sở hữu hoặc có quyền sử dụng. Hãy xem phần Thiết lập dự án trên đám mây để đăng ký dự án và bật Earth Engine API. Dự án này sẽ được dùng để chạy tất cả các thao tác trên Earth Engine.
Trên dòng lệnh, lệnh gọi tương đương là earthengine authenticate. Nếu thông tin đăng nhập đã hết hạn hoặc không hợp lệ, bạn có thể cần chạy earthengine
authenticate --force. Các lệnh gọi dòng lệnh sẽ khởi chạy trên mỗi lệnh gọi và bạn có thể sử dụng đối số --project để đặt dự án.
Bạn cũng có thể định cấu hình một dự án cho tất cả các lệnh gọi trong tương lai bằng cách chạy earthengine
set_project {my-project}. Dòng lệnh và ee.Initialize() sẽ sử dụng lệnh này bất cứ khi nào bạn không chỉ định trực tiếp một dự án. Nếu sử dụng quy trình xác thực thông qua gcloud (xem bên dưới), thì dự án do gcloud auth application-default
set-quota-project {my-project} đặt sẽ được dùng làm trường hợp cuối cùng.
Thông tin xác thực
Mục đích của quy trình xác thực Earth Engine là lấy "mã thông báo" bảo mật từ tài khoản bạn đã đăng nhập. Mã thông báo này có thể được lưu trữ để cấp cho tập lệnh của bạn quyền truy cập vào dữ liệu của bạn. Vì lý do bảo mật, hệ thống xác thực của Google sẽ chỉ chuyển những mã thông báo như vậy đến các hệ thống có thể được bảo mật – hãy xem ghi chú kỹ thuật bên dưới.
Do tính nhạy cảm đối với loại hệ thống liên quan, nên có nhiều cách để tiến hành tuỳ thuộc vào tình huống cụ thể của bạn. Hầu hết các lựa chọn đều được kiểm soát bằng tham số auth_mode: có thể là ee.Authenticate(auth_mode=...) hoặc earthengine authenticate --auth_mode=... trên dòng lệnh.
Xin lưu ý rằng nếu thông tin xác thực của Google đã có trong môi trường của bạn, thì bạn có thể không cần gọi ee.Authenticate(). VM Google Cloud, App Engine và các môi trường khác cung cấp "thông tin xác thực môi trường" có thể sử dụng và gcloud auth
application-default login cũng sẽ tạo ra chúng.
Tuy nhiên, bạn nên sử dụng ee.Authenticate() ở đầu tất cả các tập lệnh để tối đa hoá khả năng tương thích. Không có tham số auth_mode, chế độ này được thiết kế để hoạt động trong hầu hết các trường hợp, nhưng hãy làm theo thông tin chi tiết bên dưới nếu chế độ mặc định không hoạt động.
Chế độ mặc định được chọn như sau:
colabnếu đang chạy trong sổ tay Google Colabnotebooknếu chạy trong các sổ tay Jupyter không phải Colablocalhostnếu hệ thống phát hiện thấy trình duyệt web và chưa cài đặt tệp nhị phân gcloudgcloud, nếu không. Đối với chế độ này, bạn cần cài đặt gcloud.
Bảng và hướng dẫn tham khảo nhanh
Hướng dẫn đưa ra quyết định này trình bày các lựa chọn có thể có nếu chế độ mặc định do ee.Authenticate() chọn không hoạt động. Ví dụ: nếu đang chạy trong các môi trường sổ tay khác, bạn có thể phải chỉ định notebook một cách rõ ràng.
- Môi trường địa phương.
- "Cục bộ" có nghĩa là bạn đang chạy mã trong một trình bao Python hoặc sổ tay Python trên máy trước mặt bạn – hoặc chính xác hơn là trên cùng một máy mà trình duyệt web của bạn đang chạy. Điều này bao gồm cả trường hợp sử dụng máy tính từ xa, trong đó cả Python và trình duyệt đều nằm trên cùng một máy (từ xa).
- Sử dụng
auth_mode=localhostlà cách dễ nhất và sẽ được chọn theo mặc định nếu gcloud chưa được cài đặt, nhưng tập lệnh của bạn sẽ chỉ hoạt động trong môi trường cục bộ. - Cả
auth_mode=gcloudvàauth_mode=notebookcũng có sẵn.
- Môi trường từ xa.
- "Từ xa" có nghĩa là trình duyệt của bạn nằm trên một máy (cục bộ) nhưng mã của bạn đang chạy ở nơi khác, chẳng hạn như trên một máy trạm từ xa hoặc một sổ tay dựa trên web.
- Nếu ở Colab, hãy dùng
auth_mode=colab; hoặc dùnggcloudnếu bạn cần đặtscopesđể gọi các API khác. - Nếu bạn có thể cài đặt gcloud trên cả máy từ xa và máy cục bộ, hãy sử dụng
auth_mode=gcloud. - Nếu bạn có thể sử dụng một dự án xác thực (xem bên dưới), hãy sử dụng
auth_mode=notebook. - Nếu không, nếu bạn không thể sử dụng một dự án hoặc cài đặt gcloud hoặc sử dụng Colab hoặc sử dụng trình duyệt trên cùng một máy:
- Trao đổi với quản trị viên (một lần nữa) về việc tạo dự án. Ví dụ:
- Yêu cầu quản trị viên định cấu hình một dự án cho bạn (với tư cách là Chủ sở hữu hoặc Người chỉnh sửa hoặc Người chỉnh sửa cấu hình OAuth)
- Hoặc yêu cầu quản trị viên cấp cho bạn quyền tạo dự án.
Bảng này cho biết những tổ hợp tính năng được hỗ trợ trong từng chế độ.
| Đối với địa phương hay từ xa? | Cần có dự án | Phạm vi có thể thiết lập | Cần có CLI cục bộ | Chủ sở hữu dự án | |
|---|---|---|---|---|---|
localhost |
trên thiết bị | Có | Có | Không | Không |
colab |
từ xa | Có | Không | Không | Không |
gcloud |
cả hai | Có | Có | Không | Không |
notebook |
cả hai | Có | Có | Không | Có |
Thông tin đăng nhập cho Tài khoản dịch vụ và Compute Engine
ee.Initialize() sẽ sử dụng thông tin đăng nhập Earth Engine (ee.Authenticate() lưu trữ trong ~/.config/earthengine/credentials) hoặc truy xuất thông tin đăng nhập từ google.auth.default(), nhưng nếu cần, bạn có thể truyền đối số credentials= để sử dụng thông tin đăng nhập từ nơi khác, bỏ qua các giá trị mặc định này.
Nếu đang xác thực mã Python sẽ chạy mà không cần sự giám sát, bạn có thể muốn xác thực bằng tài khoản dịch vụ thay vì tài khoản người dùng. Hãy xem các tài liệu này để biết cách sử dụng tài khoản dịch vụ với Earth Engine. Các phương thức khác bao gồm authenticate_service_account trong mô-đun uỷ quyền Colab và các phương thức được mô tả trong Hướng dẫn về Cloud để xác thực dưới dạng tài khoản dịch vụ.
Nếu mã của bạn đang chạy trên một VM Compute Engine, thì một tài khoản dịch vụ mặc định sẽ được tạo cho môi trường mà ee.Initialize() sẽ sử dụng theo mặc định. Bạn có thể cần đăng ký tài khoản dịch vụ để sử dụng Earth Engine nếu Dự án trên đám mây mà bạn đã khởi động VM chưa được đăng ký để sử dụng với Earth Engine (cho mục đích thương mại hoặc phi thương mại).
Thông tin chi tiết về các chế độ
auth_mode=colab. ee.Authenticate() sẽ tạo hoặc lấy thông tin đăng nhập mặc định mà Colab hỗ trợ bằng cách chạy colab.auth.authenticate_user() nếu cần. Thông tin đăng nhập luôn sử dụng phạm vi cloud-platform và cũng có thể dùng để gọi các Cloud API khác.
auth_mode=gcloud. Thao tác này uỷ quyền xác thực cho công cụ gcloud và giống với việc chạy gcloud auth application-default login với các phạm vi Earth Engine mặc định (earthengine, cloud-platform và drive) hoặc các phạm vi trong đối số scopes. Chế độ gcloud hoạt động trong cả trường hợp cục bộ và từ xa.
Hướng dẫn từng bước cho chế độ gcloud (trường hợp cục bộ và từ xa)
- Xác minh rằng bạn đã cài đặt gcloud trên máy cục bộ.
- Trong một thiết bị đầu cuối, hãy chạy
gcloud help. Nếu bạn chưa cài đặt gcloud, hãy làm theo hướng dẫn này để cài đặt gcloud.
- Trong một thiết bị đầu cuối, hãy chạy
- Thiết bị đầu cuối của máy cục bộ
- Trong một thiết bị đầu cuối, hãy chạy
earthengine authenticate. - Đầu ra của lệnh sẽ cho biết rằng gcloud đang được dùng để tìm nạp thông tin xác thực.
- Một cửa sổ trình duyệt sẽ mở ra trang chọn tài khoản. Nếu trình duyệt không tự động mở, hãy nhấp vào URL.
- Trong một thiết bị đầu cuối, hãy chạy
- Trình duyệt: Lựa chọn tài khoản
- Chọn tài khoản bạn muốn dùng để xác thực.
- Trình duyệt: Màn hình đồng ý
- Cho biết bạn có sẵn sàng cấp các phạm vi được yêu cầu hay không rồi nhấp vào "Cho phép".
- Trình duyệt: Màn hình xác nhận
- Trình duyệt sẽ cho thấy một trang xác nhận rằng bạn đã được xác thực và lệnh
earthengine authenticatetrong cửa sổ thiết bị đầu cuối sẽ báo cáo "Successfully saved authorization token" (Đã lưu mã thông báo uỷ quyền thành công). - Trong các trường hợp từ xa, trang web sẽ cung cấp cho bạn một mã để dán lại vào môi trường Python.
- Trình duyệt sẽ cho thấy một trang xác nhận rằng bạn đã được xác thực và lệnh
- Tiếp tục quá trình khởi chạy.
auth_mode=localhost. Đây là một quy trình tương tự như gcloud trong trường hợp gcloud chưa được cài đặt. Công cụ này thực hiện các bước tương tự như gcloud, nhưng chỉ hoạt động cho trường hợp cục bộ. Bạn có thể cung cấp số cổng Internet không bắt buộc, ví dụ: localhost:8086 hoặc sử dụng localhost:0 để tự động chọn cổng. Cổng mặc định là 8085.
auth_mode=notebook. Đây là chế độ đa năng được thiết kế để hoạt động trong các trường hợp từ xa khi không có dòng lệnh cục bộ. Thao tác này sẽ đưa bạn đến trang Trình xác thực sổ tay. Tại đây, bạn cần chọn hoặc tạo một "dự án xác thực" – hãy xem thông tin chi tiết và hướng dẫn khắc phục sự cố bên dưới. Dự án được truyền đến ee.Initialize() không nhất thiết phải khớp với dự án này – bạn có thể giữ nguyên dự án để xác thực trong khi làm việc trong các dự án khác nhau ở các sổ tay khác nhau. Bạn nên truyền một dự án một cách rõ ràng đến ee.Initialize(), nhưng dự án xác thực sẽ được sử dụng theo mặc định.
Hướng dẫn từng bước về chế độ sổ tay
- Trình duyệt: Sổ ghi chú
- Trong một ô mã của sổ tay, hãy chạy mã sau để bắt đầu một quy trình xác thực bằng chế độ "notebook".
Nhấp vào đường liên kết trong đầu ra của ô để mở trang Notebook Authenticator trong một thẻ mới.import ee ee.Authenticate()
- Trong một ô mã của sổ tay, hãy chạy mã sau để bắt đầu một quy trình xác thực bằng chế độ "notebook".
- Trình duyệt: Notebook Authenticator
- Xác minh để đảm bảo tài khoản người dùng chính xác được liệt kê.
- Chọn một dự án trên Google Cloud để dùng cho hoạt động Xác thực. Nếu cần tạo một dự án mới, bạn nên sử dụng quy ước đặt tên "ee-xyz", trong đó xyz là tên người dùng Earth Engine thông thường của bạn. (Nếu bạn không thể chọn hoặc tạo một Dự án trên Cloud, hãy xem phần khắc phục sự cố bên dưới.)
- Nhấp vào Tạo mã thông báo.
- Trình duyệt: Lựa chọn tài khoản
- Bạn sẽ thấy trang chọn tài khoản. Nhấp vào tài khoản người dùng mà bạn muốn cấp quyền truy cập từ sổ tay.
- Trình duyệt: Trang cảnh báo
- Một trang cảnh báo sẽ xuất hiện, cho biết rằng Google không tạo ứng dụng này (tức là mã trong sổ tay). Nhấp vào Tiếp tục để xác nhận.
- Trình duyệt: Màn hình đồng ý
- Cho biết bạn có sẵn sàng cấp các phạm vi được yêu cầu hay không rồi nhấp vào Tiếp tục.
- Trình duyệt: Màn hình mã uỷ quyền
- Sao chép mã xác minh uỷ quyền
- Trình duyệt: Sổ ghi chú
- Chuyển lại sang thẻ sổ tay và dán mã xác minh vào đầu ra của ô sổ tay.
- Đầu ra của ô sẽ cho biết "Đã lưu mã thông báo uỷ quyền thành công."
- Tiếp tục quá trình khởi chạy.
Chế độ sổ tay có một tham số quiet hiếm khi được dùng: nếu được đặt, tham số này sẽ chạy "không tương tác" và không nhắc cũng như chờ bạn nhập mã uỷ quyền.
Thay vào đó, nó đưa ra một lệnh để chạy nhằm lưu mã.
Dự án xác thực
Bạn cần phải là Chủ sở hữu, Người chỉnh sửa hoặc Người chỉnh sửa cấu hình OAuth trên dự án xác thực được dùng ở chế độ sổ tay. Trong nhiều trường hợp, đặc biệt là trong các nhóm nhỏ, dự án xác thực mà bạn sử dụng trên trang Notebook Authenticator có thể giống với dự án chính mà bạn sử dụng cho công việc khác.
Do lo ngại về vấn đề bảo mật, "cấu hình ứng dụng OAuth" trên dự án xác thực là một chế độ thiết lập một lần. Nếu bạn hoặc người dùng khác đã thiết lập một ứng dụng OAuth trên dự án vì những lý do khác, thì bạn không thể xoá ứng dụng đó và sẽ thấy lỗi "cấu hình ứng dụng OAuth2 không tương thích". Bạn sẽ cần sử dụng một dự án khác để xác thực hoặc sử dụng các chế độ colab, localhost hoặc gcloud ở trên.
Thông tin chi tiết về phạm vi
Chế độ cài đặt xác thực mặc định của Earth Engine bao gồm tất cả các phạm vi hiện có, vì vậy, bạn có thể bỏ qua phần này nếu chế độ cài đặt mặc định đáp ứng các yêu cầu của bạn.
Phạm vi Earth Engine: Phạm vi OAuth 2.0 xác định và hạn chế tập hợp các tài nguyên và thao tác mà một ứng dụng được phép truy cập thay cho người dùng. Khi sử dụng OAuth để xác thực bằng Earth Engine, bạn phải yêu cầu một hoặc nhiều phạm vi sau:
https://www.googleapis.com/auth/earthengine: Quyền đọc và ghi đối với các tài sản và tài nguyên của Earth Engine. Bắt buộc để tạo, sửa đổi hoặc xoá thành phần, quản lý quyền đối với thành phần và chạy các tác vụ xuất.https://www.googleapis.com/auth/earthengine.readonly: Quyền truy cập chỉ đọc vào các tài sản của Earth Engine.
Cả hai phạm vi này đều cho phép thực thi tập lệnh và chạy các phép tính (chẳng hạn như đánh giá biểu thức hoặc kết xuất hình ảnh trực quan trên bản đồ).
Phạm vi Google Cloud và Drive: Nếu các truy vấn hoặc tập lệnh Earth Engine của bạn tham chiếu đến dữ liệu hoặc tài sản bên ngoài, thì thông tin xác thực của bạn cũng phải bao gồm các phạm vi thích hợp cho những dịch vụ đó:
- Cloud Storage (GCS) (khi đọc hoặc ghi vào các bộ chứa Cloud Storage, chẳng hạn như tải GeoTIFF được tối ưu hoá cho đám mây hoặc xuất đầu ra của tác vụ):
https://www.googleapis.com/auth/devstorage.full_controlhttps://www.googleapis.com/auth/devstorage.read_writehttps://www.googleapis.com/auth/devstorage.read_only
- BigQuery (BQ) (khi đọc bảng hoặc ghi dữ liệu xuất sang BigQuery):
https://www.googleapis.com/auth/bigquery
- Google Drive (khi truy cập hoặc xuất dữ liệu sang Google Drive):
https://www.googleapis.com/auth/drivehttps://www.googleapis.com/auth/drive.readonly
Google Cloud cũng cung cấp các phạm vi rộng bao gồm tất cả các dịch vụ của Google Cloud:
- Cloud Platform (quyền truy cập rộng rãi vào các dịch vụ của Google Cloud, bao gồm Earth Engine, Cloud Storage và BigQuery; xin lưu ý rằng Google Drive là một dịch vụ riêng biệt của Workspace và không thuộc phạm vi của các quyền này):
https://www.googleapis.com/auth/cloud-platformhttps://www.googleapis.com/auth/cloud-platform.read-only
Phạm vi mặc định: Phạm vi mặc định do cả Earth Engine Code Editor và các thư viện ứng dụng (chẳng hạn như ee.Authenticate()) định cấu hình bao gồm tất cả các phạm vi sau: earthengine, cloud-platform và drive (xem phần trước để biết thông tin chi tiết).
Do đó, bạn chỉ cần tuỳ chỉnh phạm vi (ví dụ: sử dụng tham số scopes trong ee.Authenticate(scopes=[...])) nếu có các ràng buộc bảo mật hoặc chính sách tổ chức cụ thể yêu cầu giới hạn quyền.
Khắc phục sự cố
Điều gì xảy ra nếu tôi không thể tạo Dự án trên đám mây?
Một số tổ chức kiểm soát những người có thể tạo Dự án trên đám mây. Nếu bạn gặp lỗi trên trang Notebook Authenticator khi cố gắng tạo một dự án, thì bạn có thể thử một số cách sau:
- Hãy thử tạo một dự án trực tiếp để xác nhận xem bạn có quyền cần thiết hay không.
- Hãy liên hệ với quản trị viên của tổ chức để tìm hiểu những quy trình có sẵn để tạo dự án.
- Tạo một dự án từ tài khoản không thuộc tổ chức và thêm tài khoản bạn dùng cho công việc làm Chủ sở hữu của dự án. Lưu ý: một số tổ chức có chính sách bảo mật ngăn chặn quyền truy cập vào ứng dụng OAuth từ các dự án bên ngoài.
Lỗi: "Earth Engine API chưa từng được sử dụng trong dự án XXX hoặc đã bị tắt"
Trước tiên, hãy đảm bảo rằng bạn đã định cấu hình một dự án trong ee.Initialize() hoặc trên dòng lệnh (các dự án mặc định do Cloud và Colab cung cấp sẽ không bật Earth Engine). Thứ hai, hãy đảm bảo rằng bạn đã
bật Earth Engine API cho dự án của mình.
Lỗi: "Dự án có cấu hình OAuth2 Client không tương thích"
Mỗi dự án trên đám mây chỉ có thể có một cấu hình ứng dụng OAuth2. Bạn có thể kiểm tra xem một dự án trên đám mây có chế độ cài đặt cấu hình Ứng dụng OAuth2 hay không bằng cách kiểm tra Mã ứng dụng OAuth 2.0 trên trang Thông tin đăng nhập. Bạn cần chọn một dự án trên đám mây khác đã được Notebook Authenticator thiết lập cấu hình tương thích, hoặc chọn hoặc tạo một dự án trên đám mây không có ứng dụng OAuth2. Trình xác thực sẽ tự động định cấu hình dự án này. Rất tiếc, hệ thống OAuth không cho phép người dùng xoá cấu hình, vì vậy, bạn phải sử dụng một dự án khác. Dự án này không nhất thiết phải là dự án được dùng cho các hoạt động khác trên Earth Engine. Xin lưu ý rằng lỗi này không xảy ra ở chế độ Colab.
Lỗi: "gcloud failed. Vui lòng kiểm tra xem có lỗi nào ở trên không và cài đặt gcloud nếu cần."
Lỗi này có thể xảy ra nếu bạn chưa cài đặt gcloud hoặc gcloud không có trong PATH. Điều này cũng có thể xảy ra nếu bạn gọi ee.Authenticate(auth_mode='gcloud') từ bên trong một ô mã của sổ tay. Thay vào đó, hãy sử dụng ee.Authenticate(). Phương thức này sẽ mặc định sử dụng quy trình xác thực chế độ sổ tay. Nếu bạn không tạo được dự án, hãy xem giải pháp ở trên.
Nếu tôi không có quyền truy cập vào máy cục bộ để cài đặt gcloud thì sao?
Nếu đang làm việc trong một môi trường chỉ có web mà không có quyền truy cập vào một thiết bị đầu cuối cục bộ và bạn vẫn cần sử dụng một thiết bị đầu cuối từ xa, thì bạn vẫn có thể khởi động công cụ dòng lệnh bằng cách kích hoạt chế độ sổ tay bằng cách chạy lệnh earthengine
authenticate --auth_mode=notebook.
Lỗi 400: redirect_uri_mismatch
Bạn có thể gặp lỗi này nếu xác thực trên một máy từ xa mà không có quyền truy cập vào trình duyệt web. Hãy thử thêm --quiet nếu đang chạy earthengine authenticate từ dòng lệnh hoặc ee.Authenticate(quiet=True) nếu đang dùng ứng dụng Python. Bạn sẽ phải xác thực bằng gcloud trên một thiết bị có quyền truy cập vào trình duyệt web.
Lỗi: "Ứng dụng của bạn đang xác thực bằng cách sử dụng Thông tin xác thực mặc định của ứng dụng cục bộ. API earthengine.googleapis.com yêu cầu một dự án hạn mức (không được đặt theo mặc định)."
Lỗi này có thể xảy ra khi Earth Engine không xác định được mã dự án của bạn. Nếu các lựa chọn khắc phục sự cố của Google Cloud không hiệu quả, hãy thử chạy earthengine set_project YOUR_PROJECT_ID hoặc gcloud
auth application-default set-quota-project YOUR_PROJECT_ID.
Lỗi: "Thiếu các phạm vi bắt buộc cho [Cloud Storage / BigQuery]"
Lỗi này xảy ra khi một yêu cầu của Earth Engine truy cập vào tài nguyên Cloud Storage hoặc BigQuery, nhưng thông tin đăng nhập được dùng để khởi động Earth Engine không bao gồm các phạm vi bắt buộc cho dịch vụ đó (hoặc phạm vi cloud-platform, bao gồm tất cả các dịch vụ của Google Cloud). Điều này thường xảy ra nếu bạn tuỳ chỉnh tham số scopes trong quá trình xác thực (ví dụ: chỉ cung cấp các phạm vi Earth Engine cho ee.Authenticate(scopes=[...])) hoặc nếu thông tin đăng nhập hiện có được tạo mà không có các phạm vi đó.
Có hai cách để giải quyết vấn đề này:
- Xác thực lại bằng các phạm vi mặc định: Thông tin đăng nhập mặc định cho Earth Engine bao gồm phạm vi
cloud-platform, bao gồm cả Cloud Storage và BigQuery. Xác thực lại bằng chế độ cài đặt mặc định:- Trong Python:
ee.Authenticate(force=True) - Trên dòng lệnh:
earthengine authenticate --force
- Trong Python:
- Thêm các phạm vi bắt buộc: Nếu môi trường của bạn yêu cầu tuỳ chỉnh phạm vi, hãy đảm bảo danh sách
scopescủa bạn có chứahttps://www.googleapis.com/auth/cloud-platformhoặc phạm vi dịch vụ cụ thể (chẳng hạn nhưhttps://www.googleapis.com/auth/devstorage.full_controlhoặchttps://www.googleapis.com/auth/devstorage.read_onlycho Cloud Storage, hoặchttps://www.googleapis.com/auth/bigquerycho BigQuery).
Để biết thêm thông tin chi tiết về các phạm vi hiện có, hãy xem phần Thông tin chi tiết về phạm vi.
Ghi chú kỹ thuật
Đối với những người quan tâm đến kỹ thuật: nhu cầu về các cơ chế tạo thông tin xác thực khác nhau này xuất phát từ nhu cầu truyền thông tin xác thực đến một môi trường đã biết và đáng tin cậy. Sau đây là phần thảo luận ngắn gọn về các trường hợp nêu trên.
- Trước đây, có một chế độ
pastecho phép bạn dán mã thông báo ở bất cứ đâu. Tuy nhiên, chế độ này được coi là quá rủi ro và không còn được cung cấp nữa. colab:auth.authenticate_user()sẽ nhắc bạn chia sẻ thông tin đăng nhập với ứng dụng uỷ quyền "Colab", tức là chính môi trường của sổ tay. Sau đó, các đối tượng này có sẵn thông quagoogle.auth.default()và đượcee.Initialize()sử dụng.localhost: thông tin đăng nhập được truyền từ trình duyệt đến một cổng trên máy cục bộ. Trong trường hợp này, tính năng bảo mật hai đầu phụ thuộc vào việc máy cục bộ của bạn không bị xâm nhập. Ứng dụng xác thực mà bạn sẽ thấy là "Earth Engine Authenticator".gcloud: Thao tác này sử dụng quy trình--launch-browserđược mô tả trong tài liệu tham khảo gcloud và--no-launch-browsernếu trên một máy từ xa. Ứng dụng khách xác thực được dùng là "Thư viện Google Auth".notebook: Chúng tôi tạo một ứng dụng uỷ quyền mới dành riêng cho công việc của bạn – bạn sẽ thấy địa chỉ email của mình trên trang đồng ý. Ứng dụng này được đặt ở chế độ "phát triển", đây là một trường hợp đặc biệt cho phép các mã thông báo ở chế độ dán cũ. Chúng ta cần sử dụng dự án của riêng bạn cho việc này, vì không thể chia sẻ các ứng dụng như vậy với số lượng lớn người dùng.