2017-10-11 51 views
0

appspec.yml:CodeDeploy給Ruby的錯誤,當我嘗試部署

錯誤[codedeploy代理(2735)]:

version: 0.0 
os: linux 
files: 
    - source:/
    destination: /var/ingester 
permissions: 
    - object: /var 
    pattern: ingester 
    owner: ubuntu 
    group: ubuntu 
    type: 
     - directory 
    - object: /var/ingester 
    owner: ubuntu 
    group: ubuntu 
hooks: 
    ApplicationStart: 
    - location: deployment/start.sh 
     runas: ubuntu 

Codedeploy到達BeforeInstall,然後用錯誤InstanceAgent :: Plugins :: CodeDeployPlugin :: CommandPoller:執行期間出錯:TypeError - 沒有將字符串隱式轉換爲Integer - /opt/codedeploy-agent/lib/instance_agent/plugins/codedeploy/application_specification/application_specification.rb:49:in`[[ ]'

看起來好像這與YAML的解析有關,但我無法弄清楚它正在嘗試(和失敗)轉換爲整數。

任何人都可以發現這裏出了什麼問題嗎?

+0

您使用的是哪個版本的codedeploy代理?你有沒有嘗試更新到最新版本? – Castrohenge

+0

@Castrohenge它被安裝在EC2盒子的旋轉上,所以它應該是最新的版本。 – user1381745

+0

您可以檢查/ opt/codedeploy-agent/deployment-root// /中的appspec.yml嗎?這與你上面發佈的相同嗎?錯誤提示'files'節被視爲散列而不是散列數組。我懷疑在實例中的appspec.yml的'source:'之前缺少'-'。 – Ravi

回答

0

經過Ravi的提示(請參閱OP註釋)後,我檢查了EC2盒子上的appspec.yml,它看起來是一箇舊的副本,在YAML中的source:之前缺少連字符。因此,Ruby將其解釋爲散列而不是數組。

相關問題