如何从Google Cloud Function上下文中使用Google App Engine Admin API进行身份验证

时间:2019-08-18 21:35:07

标签: google-app-engine google-cloud-platform google-cloud-functions

我正尝试使用Google Cloud Function在不使用时关闭Google App Engine Flex环境。我正在努力寻找使用nodejs GoogleAPI客户端进行身份验证的最佳方法。

我当然不需要用户输入吗?

1 个答案:

答案 0 :(得分:0)

如果您指定了必需的OAuth范围,则花了一些时间才发现捆绑的GoogleAuth库实际上获取了Cloud Function环境的权限。这种方法的优点在于,无需管理任何密钥!

const {google} = require('googleapis');
const gae = google.appengine('v1');

const auth = new google.auth.GoogleAuth({
    scopes: ['https://www.googleapis.com/auth/appengine.admin',
             'https://www.googleapis.com/auth/cloud-platform',
             'https://www.googleapis.com/auth/cloud-platform.read-only']
});

async function trigger(event, context) {
    const authClient = await auth.getClient();
    const versionsResponse = await gae.apps.services.versions.list({
        auth: authClient,
        appsId: "<APP_ID>",
        servicesId: "<SERVICE_ID>",
        fields: "versions(id,name,servingStatus)"
    });
    // Rest of code ...   
}

我找到了代码here