【问题标题】:Azure Functions: Deploying to stage slot also deploys to production slotAzure Functions:部署到阶段槽也部署到生产槽
【发布时间】:2021-08-17 18:36:05
【问题描述】:

我有一个运行 Node.js 应用程序的 Azure Function App v3,该应用程序具有生产槽和阶段槽。它使用部署中心中创建的操作从 GitHub 部署。我有一个针对 prod 的部署操作和一个针对 stage 的部署操作,并且已验证 prod deploy 没有运行。

当 stage deploy Action 运行时,它是成功的,但代码最终会出现在 stage 和生产环境中。

“启用自动交换”已关闭。我也没有手动触发交换。

对于stg,YAML 如下所示:

- name: 'Run Azure Functions Action'
  uses: Azure/functions-action@v1.3.1
  id: fa
  with:
    app-name: ${{ env.AZURE_FUNCTIONAPP_NAME }}
    package: ${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }}
    publish-profile: ${{ secrets.AZURE_FUNCTIONAPP_PUBLISH_PROFILE_STAGE }}
    slot-name: 'stg'

对于production,YAML 如下所示:

- name: 'Run Azure Functions Action'
  uses: Azure/functions-action@v1.3.1
  id: fa
  with:
    app-name: ${{ env.AZURE_FUNCTIONAPP_NAME }}
    package: ${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }}
    publish-profile: ${{ secrets.AZURE_FUNCTIONAPP_PUBLISH_PROFILE }}
    slot-name: 'production'

这些似乎都与部署中心为每个插槽自动生成的内容相匹配。

【问题讨论】:

    标签: azure azure-functions azure-deployment


    【解决方案1】:

    问题在于 stg 插槽上的配置 > 应用程序设置 > WEBSITE_CONTENTSHAREproduction 插槽相同。

    因此,我相信这意味着来自任一部署的可交付成果都被放入同一个存储位置。所以阶段部署有效地覆盖了产品代码!

    我认为stg 插槽是使用门户创建的,所以我想这只是需要注意的地方。

    根据我今天学到的知识,我建议确保每个插槽的WEBSITE_CONTENTSHARE 都是唯一的。

    我现在不知道该设置是否也应该是“部署槽设置”。看起来应该是这样,但也许这会使交换无法正常工作?

    如果没有@ahmelsayed 的https://stackoverflow.com/a/50824960/12031280,我不会找到这个

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-05
      • 1970-01-01
      • 2016-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-08
      相关资源
      最近更新 更多