Информация о кэшировании GCP Billing API?

#google-cloud-platform

#google-облачная платформа

Вопрос:

Мне нужно перечислить все регионы, где доступна данная услуга, я обнаружил, что billing API может предоставить мне эту информацию, и решил попробовать.

Проблема в том, что когда я перечисляю регионы обслуживания, он возвращает мне также результаты предыдущих запросов, мне интересно, может ли это быть основано на RPC, и это не очищает кэш, или есть какой-то способ получить правильный результат.

Далее следует код.

 public class CloudbillingBuilder{

public static Cloudbilling createCloudbillingService()
      throws IOException, GeneralSecurityException {

    HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
    JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();
    // TODO: Verify Credentials using files/env vars
    GoogleCredential credential = GoogleCredential.getApplicationDefault();
    if (credential.createScopedRequired()) {
      credential =
          credential.createScoped(Arrays.asList("https://www.googleapis.com/auth/cloud-platform"));
    }

     Cloudbilling cloudbillingService = new Cloudbilling.Builder(httpTransport, jsonFactory, credential)
      .setApplicationName("Google Cloud Platform le")
      .build();

    return cloudbillingService;

  }

}


public class ServiceAvailabilityChecker{

// private String sku;
private String serviceName;
// private ListSkusResponse listSkus;
private java.util.List<Sku> listSkus;



public ServiceAvailabilityChecker(String skuCode)
    throws IOException, GeneralSecurityException {

    // this.sku = sku;

    Cloudbilling cloudbillingService = CloudbillingBuilder.createCloudbillingService();
    Cloudbilling.Services.Skus skurequest = cloudbillingService.services().skus();

    ListSkusResponse response = skurequest.list(skuCode).execute();

    listSkus = response.getSkus();
    
}

public List<String> getRegions(){
    List<String> response = new ArrayList<String>();

    for(Sku sku : listSkus){
        // response.add(sku.getServiceRegions());
        response.addAll(sku.getServiceRegions());
    }
    return response;
}

public boolean isAvailable(String region){
    for(String str : getRegions()){
        System.out.println(str);
    }

    return false;
}
  

isAvailable печатает следующее:

     asia-east1
    asia-northeast1
    asia-northeast2
    europe-north1
    europe-west1
    europe-west4
    us-central1
    us-east1
    us-east4
    us-west1
    asia-east2
    asia-south1
    asia-southeast1
    australia-southeast1
    europe-west2
    europe-west3
    europe-west6
    southamerica-east1
    northamerica-northeast1
    us-west2
    europe-north1
    europe-west1
    europe-west2
    europe-west3
    europe-west4
    europe-west6
    global
    asia-east1
    asia-east2
    asia-northeast1
    asia-northeast2
    asia-northeast3
    asia-south1
    asia-southeast1
    asia-southeast2
    europe-north1
    europe-west1
    europe-west2
    europe-west3
    europe-west4
    europe-west6
    global
    southamerica-east1
    asia-east1
    asia-northeast1
    asia-northeast2
    europe-north1
    europe-west1
    europe-west4
    us-central1
    us-east1
    us-east4
    us-west1
    global
    asia-east2
    asia-south1
    asia-southeast1
    australia-southeast1
    europe-west2
    europe-west3
    europe-west6
    southamerica-east1
    northamerica-northeast1
    us-west2
    asia-east1
    asia-east2
    asia-northeast1
    asia-northeast2
    asia-northeast3
    asia-south1
    asia-southeast1
    asia-southeast2
    global
    asia-east1
    asia-east2
    asia-northeast1
    asia-northeast2
    asia-northeast3
    asia-south1
    asia-southeast1
    asia-southeast2
    europe-north1
    europe-west1
    europe-west2
    europe-west3
    europe-west4
    europe-west6
    northamerica-northeast1
    us-central1
    us-east1
    us-east4
    us-west1
    us-west2
    us-west3
    us-west4
    global
    northamerica-northeast1
    us-central1
    us-east1
    us-east4
    us-west1
    us-west2
    us-west3
    us-west4
    global
    global
    northamerica-northeast1
    us-central1
    us-east1
    us-east4
    us-west1
    us-west2
    us-west3
    us-west4
    australia-southeast1
  

Комментарии:

1. Можете ли вы распечатать артикул в дополнение к списку регионов? Не уверен, что это проблема

2. @guillaumeblaquiere Вы можете, но я заметил, что я неправильно интерпретировал все это, когда я распечатываю SKU от родительского элемента, в него вложено множество других SKU. Например, если я распечатаю артикул GKE, в нем также будут региональные, зональные службы и службы Anthos GKE, которые имеют разные зоны доступности. Таким образом, он ничего не обналичивал, он правильно отвечал, но со всеми вложенными братьями и сестрами данного сервиса. Так что это действительно не было проблемой.