2017-06-21 13 views
0

CircleCIとClaudia.jsを実行して、node.jsコードをAWS Lambdaにデプロイします。CircleCIは「claudia update」を実行できません

npm run update 

の端末では、私はちょうど罰金更新することができます。

"scripts": { 
    "deploy": "claudia create --handler lambda.handler --deploy-proxy-api --region eu-central-1", 
    "update": "claudia update", 
    "generate-proxy": "claudia generate-serverless-express-proxy --express-module server", 
    "test": "./node_modules/.bin/mocha --reporter spec" 
    }, 

は私が実行しているよ:

は、ここに私のpackage.json(スクリプトの一部)です。しかし、私はCircleCIでこれを実行していると失敗します。ここで

は私のCircleCIの設定ファイル(.circleci/config.yml)です:

version: 1 
jobs: 
    build: 
    machine: 
     node: 
     version: 6.11 
    working_directory: ~/project 
    steps: 
     - checkout 
     - run: 
      name: install 
      command: npm install 
     - run: 
      name: test 
      command: npm run test 
    build: 
    steps: 
     - run: 
      name: generate-proxy 
      command: npm run generate-proxy 
     - run: 
      name: update 
      command: npm run update 

CircleCIに誤りがある:

#!/bin/bash -eo pipefail 
npm run update 

> [email protected] update /home/circleci/project 
> claudia update 

loading Lambda config 
loading Lambda config lambda.getFunctionConfiguration FunctionName=xxx 
loading Lambda config lambda.setupRequestListeners 
{ CredentialsError: Missing credentials in config 
    at IncomingMessage.<anonymous> (/home/circleci/project/node_modules/aws-sdk/lib/util.js:864:34) 
    at emitNone (events.js:91:20) 
    at IncomingMessage.emit (events.js:185:7) 
    at endReadableNT (_stream_readable.js:926:12) 
    at _combinedTickCallback (internal/process/next_tick.js:74:11) 
    at process._tickDomainCallback (internal/process/next_tick.js:122:9) 
    message: 'Missing credentials in config', 
    retryable: false, 
    time: 2017-06-21T08:02:53.894Z, 
    code: 'CredentialsError', 
    originalError: 
    { message: 'Could not load credentials from any providers', 
    retryable: false, 
    time: 2017-06-21T08:02:53.894Z, 
    code: 'CredentialsError' } } 

私は含まれてい.aws /資格証明書と呼ばれるファイルを持っています:

[claudia] 
aws_access_key_id = xxxxxxx 
aws_secret_access_key = xxxxxx 

EDIT:

すべてが前のように資格証明書を除いて動作しますCircleCI 2.0
version: 2 
jobs: 
    build: 
    working_directory: ~/emailservice 
    docker: 
     - image: circleci/node:4.8.2 
    steps: 
     - checkout 
     - run: 
      name: update-npm 
      command: 'sudo npm install -g [email protected]' 
     - restore_cache: 
      key: dependency-cache-{{ checksum "package.json" }} 
     - run: 
      name: install 
      command: npm install 
     - save_cache: 
      key: dependency-cache-{{ checksum "package.json" }} 
      paths: 
      - ./node_modules 
     - run: 
      name: test 
      command: npm run test 
     - store_artifacts: 
      path: test-results.xml 
      prefix: tests 
     - store_artifacts: 
      path: coverage 
      prefix: coverage 
     - store_test_results: 
      path: test-results.xml 
     - run: 
      name: deploy_update 
      command: npm run update 

のものと一致する

変更config.yml。 CircleCIから

ログファイル:

loading Lambda config 
loading Lambda config lambda.getFunctionConfiguration FunctionName=emailService 
loading Lambda config lambda.setupRequestListeners 
{ [CredentialsError: Missing credentials in config] 
    message: 'Missing credentials in config', 
    code: 'CredentialsError', 
    time: Thu Jun 22 2017 08:11:27 GMT+0000 (UTC), 
    retryable: true, 
    originalError: 
    { message: 'Could not load credentials from any providers', 
    code: 'CredentialsError', 
    time: Thu Jun 22 2017 08:11:27 GMT+0000 (UTC), 
    retryable: true, 
    originalError: 
     { message: 'Connection timed out after 1000ms', 
     code: 'TimeoutError', 
     time: Thu Jun 22 2017 08:11:27 GMT+0000 (UTC), 
     retryable: true } } } 
npm info lifecycle [email protected]~update: Failed to exec update script 
npm ERR! code ELIFECYCLE 
npm ERR! errno 1 
npm ERR! [email protected] update: `claudia update` 
npm ERR! Exit status 1 
npm ERR! 
npm ERR! Failed at the [email protected] update script. 
npm ERR! This is probably not a problem with npm. There is likely additional logging output above. 

npm ERR! A complete log of this run can be found in: 
npm ERR!  /home/circleci/.npm/_logs/2017-06-22T08_11_27_089Z-debug.log 
Exited with code 1 

は、私がどこかにAWSでの資格情報を追加する必要がありますか?私は引き続き端末を使って展開することができます。

答えて

1

これはおそらくCircleCIがユーザーをどのように処理しているかと関係していると思います。

環境変数を使用してAWSアクセスキーと秘密を格納することをお勧めします。環境変数を経由してキーの設定に関する値

詳細情報など、あなたの秘密鍵で - 値
AWS_SECRET_ACCESS_KEYとしてあなたのアクセスキーと -

AWS_ACCESS_KEY_ID:あなたは、以下の環境変数を追加する必要が

AWSで:サークルCI内のenv変数について
http://docs.aws.amazon.com/cli/latest/userguide/cli-environment.html

さらに詳しい情報:
https://circleci.com/docs/1.0/environment-variables/

+0

ありがとう、私は行く必要があります! –

+0

それはうまくいくようですが、私には新しい問題があります。その答えを探し続けます。タンスク! –

+0

何が問題なのですか?私はClaudiaチームからの質問です。また、Claudia関連の質問については、私たちのgitterを確認する必要があります。そこに誰かが飛び込んできて、それに答えようとします。 –

1

あなたのリポジトリに記載したファイルに信用を保管していますか?まず第一に、あなたはたぶんそうではありません、それは安全ではありません。あなたがいる場合、それは~/.aws/credentialsにある必要があります。あなたの現在の設定に基づいて、あなたのレポはすべて~/emailserviceというビルドにあります。 awsディレクトリを作成してから、mvで信用状を移動する必要があります。ような何か:また

mkdir ~/.aws 
mv ~/emailservice/my-creds-file ~/.aws/credenials 

は、私はあなたのレポ内のファイルを持っていない示唆とprivate environment variablesを使用します。このシナリオでは、CircleCIのWeb UIに変数AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYを設定します。 AWS CLIは、実行時にこれらの資格情報を表示して使用します。

AWS CLIの認証方法は、ここで見つけることができます:http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html

謹んで、

リカルドNフェリシアーノ
CircleCIデベロッパーエバンジェリスト


オリジナルの応答:

アイム100%確かになぜあなたが得ているエラーが起こっているのかは確かではありませんが、あなたには大きな問題があります。その設定ファイルはまったく正しいとは思われません。 CircleCI 1.0と2.0の両方のコンセプトと設定構文は、互換性のない方法で混在しています。私はhttps://circleci.com/docs/の設定構文をチェックし、使用するCircleCIのバージョンを選択します。

その後、ここまたはCircleCI Discussのいずれかでトラブルシューティングを試みることができます。

+0

すぐにお返事ありがとうございます。私はそれを解決しなければ、私は小切手と私はあなたに戻ってチェックを持っています。 さらなる問題が発生した場合、ここで議論するべきでしょうか?ありがとうございます –

+0

私は私の設定ファイルを編集し、すべてがまだそこにある元の問題を除いて動作します。資格情報のエラーです。 新しい設定ファイルで質問を編集します。 –

関連する問題