我试图用S3钩住我的GitHub repo,因此每次有提交时,AWS CodePipeline都会部署/
到目前为止,在我的管道中,
源代码可以工作(连接到GitHub并获取新的提交),但是
部署
失败,因为:操作执行失败捆绑类型必须是YAML或JSON
。
我是这样设置的:
行动名称:来源
- 操作提供程序:GitHub
- 存储库:帐户/回购
- 分支机构:硕士
- GitHub webhooks
计算类型: AWS Lambda
- 服务角色:myRole
- 部署设置:CodeDeployDefault.我的名字是什么?
AWS服务
- 选择将使用此角色的服务:Lambda/CodeDeploy
- 选择您的用例:CodeDeploy
- 政策:AWSCodeDeployRole
我明白在根文件夹中必须有一个
buildspec.yml
文件。我试过用一些我能找到的文件,但它们似乎不起作用。我做错了什么,或者我应该如何编辑构建规范文件来做我想要的?
使现代化
感谢@米兰Cermak。我明白我需要做:
CodePipeline:
阶段1:来源:与GitHub repo挂钩。这个正在工作。
- 阶段2:构建:使用CodeBuild,使用repo根文件夹中的
buildspec.yml
文件,仅获取想要的文件夹。 - 阶段3:部署:使用
Action Provider: S3
Input Artifacts: OutputArtifacts (result of stage 2).
Bucket: the bucket that hosts the static website.
CodePipeline工作。但是,输出只包含文件(. html),而不包含嵌套在公共文件夹中的文件夹。
我已经检查了这一点,并想出了如何删除路径的嵌套文件夹与
丢弃路径:是
,但我无法得到所有的子文件夹内的。/
Buildspec是针对代码构建的,正如t_yamo所指出的。
您使用的是CodeDeploy,它使用一个appspec.yml文件,在我的配置中类似于此。
version: 0.0
os: linux
files:
- source: /
destination: /path/to/destination
hooks:
BeforeInstall:
- location: /UnzipResourceBundle.sh
ApplicationStart:
- location: /RestartServer.sh
timeout: 3600
UnzipResourceBundle.sh只是一个bash脚本,可以用来做任何事情。
#!/bin/bash
// Do something
您可以在此处的Amazon文档中找到AppSpec.yml文件的示例-https://docs.aws.amazon.com/codedeploy/latest/userguide/reference-appspec-file-example.html#appspec-文件示例lambda
您不应该使用CodeDeploy,因为这是一种自动化应用程序部署的服务,而应该使用CodeBuild,它执行命令并准备部署构件,以便在管道中进一步使用。
这些命令位于buildspec.yml
文件中(通常位于repo的根目录中,但它是可配置的)。对于您的用例,它不会太复杂,因为您没有编译任何东西或运行测试等。
尝试将此作为起点:
version: 0.2
phases:
build:
commands:
- ls
artifacts:
files:
- public/*
phases
部分是必需的,这就是为什么它被包括在内(至少,由于ls
命令,您将看到CodeBuild环境中存在哪些文件),但是对于您的案例来说它并不有趣。有趣的是工件
部分。这就是您定义代码构建阶段的输出的地方,即在管道中进一步传递到下一步的内容。
根据您想要如何构造文件(例如,您想要将公共
目录也放在工件中,还是只想要文件本身,而不需要父目录),您可能想要使用工件
部分中可能的其他配置。有关详细信息,请参见buildspec参考。
记住使用CodeBuild步骤的输出工件作为Deploy to S3步骤的输入工件。
CodeBuild使用buildspec,但CodeDeploy使用appspec。
有任何appspec文件吗?
无法执行目标org.apache.maven.plugins:maven-compiler-plugin:3.1:在项目gameoflife上编译(default-compile)-core:编译失败[错误]此环境中未提供编译器。也许您运行的是JRE而不是JDK? 我已经在我的机器上安装了Java,但仍然面临这个问题。 我在做EC2。
我试图使用JsonSlurper从不同的文件输入变量。但它在第二次执行时失败了。有人能帮帮我吗? 从步骤 主要的棒极了 Java全球设置。json 詹金斯档案 错误记录
在两台不同的笔记本电脑上使用maven构建相同的项目。一个是运行良好,一个是显示错误。 状态:两个系统的配置相同。 使用的命令:mvn clean install-DskipTests=true 错误: 我什至尝试删除所有内容,例如再次创建. m2文件夹。
> 错误:任务“:app:CompileDebugKotlin”执行失败。
我已经通过libav-tools对安装了ffmpeg的应用程序进行了dockerize。该应用程序启动时没有问题,但是当Fluent-ffmpeg npm模块试图执行ffmpeg命令时出现了问题,但没有找到。当我想检查ffmpeg的版本和图像中设置的linux发行版时,我使用了命令,但它给出了以下错误: 然后我意识到,我尝试在图像或容器中运行的所有命令都会出现同样的错误。 这是我的Dockerfi
问题内容: 我试图通过Python调用带有多个参数的进程。执行批处理文件本身对我来说很好,但是将其翻译成Python会让我大叫。这里是批处理文件的内容: 批处理文件运行的可执行文件名为。可执行文件的输出提供以下信息:– backend 。 另请注意,某些参数是字符串,而有些则不是。 解 现在对我有用: 问题答案: 在Windows中执行批处理文件: 如果您不想执行批处理文件,而是直接从Python
有一些话题和我的相似,但对我没有帮助。也许会有新的事情发生。 问题:我无法执行wkhtmltopdf表单PHP。我的基本代码是:
尝试在IntelliJ中调试项目时出现此错误。有人能帮忙吗? 任务应用程序的执行失败。main()。 进程'命令'/usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java"以非零退出值1完成