我正在尝试使用Visual Studio> Visual Studio Team Services> Elastic Beanstalk Create版本设置CICD管道。
我已经能够将代码检入OK,然后启动构建管道,该管道包含以下步骤来代替“ publish artefact”:
“创建Elastic Beanstalk修订版:”
此步骤附加到具有管理员特权的AWS IAM用户。当我尝试通过此方法运行管道以部署ASP.NET应用程序(Webforms,而不是Core)时,此步骤将失败。
错误输出如下:
2018-07-30T04:46:22.7765736Z ## [section]开始:创建弹性 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 User Guide 有关使用AWS Elastic Beanstalk部署应用程序的更多详细信息。 2018-07-30T04:46:22.7773336Z ================================================== ============================= 2018年7月30日T04:46:23.2641747Z ac747f99-1789-4d43-86c5-c8283d1a72c0 存在真实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”,系统调用:“读取”} 2018-07-30T04:46:24.9172250Z ## [section]完成:创建弹性 Beanstalk修订:Sparky
关于此错误,我在网上几乎找不到(几乎没有)结果。我不确定如何解决。有任何想法吗?我知道这不是IAM权限,因为我仅将ADMIN用于AWS用户用于测试。
编辑:添加了构建定义的图像。 (请注意,我真的不知道如何使用版本标签输出变量,因此只在其中放一些东西,但我不认为这是问题,完全是其他的失败。我只是在关注在线示例/教程基本部署)
构建扩展名是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.artifactstagingdirectory)
收件人
$(build.artifactstagingdirectory)\ SparkIdeaGenerator.zip
构建成功!但是,显然,我不了解此构建任务的目的,因为它仅在AWS中创建了一个应用程序修订版,实际上并未部署更新的代码。这不是很好,因为我仍然需要进入控制台并单击“部署”。这似乎并不理想。这就是我的意思:
很显然,我不了解此构建任务的局限性。我以为它将创建修订并部署代码。没有。我下载的工具集中只有一个其他的Elastic Beanstalk构建任务,即“创建应用程序”。我不想要这个,因为我已经有了该应用程序,所以我只想更新它。我将对此做进一步的研究,因为我需要完整的端到端自动化,提交代码,运行构建,部署代码,更新站点。
但是,我将通过使用解决方案本身的程序包名称专门引用.zip来解决此特定问题/错误,因此将问题标记为已回答。
答案 0 :(得分:0)
该过程在以下位置定义:https://docs.aws.amazon.com/vsts/latest/userguide/tutorial-eb.html
它声明您将zip文件名与$(build.artifactstagingdirectory)一起使用,就像上面标识的一样。
这确实可以解决问题。