You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Github Secrets在Azure .NET 6 API部署中未同步至环境变量问题

解决GitHub Workflow部署Azure Web App时环境变量(Firebase凭证)无法同步的问题

你之前的误区在于:GitHub Workflow里配置的env只在GitHub的Runner服务器环境中生效,不会自动同步到Azure Web App的运行环境。Azure Web App的环境变量由自身的「应用设置」管理,必须主动将GitHub Secrets注入到这里才能生效。下面给你几个可行的解决方法:

方法一:通过部署动作直接设置应用设置(最简洁)

利用azure/webapps-deploy动作自带的app-settings参数,在部署时直接把Firebase凭证写入Azure Web App的应用设置:

修改你workflow里的deploy job步骤:

deploy:
  runs-on: windows-latest
  needs: build
  environment:
    name: 'Development'
    url: ${{ steps.deploy-to-webapp.outputs.webapp-url }}

  steps:
    - name: Download artifact from build job
      uses: actions/download-artifact@v3
      with:
        name: .net-app
        
    - name: Deploy to Azure Web App
      id: deploy-to-webapp
      uses: azure/webapps-deploy@v2
      with:
        app-name: '<你的Azure Web App名称>'
        slot-name: 'Production' # 若使用部署槽,替换为对应名称
        package: '.'
        # 新增该行配置应用设置
        app-settings: |
          GOOGLE_APPLICATION_CREDENTIALS=${{ secrets.FIREBASE_CONFIG }}

方法二:用Azure CLI单独设置应用设置

如果需要批量配置多个变量或更灵活的操作,可在部署前添加Azure CLI步骤:

deploy:
  runs-on: windows-latest
  needs: build
  environment:
    name: 'Development'
    url: ${{ steps.deploy-to-webapp.outputs.webapp-url }}

  steps:
    - name: Azure Login
      uses: azure/login@v1
      with:
        creds: ${{ secrets.AZURE_CREDENTIALS }} # 该凭证你已在GitHub Secrets中配置(模板自带要求)
        
    - name: 将Firebase凭证写入Azure应用设置
      run: |
        az webapp config appsettings set --name "<你的Web App名称>" --resource-group "<你的资源组名称>" --settings GOOGLE_APPLICATION_CREDENTIALS="${{ secrets.FIREBASE_CONFIG }}"
        
    - name: Download artifact from build job
      uses: actions/download-artifact@v3
      with:
        name: .net-app
        
    - name: Deploy to Azure Web App
      id: deploy-to-webapp
      uses: azure/webapps-deploy@v2
      # 原有部署参数...

方法三:手动在Azure Portal配置(适合不频繁变更场景)

直接登录Azure Portal,找到目标Web App:

  1. 左侧菜单选择「配置」→「应用设置」
  2. 点击「新建应用设置」,键填GOOGLE_APPLICATION_CREDENTIALS,值粘贴Firebase JSON凭证内容
  3. 点击「保存」,Web App会自动重启生效

额外说明

  • 你之前在build job里配置的env仅在构建阶段的Runner中可用(比如那个echo步骤能打印值),但部署后Azure环境完全无法获取该值,因此无需在build阶段配置这个变量(除非构建过程本身需要用到)。
  • 若Firebase凭证是JSON格式,Azure会自动处理转义,无需额外操作。

内容的提问来源于stack exchange,提问作者Chris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 23:50:26