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

使用Pulumi Azure Native为静态Web App添配置遇404错误求助

Azure静态Web App添加应用配置时出现404错误的解决方法

问题描述

使用Pulumi Azure Native Provider部署基础设施,成功创建Azure静态Web App(SWA),但尝试为其添加WebAppApplicationSettings时,出现404错误提示资源未找到。

相关代码

静态Web App创建代码

function createStaticSite(
  resourceGroupArgs: RessourceGroupArgs,
  userAssignedIdentity: managedidentity.UserAssignedIdentity
) {
  const rndSwaName = new random.RandomId("swa", {
    byteLength: 8,
    keepers: { keep: resourceGroupArgs.resourceGroupName },
  });

  return new web.StaticSite(
    `swa-`,
    {
      allowConfigFileUpdates: true,
      location: "West Europe",
      branch: "develop",
      name: rndSwaName.hex.apply((v) => `swa${v}`),
      repositoryUrl: "",
      resourceGroupName: resourceGroupArgs.resourceGroupName,
      sku: {
        name: "Standard",
        tier: "Standard",
      },
      stagingEnvironmentPolicy: web.StagingEnvironmentPolicy.Enabled,
      identity: {
        type: "UserAssigned",
        userAssignedIdentities: userAssignedIdentity.id.apply((id) => getId(id)),
      },
      buildProperties: {},
    },
    { dependsOn: [userAssignedIdentity] }
  );
}

const staticSite = createStaticSite(rgArgs, userAssignedIdentity);
const setting = createWebApplicationSetting(staticSite, rgArgs);

添加应用配置代码

function createWebApplicationSetting(
  staticApp: web.StaticSite,
  resourceGroupArgs: RessourceGroupArgs
) {
  return new web.WebAppApplicationSettings(
    "staticWebApplicationSetting",
    {
      name: staticApp.name,
      resourceGroupName: resourceGroupArgs.resourceGroupName,
      properties: {
        ClientId:"...",
        ClientSecret: "...",
      },
    },
    {
      dependsOn: [staticApp],
    }
  );
}

错误信息

azure-native:web:WebAppApplicationSettings (staticWebApplicationSetting):
error: autorest/azure: Service returned an error. Status=404 Code="ResourceNotFound" Message="The Resource '' under resource group '' was not found. For more details please go to https://aka.ms/ARMResourceNotFoundFix"

已排查步骤

  • 静态Web App已在Azure中成功创建;
  • 已通过dependsOn确保WebAppApplicationSettings依赖于静态Web App。

问题原因及解决方法

核心原因

你错误使用了针对普通Azure App Service的WebAppApplicationSettings资源来配置静态Web App。Azure静态Web App(Static Site)和普通Web App是不同的资源类型,对应的应用配置资源并不通用:

  • WebAppApplicationSettings对应Microsoft.Web/sites资源(普通Web App)
  • 静态Web App的应用配置需要使用StaticSiteAppSettings(对应Microsoft.Web/staticSites/config/appsettings资源)

修正后的代码

将createWebApplicationSetting函数替换为以下代码:

function createWebApplicationSetting(
  staticApp: web.StaticSite,
  resourceGroupArgs: RessourceGroupArgs
) {
  return new web.StaticSiteAppSettings(
    "staticWebApplicationSetting",
    {
      name: "appsettings", // 静态Web App的配置项固定为"appsettings"
      staticSiteName: staticApp.name,
      resourceGroupName: resourceGroupArgs.resourceGroupName,
      properties: {
        ClientId:"...",
        ClientSecret: "...",
      },
    },
    {
      dependsOn: [staticApp],
    }
  );
}

关键说明

  1. 资源类型替换:用web.StaticSiteAppSettings替代web.WebAppApplicationSettings,这是Azure Native Provider中专门为静态Web App设计的应用配置资源。
  2. 参数调整:新增staticSiteName参数指定目标静态Web App的名称,而原name参数固定为"appsettings"(这是静态Web App配置资源的固定标识符)。
  3. 依赖处理:保留dependsOn确保配置资源在静态Web App创建完成后再部署,避免时序问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 09:20:54