![](/img/trans.png)
[英]AWS CodePipeline - Deploy in CloudFormation: Action execution failed Requires capabilities : [CAPABILITY_AUTO_EXPAND]
[英]AWS CodePipeline Action execution failed
我試圖將我的GitHub存儲庫與S3掛鈎,因此每次提交時,AWS CodePipeline都會將./<path>/public
文件夾部署到指定的S3 bucket
。
到目前為止,在我的管道中, Source
可以正常工作(已掛接到GitHub並獲取新的提交),但是Deploy
失敗,原因是: Action execution failed BundleType must be either YAML or JSON
。
這是我設置它們的方式:
我知道根文件夾中必須有一個buildspec.yml
文件。 我嘗試使用一些我可以找到的文件,但它們似乎不起作用。 我做錯了什么,或者我應該如何編輯buildspec
文件以執行我想要的工作?
更新資料
感謝@Milan Cermak。 我了解我需要這樣做:
CodePipeline:
buildspec.yml
文件僅獲取所需的文件夾。 Action Provider: S3
Input Artifacts: OutputArtifacts (result of stage 2).
Bucket: the bucket that hosts the static website.
CodePipeline有效。 但是,輸出僅包含文件(.html),而不嵌套在公用文件夾內的文件夾。
我已經檢查了這一點,並弄清楚了如何使用discard-paths: yes
刪除嵌套文件夾discard-paths: yes
但是我無法獲取./<path>/public
文件夾內的所有子文件夾。 有什么建議嗎?
CodeBuild使用buildspec,但是CodeDeploy使用appspec。
是否有任何appspec文件?
您不應該使用CodeDeploy,因為它是用於自動化應用程序部署的服務,而是CodeBuild,它執行命令並准備部署工件以在管道中進一步使用。
這些命令在buildspec.yml
文件中(通常在回購的根目錄中,但是它是可配置的)。 對於您的用例,它不會太復雜,因為您不需要編譯任何內容或運行測試等。
以此為起點:
version: 0.2
phases:
build:
commands:
- ls
artifacts:
files:
- public/*
需要“ phases
部分,這就是為什么要包含“ phases
部分的原因(至少,由於使用ls
命令,您將看到CodeBuild環境中存在哪些文件),但是對於您的情況而言,這並不有趣。 有趣的是artifacts
部分。 在這里,您可以定義CodeBuild階段的輸出,即進一步傳遞到管道中下一步的內容。
根據您希望文件結構的方式(例如,您是否希望在工件中也包含public
目錄,還是只想擁有文件本身而沒有父目錄),可能要使用其他配置在artifacts
部分中這是可能的。 有關詳細信息,請參見buildspec參考 。
請記住,將CodeBuild步驟的輸出工件用作Deploy to S3步驟的輸入工件。
t_yamo指出,Buildspec用於CodeBuild。
您正在使用使用appspec.yml文件的CodeDeploy,對於我的配置,該文件看起來像這樣。
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
-你可以在這里找到,從亞馬遜的文檔文件AppSpec.yml樣本https://docs.aws.amazon.com/codedeploy/latest/userguide/reference-appspec-file-example.html#appspec-file-example-拉姆達
CodePipeline最近宣布部署到S3行動: https ://aws.amazon.com/about-aws/whats-new/2019/01/aws-codepipeline-now-supports-deploying-to-amazon-s3/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.