私のnodejsラムダのaws codebuildプロセスにzipアーティファクトを作成したい - ラムダ関数がこのzipファイルをS3のソースとして使用できるように、 gitのと管理のためのGitHubのレポでcodebuildに問題を作成するノードを介してzipファイルを作成するlambda
私のファイル構造をIDをコミット私はジップでフォルダずにzipファイルをしたいラムダプロジェクト(私たちはラムダでnodejsプロジェクトのためにあることを必要とするが、nodejsのために今
folder1
- myfile.js
- otherfile.js
folder2
- otherfiles.js
package.json
です)ので、zipには以下のファイルが直接含まれている必要があります
の- myfile.js
- node_module ==> folder from codebuild via npm install command
問題:
1)S3における出力のzipフォルダに含ますなわち.zip-> rootfolder-> myfile.js我々は.zip->これはとラムダで使用できません myfiles.js必要ではなく、 nodejsの場合、ルートzipにファイルがあり、その中にはファイルがありません(フォルダ内の相対パスはありません)
2)パス - myfile.jsがフォルダ内にあることがわかります。破棄パスは両方に適用されるので、node_moduleファイルもフォルダではなくフォルダにあります - 破棄パスはnode_moduleフォルダではなくmyfile.jsに対してのみ設定できますか? 私の現在のYAMLファイル:
artifacts:
files:
- folder/myfile.js
- node_modules/**/*
discard-paths: yes
誰かがこれにソリューションを提供することができればそれは素晴らしいことですか?
ソリューションにgithub-repoフォルダの構造が変更されていない場合は素晴らしいですし、他のラムダ関数を作成するために、そのレポの他のファイルに対してもこれを繰り返したいと思います。
編集:私はYAMLファイルとすべてのものの下に使用
が@awsnitin答えた後、正常に動作している
version: 0.2
phases:
build:
commands:
- echo Build started on `date`
- npm install
post_build:
commands:
- echo Running post_build commands
- mkdir build-output
- cp -R folder1/myfile.js build-output
- mkdir -p build-output/node_modules
- cp -R node_modules/* build-output/node_modules
- cd build-output/
- zip -qr build-output.zip ./*
- mv build-output.zip ../
- echo Build completed on `date`
artifacts:
files:
- build-output.zip
ありがとう、私は別の方向に考えていた! –