Azure 静态 Web 应用程序:在 Azure DevOps 中转换 Blazor webassembly appsettings.json
Azure Static Web App: transform Blazor webassembly appsettings.json in Azure DevOps
我有一个具有以下结构的静态 Blazor Web 应用程序:
和 appsettings.json 中的以下设置:
{
"ApiUrl": "http://localhost:7071/api/"
}
我还有一个带有以下 yaml 的 Azure DevOps 管道:
trigger:
- main
pool:
vmImage: ubuntu-latest
steps:
- checkout: self
submodules: true
- task: AzureStaticWebApp@0
inputs:
app_location: '/Atlas.Blazor'
api_location: '/Atlas.InternalHost'
output_location: '/wwwroot'
azure_static_web_apps_api_token: $(deployment_token)
如何在部署期间使用变量更新应用程序设置?
我认为在 Oryx 容器内发生的 build/deployment 期间不可能操纵配置文件。您可以做的是在管道 运行 期间操作文件,例如,标记特定于环境的配置值并在管道 运行 期间替换标记。要使用单个 json 文件(即只有一个包含本地主机值的文件存储在版本控制中)来实现此目的,您可以使用 Colin 的 ALM Corner 扩展集合中的 tokenizer- 和 replace tokens -task(https://marketplace.visualstudio.com/items?itemName=colinsalmcorner.colinsalmcorner-buildtasks).另一种选择是在版本控制中拥有多个特定于环境的配置文件,并在管道 运行.
期间通过 appsettings.json 复制一个特定的配置文件
不确定是否可以在此处使用静态 Web 应用程序环境变量,但如果有人使用 GitHub Actions 正在寻找它,请在此处添加它 - Azure Pipelines 尚不支持它们。
最后成功了
trigger:
- main
pool:
vmImage: ubuntu-latest
steps:
- checkout: self
submodules: true
- task: FileTransform@1
inputs:
folderPath: '$(System.DefaultWorkingDirectory)/Atlas.Blazor/wwwroot'
fileType: 'json'
targetFiles: '**/appsettings.json'
- task: AzureStaticWebApp@0
inputs:
app_location: '/Atlas.Blazor'
api_location: '/Atlas.InternalHost'
output_location: '/wwwroot'
azure_static_web_apps_api_token: $(deployment_token)
我有一个具有以下结构的静态 Blazor Web 应用程序:
和 appsettings.json 中的以下设置:
{
"ApiUrl": "http://localhost:7071/api/"
}
我还有一个带有以下 yaml 的 Azure DevOps 管道:
trigger:
- main
pool:
vmImage: ubuntu-latest
steps:
- checkout: self
submodules: true
- task: AzureStaticWebApp@0
inputs:
app_location: '/Atlas.Blazor'
api_location: '/Atlas.InternalHost'
output_location: '/wwwroot'
azure_static_web_apps_api_token: $(deployment_token)
如何在部署期间使用变量更新应用程序设置?
我认为在 Oryx 容器内发生的 build/deployment 期间不可能操纵配置文件。您可以做的是在管道 运行 期间操作文件,例如,标记特定于环境的配置值并在管道 运行 期间替换标记。要使用单个 json 文件(即只有一个包含本地主机值的文件存储在版本控制中)来实现此目的,您可以使用 Colin 的 ALM Corner 扩展集合中的 tokenizer- 和 replace tokens -task(https://marketplace.visualstudio.com/items?itemName=colinsalmcorner.colinsalmcorner-buildtasks).另一种选择是在版本控制中拥有多个特定于环境的配置文件,并在管道 运行.
期间通过 appsettings.json 复制一个特定的配置文件不确定是否可以在此处使用静态 Web 应用程序环境变量,但如果有人使用 GitHub Actions 正在寻找它,请在此处添加它 - Azure Pipelines 尚不支持它们。
最后成功了
trigger:
- main
pool:
vmImage: ubuntu-latest
steps:
- checkout: self
submodules: true
- task: FileTransform@1
inputs:
folderPath: '$(System.DefaultWorkingDirectory)/Atlas.Blazor/wwwroot'
fileType: 'json'
targetFiles: '**/appsettings.json'
- task: AzureStaticWebApp@0
inputs:
app_location: '/Atlas.Blazor'
api_location: '/Atlas.InternalHost'
output_location: '/wwwroot'
azure_static_web_apps_api_token: $(deployment_token)