使用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], } ); }
关键说明
- 资源类型替换:用
web.StaticSiteAppSettings替代web.WebAppApplicationSettings,这是Azure Native Provider中专门为静态Web App设计的应用配置资源。 - 参数调整:新增
staticSiteName参数指定目标静态Web App的名称,而原name参数固定为"appsettings"(这是静态Web App配置资源的固定标识符)。 - 依赖处理:保留
dependsOn确保配置资源在静态Web App创建完成后再部署,避免时序问题。
内容的提问来源于stack exchange,提问作者TheDentist
相关产品推荐
相关产品推荐

