首页 > 解决方案 > 应用程序包上传失败并出现错误:EISDIR:对目录的非法操作(Elastic Beanstalk 部署 VSTS)

问题描述

我正在尝试使用 Visual Studio > Visual Studio Team Services > Elastic Beanstalk 创建版本来设置 CICD 管道。

我已经能够检查我的代码,并启动我的构建管道,其中包含以下步骤来代替“发布人工制品”:

“创建 Elastic Beanstalk 修订版:”

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

错误输出如下:

2018-07-30T04:46:22.7765736Z ##[section]开始:创建 Elastic Beanstalk 修订:Sparky 2018-07-30T04:46:22.7771363Z ================ ==================================================== =========== 2018-07-30T04:46:22.7771634Z 任务:AWS Elastic Beanstalk 创建版本 2018-07-30T04:46:22.7771964Z 描述:创建应用程序修订以部署到环境。2018-07-30T04:46:22.7772192Z 版本:1.0.21 2018-07-30T04:46:22.7772403Z 作者:Amazon Web Services 2018-07-30T04:46:22.7772908Z 帮助:请参阅AWS Elastic Beanstalk 用户指南 有关使用 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-southeast-2-153247006570 应用程序包2018-07-30T04:46:24.9038683Z应用程序包上传失败并出现错误:EISDIR:对目录的非法操作,请阅读{ 错误:EISDIR:对目录的非法操作,阅读 2018-07-30T04:46:24.9047409Z 将应用程序包 D:\a\1\a 上传到存储桶中的对象 Sparky/a-cicd_test.zip elasticbeanstalk-ap-southeast- 2-153247006570 2018-07-30T04:46:24.9048878Z ##[错误]错误:EISDIR:对目录的非法操作,读取 2018-07-30T04:46:24.9053846Z 在错误(本机)错误:-4068,代码: 'EISDIR', 系统调用: 'read' } 2018-07-30T04:46:24.9172250Z ##[section]Finishing: Create Elastic Beanstalk Revision: Sparky

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

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

在此处输入图像描述

构建扩展是https://aws.amazon.com/vsts/并回顾我的屏幕截图和我在此处遵循的说明https://aws.amazon.com/blogs/developer/deploying-net-web-applications -using-aws-elastic-beanstalk-with-visual-studio-team-services/我刚刚意识到一个错误!我没有在 web 部署存档中指定文件名。

我变了

$(build.artifactstaging 目录)

$(build.artifactstaging 目录)\SparkIdeaGenerator.zip

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

在此处输入图像描述

显然我不明白这个构建任务的限制。我认为它会创建修订版并部署代码。它没有。我下载的工具集中只有一个可用的其他 Elastic Beanstalk 构建任务,即“创建应用程序”。我不想要这个,因为我已经有了应用程序,我只想更新它。我将进一步研究这一点,因为我需要完整的端到端自动化、提交代码、运行构建、部署代码、更新站点。

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

标签: continuous-integrationazure-devopsamazon-elastic-beanstalkcontinuous-deployment

解决方案


该过程定义在:https : //docs.aws.amazon.com/vsts/latest/userguide/tutorial-eb.html 它声明您使用 zip 文件名和 $(build.artifactstagingdirectory),就像什么上面已经确定了。
这似乎可以解决问题。


推荐阅读