[英]how do you create a google cloud project and service account using node js?
您如何以编程方式提供谷歌云项目、启用 API 并使用 node js 创建服务帐户?
谢谢
克里斯
答案就在 REST API 中。
假设您使用的是 Cloud Shell,首先通过运行以下命令安装 Node.JS 客户端库:
npm install googleapis --save
要创建项目,您可以使用资源管理器 API 方法“projects.create” ,如 Node.JS 代码示例中所示。 将my-project-id
替换为所需的项目 ID,并将my-project-name
替换为所需的项目名称:
const {google} = require('googleapis');
var cloudResourceManager = google.cloudresourcemanager('v1');
authorize(function(authClient) {
var request = {
resource: {
"projectId": "my-project-id", // TODO
"name": "my-project-name" // TODO
},
auth: authClient,
};
cloudResourceManager.projects.create(request, function(err, response) {
if (err) {
console.error(err);
return;
}
console.log(JSON.stringify(response, null, 2));
});
});
同样,您可以使用Cloud IAM API 'projects.serviceAccounts.create' 方法来创建服务帐号。 将my-project-id
替换为服务帐户将与之关联的项目 ID,并将my-service-account
替换为所需的服务帐户 ID:
const {google} = require('googleapis');
var iam = google.iam('v1');
authorize(function(authClient) {
var request = {
name: 'projects/my-project-id', // TODO
resource: {
"accountId": "my-service-account" // TODO
},
auth: authClient,
};
iam.projects.serviceAccounts.create(request, function(err, response) {
if (err) {
console.error(err);
return;
}
console.log(JSON.stringify(response, null, 2));
});
});
然后,要启用 API 或服务,请使用服务使用 API 'services.enable' 方法。 在这种情况下,我将启用Cloud Pub/Sub API 。 将123
替换为您的项目编号:
const {google} = require('googleapis');
var serviceUsage = google.serviceusage('v1');
authorize(function(authClient) {
var request = {
name: "projects/123/services/pubsub.googleapis.com", // TODO
auth: authClient,
};
serviceUsage.services.enable(request, function(err, response) {
if (err) {
console.error(err);
return;
}
console.log(JSON.stringify(response, null, 2));
});
});
或者,您可以使用“services.batchEnable”方法在一次调用中启用多个 API。 您可以在此处找到可以启用的 API 的完整列表。
您可以定义每个调用:
function authorize(callback) {
google.auth.getClient({
scopes: ['https://www.googleapis.com/auth/cloud-platform']
}).then(client => {
callback(client);
}).catch(err => {
console.error('authentication failed: ', err);
});
}
请注意,您应该根据自己的需要调整代码,对其进行简化,并修改或添加 API 调用所需的任何其他参数。
部署管理器允许您供应所有这些资源,并且可以通过 API 触发。
GitHub 上甚至有一个官方示例,它执行以下操作:
请记住替换config.yaml
文件中的值。 要获取结算帐号 ID,可以使用billingAccounts.list方法,要获取组织 ID,可以使用gcloud organizations list
命令。
请记住,您需要设置示例存储库的 README 文件中指定的要求,但这只需要做一次。 DM 服务帐号的权限可以在 Cloud Console 的管理资源部分中设置。
更改所需的配置后,您可以使用gcloud deployment-manager deployments create
命令测试部署,并通过添加--log-http
标志将请求正文发送到Deployments: insert API。 请注意,您感兴趣的是第一个请求,其他请求用于检查操作的进度。
最后,通过请求正文内容,您可以更改所需的值并使用 nodejs 调用 API。 这篇文章提供了有关如何使用 google-api-nodejs-client 创建部署的示例。
使用部署管理器的优点是可以在单个请求中创建所有资源。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.