You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Java删除AppEngine的版本、服务或应用?

Google App Engine Java 客户端删除服务/版本示例

前置依赖

在项目的pom.xml中引入App Engine Admin API依赖:

<dependency>
  <groupId>com.google.cloud</groupId>
  <artifactId>google-cloud-appengine-admin</artifactId>
  <version>2.33.0</version>
</dependency>

完整代码示例

首先初始化App Engine Admin客户端,再根据需求调用对应删除接口:

import com.google.cloud.appengine.admin.v1.AppEngineAdminClient;
import com.google.cloud.appengine.admin.v1.DeleteServiceRequest;
import com.google.cloud.appengine.admin.v1.DeleteVersionRequest;
import com.google.longrunning.Operation;
import java.util.concurrent.ExecutionException;

public class AppEngineDeleteExample {

  public static void main(String[] args) throws ExecutionException, InterruptedException {
    // 替换为你的GCP项目ID
    String projectId = "your-project-id";

    try (AppEngineAdminClient client = AppEngineAdminClient.create()) {
      // ------------------- 示例1:删除指定服务 -------------------
      // 替换为你要删除的服务ID
      String serviceId = "your-service-id";
      DeleteServiceRequest deleteServiceRequest = DeleteServiceRequest.newBuilder()
          .setName(String.format("apps/%s/services/%s", projectId, serviceId))
          .build();
      // 执行删除,等待操作完成
      Operation deleteServiceOp = client.deleteServiceAsync(deleteServiceRequest).get();
      if (deleteServiceOp.getDone()) {
        System.out.println("服务删除成功");
      }

      // ------------------- 示例2:删除指定服务下的指定版本 -------------------
      // 替换为你要删除的版本ID
      String versionId = "your-version-id";
      DeleteVersionRequest deleteVersionRequest = DeleteVersionRequest.newBuilder()
          .setName(String.format("apps/%s/services/%s/versions/%s", projectId, serviceId, versionId))
          .build();
      // 执行删除,等待操作完成
      Operation deleteVersionOp = client.deleteVersionAsync(deleteVersionRequest).get();
      if (deleteVersionOp.getDone()) {
        System.out.println("版本删除成功");
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

注意事项

  • 认证默认会自动读取环境中配置的GCP凭证:本地开发时可执行gcloud auth application-default login获取凭证,生产环境默认使用当前运行环境的服务账号凭证
  • 删除服务会连带删除该服务下的所有版本,操作不可逆,执行前请确认资源信息正确
  • 删除操作为异步长作业,示例中调用get()会阻塞等待操作完成,你也可以根据业务需求自行实现异步监听逻辑
  • 执行操作的身份需要持有roles/appengine.appAdmin权限,否则会报权限不足错误

内容的提问来源于stack exchange,提问作者Joshua Fox

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 10:09:02