Aws lambda 如何授权Lambda函数发布到BigQuery?

Aws lambda 如何授权Lambda函数发布到BigQuery?,aws-lambda,google-bigquery,aws-kms,Aws Lambda,Google Bigquery,Aws Kms,在过去的两天里,我一直在研究这个问题。我想使用Lambda作为Cron操作,从数据库中获取数据并将其发布到BigQuery 我想知道如何使用Lambda函数中的服务帐户文件授权访问BigQuery 上下文 我正在使用以下工具: 部署我的Lambda BigQuerySDK 尝试 使用sls invoke local--function main,在我的本地计算机上一切正常。我已经在我的.env中设置了GOOGLE\u APPLICATION\u CREDENTIALS=/path/to/k

在过去的两天里,我一直在研究这个问题。我想使用Lambda作为Cron操作,从数据库中获取数据并将其发布到BigQuery

我想知道如何使用Lambda函数中的服务帐户文件授权访问BigQuery

上下文 我正在使用以下工具:

  • 部署我的Lambda
  • BigQuerySDK
尝试
  • 使用
    sls invoke local--function main
    ,在我的本地计算机上一切正常。我已经在我的
    .env
    中设置了
    GOOGLE\u APPLICATION\u CREDENTIALS=/path/to/key.json
    。但是,显然
    /path/to/key.json
    是一个本地路径
  • 作为测试,我尝试将我的服务帐户文件放入项目的根目录,并设置
    GOOGLE\u APPLICATION\u CREDENTIALS=./key.json
    (注意,我使用了相对路径)。这在本地或云中都不起作用。是的,我知道这不是一个好的做法——我只是想让它发挥作用。我相信这可能是一个网页的事情,虽然我完全不知道如何使用网页
  • 我还考虑过使用AWS KMS对json进行加密,并将其作为键值对存储在参数存储中(这是我最终想要使用它的方式)。但是,我注意到BigQuery需要一个文件路径,而不是秘密本身

问题: 所以我的问题是:

  • 是否可以使用文件路径和
    .env
    文件使用无服务器框架连接到BigQuery
  • 为什么Google不允许您使用访问键连接到BigQuery?相反,我必须指定文件的路径
  • 有没有办法将文件存储在KMS中,并在部署到Lambda时对其进行解密

  • 在GCP中创建您的服务帐户->为其提供适当的ACL(本例中为BigQuery)->使用Lambda函数/zip对其进行打包->在代码中引用它,如下所示:@GrahamPolley高层结构不是我的问题。问题主要是(用Lambda函数/zip打包)在您描述的步骤中。