Слои AWS Lambda — git только для push-файлов .zip, но без папки nodejs

#javascript #git #amazon-web-services #aws-lambda #aws-codecommit

Вопрос:

Я пытаюсь добавить слой для своей функции aws lambda.

Папка слоя структурирована следующим образом:

 layers/
  nameOfLayer/
     --nameOfLayer.zip
     --nodejs/
       -- node_modules
       -- package-lock.json
       -- package.json
 

И в nameOfLayer.zip файл структурирован следующим образом:

 nameOfLayer.zip
 --nodejs/
   -- node_modules
   -- package-lock.json
   -- package.json
 

Если я git push отправлю это в свой репозиторий, я смогу увидеть zip-файл, но не папку nodejs.

Мой файл .gitignore выглядит следующим образом:

 *.js
!jest.config.js
*.d.ts
!lambda/*.js
.vscode
!layers/*.json
node_modules
*.json

# CDK asset staging directory
.cdk.staging
cdk.out
 

Почему это происходит и каково решение?

Заранее спасибо

EDIT_1: Мое репо находится в CodeCommit. Есть ли больше возможностей для настройки материала, чем файл .gitignore?

Комментарии:

1. Что это показывает git status ?

2. В ветке XYZ Ваша ветка обновлена с помощью «origin/XYZ». ничего не нужно фиксировать, рабочее дерево чистое

Ответ №1:

Я думаю, вы хотите заменить !layers/*.json на !layers/**.json

Первое будет соответствовать layers/file.json , но не layers/subdir/file.json

Вам нужно использовать двойную звездочку, чтобы соответствовать нескольким подкаталогам.

См.: https://git-scm.com/docs/gitignore#_pattern_format

Комментарии:

1. Я попробовал это, и теоретически это имеет полный смысл! К сожалению, он все еще не загружает его в мое репозиторий…

Ответ №2:

Я добавил !package.json к .gitignore , вероятно, не лучшей практике, но это работает