我正在尝试通过 CLI 将我的 .Net Core Web API 解决方案部署到 Elastic Beanstalk 中,但我遇到了一个问题。我能够毫无错误地发布我的项目并成功部署应用程序。我的问题是,当我访问 URL 时,我仍然看到示例应用程序。
我可以对我的应用程序、web.config 或 Elastic Beanstalk 中的配置进行更改,以便部署我的 Web API?
发布命令
dotnet publish My.WebAPI/My.WebAPI.csproj --runtime win10-x64 --output my-api
网络.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath=".MyWebAPI.exe" stdoutLogEnabled="false" stdoutLogFile=".logsstdout" />
</system.webServer>
</location>
</configuration>
aws-windows-deployment-manifest.json
{
"manifestVersion": 1,
"deployments": {
"aspNetCoreWeb": [
{
"name": "my-webapi",
"parameters": {
"appBundle": ".",
"iisPath": "/",
"iisWebSite": "Default Web Site"
}
}
]
}
}
解决方案是修复我压缩发布内容的方式。我的 Jenkins 部署脚本正在生成一个自定义 zip。我正在将编译的代码压缩到子目录中,因此我的部署失败。我更新了我们的 zip 命令以展平存档,因此所有部署文件都在一个平面文件中。
根据 AWS 文档:https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/applications-sourcebundle.html(以下相关段落)
当您使用 AWS Elastic Beanstalk 控制台部署新应用程序或应用程序版本时,您需要上传源包。您的源捆绑包必须满足以下要求:
由单个 ZIP 文件或 WAR 文件
- 组成(您可以在 ZIP 文件中包含多个 WAR 文件)
- 不超过 512 MB
- 不包括父文件夹或顶级目录(子目录很好)