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.0version: 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での資格情報を追加する必要がありますか?私は引き続き端末を使って展開することができます。
ありがとう、私は行く必要があります! –
それはうまくいくようですが、私には新しい問題があります。その答えを探し続けます。タンスク! –
何が問題なのですか?私はClaudiaチームからの質問です。また、Claudia関連の質問については、私たちのgitterを確認する必要があります。そこに誰かが飛び込んできて、それに答えようとします。 –