Quản lý và chuyển đổi dự án trên đám mây của Google

Để sử dụng Merchant API, bạn phải liên kết dự án trên đám mây của Google Cloud với tài khoản Merchant Center chính thông qua quy trình đăng ký nhà phát triển. Trong suốt vòng đời của quá trình tích hợp, bạn có thể cần thay đổi mã dự án Google Cloud được liên kết với tài khoản Merchant Center, quản lý nhiều dự án trên các môi trường hoặc chuyển đổi dự án khi di chuyển từ Content API for Shopping.

Hướng dẫn này giải thích cách:

  • Thay đổi hoặc luân phiên mã dự án Google Cloud cho một quy trình tích hợp Merchant API hiện có mà không bị gián đoạn.
  • Huỷ đăng ký một dự án Google Cloud khỏi một tài khoản Merchant Center và đăng ký dự án đó với một tài khoản Merchant Center khác.
  • Chọn và thực thi chiến lược chuyển đổi dự án trên đám mây của Google Cloud phù hợp nếu bạn đang di chuyển từ Content API for Shopping sang Merchant API.

Điều kiện tiên quyết

Trước khi quản lý hoặc chuyển đổi dự án trên đám mây của Google, hãy xác minh rằng bạn đáp ứng các điều kiện tiên quyết để đăng ký nhà phát triển. Để biết thêm thông tin chi tiết, hãy xem phần Điều kiện tiên quyết trong hướng dẫn Đăng ký làm nhà phát triển.

Các quy tắc và giới hạn chính

Khi lên kế hoạch thay đổi dự án trên đám mây của Google Cloud, hãy lưu ý các quy tắc sau:

  • Đăng ký dự án một với nhiều: Một tài khoản Merchant Center chính có thể đăng ký đồng thời nhiều dự án trên đám mây của Google. Tuy nhiên, mỗi dự án trên đám mây của Google Cloud chỉ có thể được đăng ký cho một tài khoản Merchant Center chính tại một thời điểm bất kỳ. Nếu bạn cố gắng đăng ký một dự án đã được liên kết với một tài khoản Merchant Center khác, thì hệ thống sẽ trả về lỗi ALREADY_EXISTS (409 Conflict) với lý do DUPLICATE_PROJECT_REGISTRATION.
  • Quyền riêng tư về quyền sở hữu dự án: Vì lý do bảo mật và quyền riêng tư, nhóm hỗ trợ Google Mua sắm và Merchant API không thể tiết lộ địa chỉ email của chủ sở hữu hoặc quản trị viên của một dự án trên đám mây của Google. Nếu bạn mất quyền truy cập vào một dự án, hãy liên hệ với Nhóm hỗ trợ Google Cloud.
  • Các tiện ích mở rộng ngừng hoạt động của Content API for Shopping là dành riêng cho từng dự án: Nếu bạn được phê duyệt quyền truy cập mở rộng cho Content API for Shopping, thì tiện ích mở rộng đó chỉ áp dụng cho mã dự án trên đám mây cụ thể mà bạn đã gửi trong yêu cầu. Tiện ích mở rộng không tự động chuyển sang các dự án Google Cloud mới.

Thay đổi mã dự án trên đám mây của Google cho tài khoản Merchant API

Nếu bạn đã sử dụng Merchant API và cần chuyển đổi quy trình tích hợp sang một dự án trên đám mây mới của Google Cloud (ví dụ: do cơ cấu tổ chức thay đổi, chính sách thay đổi định kỳ thông tin xác thực hoặc mất quyền quản trị đối với một dự án cũ), thì bạn có thể chuyển đổi dự án mà không bị gián đoạn. Vì một tài khoản Merchant Center hỗ trợ đồng thời nhiều dự án Google Cloud đã đăng ký, nên bạn có thể đăng ký dự án mới trước khi ngừng sử dụng dự án cũ.

Bước 1: Tạo và định cấu hình dự án Google Cloud mới

  1. Tạo một dự án mới trong Google Cloud Console. Để biết hướng dẫn chi tiết, hãy xem bài viết Tạo dự án Google Cloud.
  2. Bật Merchant API (merchantapi.googleapis.com) trong dự án mới. Xem phần Bật Merchant API trong bài viết Tạo dự án trên đám mây của Google.
  3. Tạo thông tin xác thực (tài khoản dịch vụ hoặc mã ứng dụng OAuth 2.0) trong dự án Google Cloud mới.
  4. Thêm địa chỉ email xác thực (chẳng hạn như email tài khoản dịch vụ mới) làm người dùng có vai trò ADMIN trong tài khoản Merchant Center chính.

Bước 2: Đăng ký dự án trên đám mây của Google Cloud mới

Xác thực bằng thông tin xác thực từ dự án Google Cloud mới và gọi accounts.developerRegistration.registerGcp phương thức để liên kết dự án mới với tài khoản Merchant Center chính. Để biết hướng dẫn chi tiết, hãy xem phần Thực hiện lệnh gọi đăng ký trong bài viết Đăng ký làm nhà phát triển.

Bước 3: Xác minh các dự án trên đám mây của Google Cloud đã đăng ký

Để xác nhận rằng cả dự án trên đám mây Google Cloud hiện có và dự án mới đều được liên kết với tài khoản Merchant Center, hãy gọi phương thức accounts.developerRegistration.getDeveloperRegistration:

GET https://merchantapi.googleapis.com/accounts/v1/accounts/ACCOUNT_ID/developerRegistration
Authorization: Bearer ACCESS_TOKEN

Thay thế nội dung sau:

  • ACCOUNT_ID: mã truy cập Merchant Center
  • ACCESS_TOKEN: mã thông báo uỷ quyền để thực hiện lệnh gọi API

Phản hồi sẽ trả về tài nguyên DeveloperRegistration với số dự án trên đám mây Google Cloud bằng số của tất cả các dự án được liên kết trong trường gcpIds:

{
  "name": "accounts/ACCOUNT_ID/developerRegistration",
  "gcpIds": [
    "123456789012",
    "987654321098"
  ]
}

Bạn cũng có thể xác minh tài khoản Merchant Center mà dự án Google Cloud đang gọi được đăng ký bằng cách gọi phương thức accounts.developerRegistration.getAccountForGcpRegistration:

GET https://merchantapi.googleapis.com/accounts/v1/accounts:getAccountForGcpRegistration
Authorization: Bearer ACCESS_TOKEN

Thay thế nội dung sau:

  • ACCESS_TOKEN: mã thông báo uỷ quyền được tạo bằng thông tin xác thực từ dự án trên đám mây của Google mà bạn muốn kiểm tra

Bước 4: Chuyển đổi lưu lượng truy cập và huỷ đăng ký dự án Google Cloud cũ

  1. Cập nhật cấu hình ứng dụng để sử dụng thông tin xác thực từ dự án Google Cloud mới. Vì cả hai dự án đều được đăng ký, nên khối lượng công việc của bạn sẽ chuyển đổi mà không bị gián đoạn.
  2. Sau khi tất cả lưu lượng truy cập đều sử dụng dự án mới, bạn có thể tuỳ ý xoá liên kết dự án cũ bằng cách xác thực bằng thông tin xác thực dự án Google Cloud cũ và gọi accounts.developerRegistration.unregisterGcp phương thức:
POST https://merchantapi.googleapis.com/accounts/v1/accounts/ACCOUNT_ID/developerRegistration:unregisterGcp
Content-Type: application/json
Authorization: Bearer OLD_PROJECT_ACCESS_TOKEN

Thay thế nội dung sau:

  • ACCOUNT_ID: mã truy cập Merchant Center
  • OLD_PROJECT_ACCESS_TOKEN: mã thông báo uỷ quyền từ dự án trên đám mây Google Cloud cũ để thực hiện Lệnh gọi API

Java

import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.accounts.v1.DeveloperRegistrationName;
import com.google.shopping.merchant.accounts.v1.DeveloperRegistrationServiceClient;
import com.google.shopping.merchant.accounts.v1.DeveloperRegistrationServiceSettings;
import com.google.shopping.merchant.accounts.v1.UnregisterGcpRequest;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;

/**
 * This class demonstrates how to unregister the GCP project currently used to call the Merchant API
 * for a specific account.
 */
public class UnregisterGcpSample {

  public static void unregisterGcp(Config config) throws Exception {

    // Obtains OAuth token based on the user's configuration.
    GoogleCredentials credential = new Authenticator().authenticate();

    // Creates service settings using the credentials retrieved above.
    DeveloperRegistrationServiceSettings developerRegistrationServiceSettings =
        DeveloperRegistrationServiceSettings.newBuilder()
            .setCredentialsProvider(FixedCredentialsProvider.create(credential))
            .build();

    // Creates DeveloperRegistration name to identify the DeveloperRegistration.
    // The name has the format: accounts/{account}/developerRegistration
    String name =
        DeveloperRegistrationName.newBuilder()
            .setAccount(config.getAccountId().toString())
            .build()
            .toString();

    // Calls the API and propagates any network failures/errors.
    try (DeveloperRegistrationServiceClient developerRegistrationServiceClient =
        DeveloperRegistrationServiceClient.create(developerRegistrationServiceSettings)) {

      // Creates a request to unregister the GCP project.
      UnregisterGcpRequest request = UnregisterGcpRequest.newBuilder().setName(name).build();

      System.out.println("Sending UnregisterGcp request for: " + name);
      developerRegistrationServiceClient.unregisterGcp(request);
      System.out.println("Unregister GCP successful.");
    }
  }

  public static void main(String[] args) throws Exception {
    Config config = Config.load();
    unregisterGcp(config);
  }
}

cURL

curl -X POST \
  "https://merchantapi.googleapis.com/accounts/v1/accounts/ACCOUNT_ID/developerRegistration:unregisterGcp" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer OLD_PROJECT_ACCESS_TOKEN"

Chỉ định lại một dự án trên đám mây của Google Cloud đã đăng ký cho một tài khoản Merchant Center khác

Vì một dự án Google Cloud chỉ có thể được đăng ký cho một tài khoản Merchant Center chính tại một thời điểm, nên hãy làm theo các bước sau để chỉ định lại một dự án hiện có từ một tài khoản Merchant Center (OLD_ACCOUNT_ID) sang một tài khoản khác (NEW_ACCOUNT_ID). Để biết nguyên tắc về cách chọn tài khoản Merchant Center để đăng ký dự án, hãy xem phần Những điểm cần lưu ý quan trọng:

  1. Xác thực bằng thông tin xác thực từ dự án trên đám mây Google Cloud có quyền truy cập vào OLD_ACCOUNT_ID và gọi unregisterGcp trên accounts/OLD_ACCOUNT_ID/developerRegistration.
  2. Xác minh rằng danh tính xác thực có vai trò ADMIN trên NEW_ACCOUNT_ID và NEW_ACCOUNT_ID có một trang web đã xác minh.
  3. Gọi registerGcp trên accounts/NEW_ACCOUNT_ID/developerRegistration bằng thông tin xác thực từ cùng một dự án Google Cloud. Nếu NEW_ACCOUNT_ID chưa có người dùng có vai trò API_DEVELOPER, hãy truyền email người dùng hợp lệ vào trường yêu cầu developerEmail. Bạn không thể sử dụng email tài khoản dịch vụ có đuôi .gserviceaccount.com làm developerEmail.

Chuyển đổi dự án trên đám mây của Google khi di chuyển từ Content API for Shopping

Khi di chuyển từ Content API for Shopping sang Merchant API, bạn có thể gặp phải các giới hạn về quyền truy cập đối với dự án Google Cloud cũ (ví dụ: nếu bạn đã định cấu hình trực tiếp các khoá API ban đầu thông qua quy trình xác thực Merchant Center cũ hoặc nếu chủ sở hữu dự án ban đầu đã rời khỏi tổ chức của bạn).

Tuỳ thuộc vào việc bạn muốn giữ lại dự án hiện có hay sử dụng một dự án mới cho Merchant API trong khi vẫn giữ Content API for Shopping trên dự án cũ, hãy chọn một trong hai lựa chọn sau.

Chọn chiến lược di chuyển dự án

Trường hợp Cần có quyền quản trị đối với dự án cũ? API cần bật Có cần tiện ích mở rộng Content API for Shopping trên dự án mới không?
Lựa chọn 1: Giữ lại dự án hiện có Có (hoặc khôi phục thông qua Nhóm hỗ trợ Google Cloud) Bật Merchant API trên dự án hiện có (Content API for Shopping đã được bật) Không (tiện ích mở rộng hiện có trên mã dự án cũ vẫn hợp lệ)
Lựa chọn 2: Giữ lại dự án cũ cho Content API for Shopping và sử dụng một dự án mới cho Merchant API Không Bật Merchant API trên dự án mới (giữ Content API for Shopping được bật trên dự án cũ) Không (dự án cũ vẫn giữ lại tiện ích mở rộng; dự án mới chỉ gọi Merchant API)

Lựa chọn 1: Giữ lại dự án Google Cloud hiện có

Chọn lựa chọn này nếu bạn muốn sử dụng dự án Google Cloud hiện có cho cả Content API for Shopping và Merchant API.

Trước khi bắt đầu, hãy xác minh hoặc khôi phục quyền truy cập vào dự án hiện có. Đăng nhập vào bảng điều khiển Google Cloud và xác nhận rằng tài khoản của bạn có bất kỳ vai trò nào sau đây trên dự án hiện có:

  • Chủ sở hữu (roles/owner),
  • Người chỉnh sửa (roles/editor)
  • Quản trị viên sử dụng dịch vụ (roles/serviceusage.serviceUsageAdmin)
  1. Bật Merchant API: Bật merchantapi.googleapis.com trong Thư viện API Google Cloud hoặc bằng lệnh gcloud. Để biết hướng dẫn từng bước, hãy xem bài viết Định cấu hình quy trình xác thực API từ Merchant Center.
  2. Đăng ký dự án Google Cloud với Merchant Center: Làm theo các bước trong hướng dẫn Đăng ký làm nhà phát triển để uỷ quyền cho các yêu cầu từ dự án hiện có và gọi phương thức registerGcp để liên kết dự án Google Cloud hiện có với tài khoản Merchant Center chính. Các khoá tài khoản dịch vụ hiện có và tiện ích mở rộng Content API for Shopping đã được phê duyệt sẽ tiếp tục hoạt động mà không cần thay đổi.

Lựa chọn 2: Sử dụng dự án trên đám mây Google Cloud cũ cho Content API for Shopping và một dự án mới cho Merchant API

Chọn lựa chọn này nếu quy trình tích hợp Content API for Shopping cũ của bạn đã chạy với thông tin xác thực hợp lệ và một tiện ích mở rộng đã được phê duyệt trên dự án trên đám mây Google Cloud cũ, đồng thời bạn muốn xây dựng quy trình tích hợp Merchant API mới trong một dự án trên đám mây Google Cloud riêng biệt, chuyên dụng:

  1. Giữ lại quy trình tích hợp Content API for Shopping trên dự án cũ: Giữ lại các quy trình làm việc và thông tin xác thực Content API for Shopping hiện có đang chạy trên dự án Google Cloud cũ. Nếu yêu cầu tiện ích mở rộng của bạn cho mã dự án cũ đã được phê duyệt, thì quy trình tích hợp Content API for Shopping hiện tại sẽ tiếp tục hoạt động cho đến thời hạn mở rộng.
  2. Tạo một dự án Google Cloud mới dành riêng cho Merchant API: Tạo một dự án Google Cloud mới, bật merchantapi.googleapis.com và tạo thông tin xác thực (tài khoản dịch vụ hoặc mã ứng dụng OAuth 2.0) cho khối lượng công việc Merchant API mới.
  3. Đăng ký dự án mới: Làm theo các bước trong Đăng ký làm nhà phát triển để uỷ quyền cho các yêu cầu từ dự án mới và gọi phương thức registerGcp bằng email liên hệ hợp lệ của nhà phát triển. Bạn không thể sử dụng email tài khoản dịch vụ (có đuôi .gserviceaccount.com) làm developerEmail.
  4. Di chuyển khối lượng công việc theo từng bước: Chuyển dần các lệnh gọi API từ dự án Content API for Shopping cũ sang dự án Merchant API mới, trước ngày Content API for Shopping ngừng hoạt động theo lịch (hoặc trước khi tiện ích mở rộng đã được phê duyệt hết hạn) và ngừng sử dụng dự án cũ sau khi bạn hoàn tất quá trình di chuyển.

Trường hợp đặc biệt: Mất quyền truy cập vào dự án Google Cloud cũ trước khi hoàn tất quá trình di chuyển

Vì Content API for Shopping đã ngừng hoạt động, nên API này không còn xuất hiện trong Thư viện API Google Cloud và không thể bật trên các dự án trên đám mây mới tạo. Do đó, bạn không thể tự di chuyển khối lượng công việc Content API for Shopping hiện có sang một dự án trên đám mây Google Cloud mới.

Nếu bạn không còn có thể thực hiện các lệnh gọi Content API for Shopping từ dự án cũ (ví dụ: do thông tin xác thực bị thu hồi hoặc không thể khôi phục quyền truy cập vào dự án):

  1. Liên hệ với Nhóm hỗ trợ Google Cloud để khôi phục quyền truy cập vào dự án Google Cloud hiện có (Lựa chọn 1) hoặc
  2. Làm theo Lựa chọn 2 để tạo và đăng ký một dự án trên đám mây Google Cloud mới, đồng thời di chuyển trực tiếp các quy trình làm việc bị ảnh hưởng sang Merchant API. Nếu bạn gặp phải vấn đề nghiêm trọng khiến quá trình di chuyển bị chặn, hãy liên hệ với nhóm hỗ trợ Merchant API.

Các bước tiếp theo