Continuous integration 上载应用程序包失败,错误为:EISDIR:目录上的非法操作(Elastic Beanstalk deploy VSTS)

Continuous integration 上载应用程序包失败,错误为:EISDIR:目录上的非法操作(Elastic Beanstalk deploy VSTS),continuous-integration,azure-devops,amazon-elastic-beanstalk,continuous-deployment,Continuous Integration,Azure Devops,Amazon Elastic Beanstalk,Continuous Deployment,我正在尝试使用Visual Studio>Visual Studio团队服务>Elastic Beanstalk创建版本设置CICD管道 我已经能够签入我的代码OK,并启动我的构建管道,其中包含以下步骤来代替“发布工件”: “创建弹性豆茎修订版:” 此步骤附加到具有管理员权限的AWS IAM用户。当我尝试运行管道以通过此方法部署ASP.NET应用程序(Webforms,所以不是Core)时,此步骤失败 错误输出如下所示: 2018-07-30T04:46:22.7765736Z###[部分]开始

我正在尝试使用Visual Studio>Visual Studio团队服务>Elastic Beanstalk创建版本设置CICD管道

我已经能够签入我的代码OK,并启动我的构建管道,其中包含以下步骤来代替“发布工件”:

“创建弹性豆茎修订版:”

此步骤附加到具有管理员权限的AWS IAM用户。当我尝试运行管道以通过此方法部署ASP.NET应用程序(Webforms,所以不是Core)时,此步骤失败

错误输出如下所示:

2018-07-30T04:46:22.7765736Z###[部分]开始:创造弹性 豆茎修订版:Sparky 2018-07-30T04:46:22.7771363Z ======================================================================================================2018-07-30T04:46:22.7771634Z任务:AWS弹性豆茎 创建版本2018-07-30T04:46:22.7771964Z描述:创建 用于部署到环境的应用程序修订。 2018-07-30T04:46:22.7772192Z版本:1.0.21 2018-07-30T04:46:22.7772403Z作者:亚马逊网络服务 2018-07-30T04:46:22.7772908Z帮助:请参阅 有关使用AWS Elastic Beanstalk部署应用程序的更多详细信息。 2018-07-30T04:46:22.7773336Z ====================================================================================2018-07-30T04:46:23.2641747Z ac747f99-1789-4d43-86c5-c8283d1a72c0 存在true 2018-07-30T04:46:23.2671026Z部署类型设置为aspnet 2018-07-30T04:46:24.8994140Z确定S3铲斗 elasticbeanstalk-ap-东南-2-153247006570用于存储应用程序 bundle 2018-07-30T04:46:24.9038683Z应用程序bundle的上传 失败,错误为:EISDIR:目录上的非法操作,读取{ 错误:EISDIR:目录上的非法操作,读取 2018-07-30T04:46:24.9047409Z上传应用程序包D:\a\1\a至 桶中的对象Sparky/a-cicd_test.zip elasticbeanstalk-ap-Southwest-2-153247006570 2018-07-30T04:46:24.9048878Z###[错误]错误:EISDIR:非法操作 在目录上,错误读取2018-07-30T04:46:24.9053846Z (本机)错误号:-4068,代码:'EISDIR',系统调用:'read'} 2018-07-30T04:46:24.9172250Z###[章节]整理:创造弹性 豆茎修订版:Sparky

我在网上几乎找不到关于这个错误的结果。我不知道如何解决它。有什么想法吗?我知道这不是IAM权限,因为我只是为了测试而对AWS用户使用ADMIN

编辑:添加了生成定义的图像。(注意,我真的不知道如何使用版本标签输出变量,所以只需要在那里放一些东西,但我不认为这是问题所在,这个失败完全是另外一回事。我只是按照在线示例/教程进行基本部署)

构建扩展正在进行,回顾我的屏幕截图和我在这里遵循的说明,我刚刚意识到一个错误!我没有在web部署存档中指定文件名

我变了

$(build.artifactstagingdirectory)

$(build.artifactstagingdirectory)\sparkideGenerator.zip

建造成功了!然而,很明显,我不理解这个构建任务的目的,因为它只在AWS中创建了一个应用程序修订版,实际上并没有部署更新的代码。这不是很好,因为我仍然需要进入控制台并单击“部署”。这似乎并不理想。我的意思是:

显然,我不理解这个构建任务的局限性。我认为它将创建修订版并部署代码。没有。在我下载的工具集中,只有另外一个Elastic Beanstalk构建任务可用,那就是“创建应用程序”。我不想要这个,因为我已经有了应用程序,我只想更新它。我将进一步探讨这一点,因为我需要完整的端到端自动化、提交代码、运行构建、部署代码、更新站点


不过,我会将问题标记为已回答,因为我已经通过使用解决方案本身的包名专门引用.zip解决了这个特定的问题/错误

该过程定义如下: 它声明您使用zip文件名和$(build.artifactstagingdirectory),就像上面标识的一样。

这似乎解决了这个问题。

您能分享一下构建定义的屏幕截图吗?
Create Elastic Beanstalk Revision
是自定义生成任务吗?您好,Cece,添加了屏幕截图,而且生成任务不是自定义的,它是标准生成任务,是用于visual studio team services的AWS工具包的一部分。我已经确认我引用的应用程序名称存在于AWS中,因为我以前使用AWS Toolkit for Visual Studio对其进行了部署。我也知道AWS凭证是可以的,因为为了测试,我临时给了他们管理员权限。我还可以确认正在使用的S3 bucket是否存在(并且包含直接通过VisualStudio进行的早期部署的代码修订版)?你能提供名字或链接吗?你提到了哪个例子/教程?谢谢你再次回复我,Cece,很抱歉没有在我的原始帖子中包含这些信息。构建扩展正在进行,回顾我的屏幕截图和我在这里遵循的说明,我刚刚意识到一个错误!我没有在web部署存档中指定文件名。我这样做了,构建成功了,但是它只是创建了一个站点的修订版,似乎没有部署它。嗯,你使用正确的任务吗?似乎您应该使用AWS Elastic Beanstalk部署应用程序任务。