本页介绍了如何检索项目元数据和修改现有项目设置。您还可以根据资源层次结构中特定项目的状态或显示名称来搜索这些项目。
查找项目名称、编号和 ID
如要与 Google Cloud 资源交互,您必须为每个请求提供标识性的项目信息。项目由项目 ID 和项目编号标识。
控制台
前往 Google Cloud 控制台中的欢迎页面。
从页面顶部的项目选择器中,选择您的项目。
项目名称、项目编号和项目 ID 会显示在欢迎标头后面。
获取现有项目
如需获取特定 Google Cloud 项目的详细元数据(例如项目的生命周期状态、创建时间和父资源),请使用 Google Cloud CLI 或 API。
您必须拥有 Project Owner 身份或浏览器角色 (roles/browser) 的权限,才能访问项目详细信息。
gcloud
在使用下面的命令数据之前,请先进行以下替换:
- PROJECT_ID: Google Cloud 项目 ID
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud projects describe PROJECT_ID
Windows (PowerShell)
gcloud projects describe PROJECT_ID
Windows (cmd.exe)
gcloud projects describe PROJECT_ID
REST
在使用任何请求数据之前,请先进行以下替换:
- PROJECT_ID: Google Cloud 项目 ID
HTTP 方法和网址:
GET https://cloudresourcemanager.googleapis.com/v3/projects/PROJECT_ID
请求 JSON 正文:
{}
如需发送请求,请选择以下方式之一:
curl
将请求正文保存在名为 request.json 的文件中,然后执行以下命令:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://cloudresourcemanager.googleapis.com/v3/projects/PROJECT_ID"
PowerShell
将请求正文保存在名为 request.json 的文件中,然后执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://cloudresourcemanager.googleapis.com/v3/projects/PROJECT_ID" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
{
"projectNumber": "464036093014",
"projectId": "our-project-123",
"lifecycleState": "ACTIVE",
"name": "my project",
"labels": {
"mylabel": "prod"
},
"createTime": "2016-01-07T21:59:43.314Z"
}
列出资源下的所有项目
如需列出直接属于资源子项的所有项目,请使用 v3 projects.list 方法,并在查询中指定父资源:
REST
在使用任何请求数据之前,请先进行以下替换:
- FOLDER_ID: Google Cloud 文件夹 ID
HTTP 方法和网址:
GET https://cloudresourcemanager.googleapis.com/v3/projects
请求 JSON 正文:
{
"parent": "folders/662951040570"
}
如需发送请求,请选择以下方式之一:
curl
将请求正文保存在名为 request.json 的文件中,然后执行以下命令:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://cloudresourcemanager.googleapis.com/v3/projects"
PowerShell
将请求正文保存在名为 request.json 的文件中,然后执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://cloudresourcemanager.googleapis.com/v3/projects" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
{
"projectNumber": "464036093014",
"projectId": "our-project-123",
"lifecycleState": "ACTIVE",
"name": "my project",
"labels": {
"mylabel": "prod"
},
"createTime": "2016-01-07T21:59:43.314Z"
}
搜索项目
如需查找符合特定条件(例如显示名称前缀或特定生命周期状态)的项目,请使用 projects.search 方法或 gcloud alpha resource-manager projects search 命令。
搜索范围包括您拥有 resourcemanager.projects.get 权限的所有项目。
查询语法
您可以使用 --query 标志 (gcloud) 或 query 参数 (API) 过滤搜索结果。常见的搜索过滤条件包括:
displayName:项目的简单易记的名称。state:项目的生命周期状态,例如ACTIVE或DELETE_REQUESTEDparent.type和parent.id:按特定组织或文件夹过滤结果。
权限
如果您在查询中指定了父级(例如 parent:folders/123),则必须拥有该父级的 resourcemanager.projects.list 权限。如果您具有此权限,则在应用其余过滤条件后,系统将返回父级下的所有项目。
如果您没有此权限,则在应用其余过滤条件后,系统将返回您具有 resourcemanager.projects.get 权限的所有项目。
如果您未指定父级,则结果会包含您拥有 resourcemanager.projects.get 权限的所有项目。
gcloud
在使用下面的命令数据之前,请先进行以下替换:
- PROJECT_ID: Google Cloud 项目 ID
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud alpha projects search --query="name:z*"
Windows (PowerShell)
gcloud alpha projects search --query="name:z*"
Windows (cmd.exe)
gcloud alpha projects search --query="name:z*"
您应该会收到类似如下所示的响应:
The response contains the projects with names starting with 'z'
REST
HTTP 方法和网址:
GET https://cloudresourcemanager.googleapis.com/v3/projects:search?query=displayName%3ATokyo%2BRain
请求 JSON 正文:
{}
如需发送请求,请选择以下方式之一:
curl
将请求正文保存在名为 request.json 的文件中,然后执行以下命令:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://cloudresourcemanager.googleapis.com/v3/projects:search?query=displayName%3ATokyo%2BRain"
PowerShell
将请求正文保存在名为 request.json 的文件中,然后执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://cloudresourcemanager.googleapis.com/v3/projects:search?query=displayName%3ATokyo%2BRain" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
{
"projects": [
{
"name": "projects/951040570662",
"parent": "folders/662951040570",
"projectId": "tokyo-rain-123",
"state": "ACTIVE",
"displayName": "Tokyo Rain",
"createTime": "2013-11-13T20:31:53.308Z",
"updateTime": "2013-11-13T20:31:53.308Z",
"etag": "BwWUlZ6XEfY="
}
]
}
更新项目
您可以查看项目名称、标签和标记。如需详细了解如何更新项目,请参阅项目 API 参考文档页面。如需更新项目,请使用以下方法之一:
控制台
如需使用 Google Cloud 控制台更新项目的名称或标签,请执行以下操作:
gcloud
-
在 Google Cloud 控制台中,激活 Cloud Shell。
Cloud Shell 会话随即会在 Google Cloud 控制台的底部启动,并显示命令行提示符。Cloud Shell 是一个已安装 Google Cloud CLI 且已为当前项目设置值的 Shell 环境。该会话可能需要几秒钟时间来完成初始化。
要更新项目名称,请使用
gcloud alpha projects update命令:gcloud alpha projects update PROJECT_ID \ --name=NAME \ --update-labels=KEY=VALUE, ...
替换以下内容:
PROJECT_ID:要更新的项目的 ID。NAME:您要为项目分配的新名称。KEY:要更新的标签的键。VALUE:要更新的标签的值。
如需详细了解此命令可使用的其他标志,请参阅 Google Cloud CLI SDK。
REST
如需更新项目,请执行以下操作:
使用
projects.get方法获取project对象。修改要更新的字段。
调用
projects.patch方法。
以下示例将项目的显示名称更新为 myproject,并将 color 标签设置为 red:
请求:
PATCH https://cloudresourcemanager.googleapis.com/v3/projects/PROJECT_NUMBER?updateMask=displayName,labels
其中,PROJECT_NUMBER 是要更新的项目的数字 ID。
请求 JSON 正文:
{
"displayName": "myproject",
"labels": {
"color": "red"
}
}
回答:
{
"projects": [
{
"name": "projects/951054970012",
"parent": "folders/662951040570",
"projectId": "Osaka-rain-234",
"state": "ACTIVE",
"displayName": "myproject",
"createTime": "2013-11-13T20:31:53.308Z",
"updateTime": "2013-11-13T20:35:42.308Z",
"etag": "BwWUlZ6XEfY=",
"labels": {
"color": "red"
}
}
]
}
后续步骤
- 了解如何在资源层次结构中移动项目。
- 了解如何将项目从一个组织资源迁移到另一个组织资源。