将JSON作为环境变量部署Google Cloud Function时出错的解决咨询
解决Google Cloud Function部署时JSON环境变量解析错误的问题
问题原因
当直接传递JSON格式的密钥作为环境变量时,JSON中的双引号、冒号等字符会被google-github-actions/deploy-cloud-functions的环境变量解析器误判为多个独立的KEY=VALUE对,比如"project_id": "project_id"会被当成单独条目,但它缺少=符号,因此触发解析错误。
正确配置方式
将JSON字符串用单引号包裹,让解析器把整个JSON视为一个完整的环境变量值,避免拆分内部结构。修改后的YAML配置如下:
- name: Deploy id: 'deploy' uses: 'google-github-actions/deploy-cloud-functions@v1' with: name: 'your-function-name' runtime: 'python311' entry_point: 'your-entry-point' source_dir: ./ project_id: 'your-project-id' env_vars: | GDRIVE_API_CREDENTIALS='${{ secrets.GDRIVE_API_CREDENTIALS }}'
额外注意事项
- 如果JSON字符串本身包含单引号,需要将这些单引号转义为
\'(直接在GitHub Secrets中修改即可)。 - 确保GitHub Secrets中存储的JSON完整且格式正确,无多余换行或语法错误。
- 部署完成后,可在Google Cloud Console的函数环境变量页面验证,确认JSON值与手动设置的一致。
内容的提问来源于stack exchange,提问作者Gabriel Belloni
相关产品推荐
相关产品推荐

