当前位置: 首页 > 知识库问答 >
问题:

从Google云函数创建Google函数

松和泰
2023-03-14

我在nodeJS中有一个主要的谷歌云功能。在这个函数中,我希望通过编程在同一个项目中创建另一个云函数。这个新的云函数的代码可以存储在谷歌云存储的zip文件中。我试着跟着这里的导游走:https://cloud.google.com/functions/docs/reference/rest/v1/projects.locations.functions/create

我能够在测试模拟器中运行查询,但当我在谷歌云函数中运行它时,我不知道确切的代码!最好我想在NodeJS中这样做。否则就是Python。

谁能帮帮我吗?

共有1个答案

阎庆
2023-03-14

我用python实现了这一点:

>

  • 创建第一个云函数hello_world

    压缩函数并将其移动到谷歌云存储。

    创建第二个云功能(默认情况下是使用App Engine默认服务帐户创建的,该帐户具有编辑器角色。如果您将分配不同的服务帐户作为身份,请确保您的服务帐户具有查询元数据服务器和创建云功能的权限)

    
    import requests
    import json
    
    
    def make_func(request):
    
    
        # Get the access token from the metadata server
        metadata_server_token_url = 'http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token?scopes=https://www.googleapis.com/auth/cloud-platform'
        token_request_headers = {'Metadata-Flavor': 'Google'}
        token_response = requests.get(metadata_server_token_url, headers=token_request_headers)
        token_response_decoded = token_response.content.decode("utf-8")
        jwt = json.loads(token_response_decoded)['access_token']
    
        # Use the api you mentioned to create the function
        response = requests.post('https://cloudfunctions.googleapis.com/v1/projects/your-project/locations/us-central1/functions',
                                   json={"name":"projects/your-project/locations/us-central1/functions/funct","runtime":"python37","sourceArchiveUrl":"gs://bucket/main.zip","entryPoint":"hello_world","httpsTrigger": {} },
                                   headers={'Accept': 'application/json', 
                                            'Content-Type': 'application/json',
                                            'Authorization': 'Bearer {}'.format(jwt)} )   
        if response:
             return 'Success! Function Created'
        else:
             return str(response.json())  
    
    
    

    如果你有任何问题,请告诉我

  •  类似资料:
    • 我有一个运行MySQL第二代的Google Cloud SQL实例和一个Node.js云函数。 index.js

    • 这对我来说很神秘。我知道函数被正确调用是因为 > 我可以在云功能日志“Received query Roud and Cleary:”中看到我的打印内容。 当删除行并返回一些虚拟数据时,函数将正确执行。

    • 有人能告诉我如何初始化存储,以便它工作并返回一个有效的对象。 我的Node.js版本是8.12.0,firebase版本是5.1.1

    • 我们将Google Cloud Datastore用于Google App Engine(GAE)应用程序。在我们的项目改造期间,我们希望将数据库从Datastore迁移到Google CloudSQL。 我们在数据存储中约有1 TB数据,不包括索引。 如何从数据存储迁移到云SQL,是否有任何现有的开源解决方案可用于此。 我已经检查了下面的一个https://cloud.google.com/da

    • 在React应用程序中使用Firestore,我正在测试使用Google云函数获取一个文档字段,然后使用该字段在Firestore中创建一个新字段。前几天我让它工作了,现在不行了。 这是我在谷歌云功能日志中得到的错误: 错误:无法解码文件快照中FiresteValue:{"stringValue":"sox"}的类型。_decodeValue 下面是我使用的代码。它与此处的代码非常相似:https

    • 在我的新公司,我是一名数据工程师,负责构建google cloud platform(GCP)批处理ETL管道。我的团队的数据科学家最近给了我一个数据模型(用Python3.6编写的.py文件)。 数据模型有一个主函数,我可以调用它并获得一个dataframe作为输出,我打算将这个dataframe附加到一个bigquery表中。我是否可以只导入这个主函数,并使用apache beam(Dataf