terraform-aws-lambda
terraform-aws-lambda copied to clipboard
npm_requirements does not run `npm install` on `terraform apply`
Hi I am using the latest version of Terraform.
Terraform v1.2.6
on darwin_amd64
+ provider registry.terraform.io/hashicorp/archive v2.2.0
+ provider registry.terraform.io/hashicorp/aws v4.24.0
+ provider registry.terraform.io/hashicorp/external v2.2.2
+ provider registry.terraform.io/hashicorp/local v2.2.3
+ provider registry.terraform.io/hashicorp/null v3.1.1
+ provider registry.terraform.io/hashicorp/random v3.3.2
This is my code block
module "lambda_layer" {
source = "terraform-aws-modules/lambda/aws"
create_layer = true
layer_name = "lambda-layer"
description = "Lmabda layer"
compatible_runtimes = ["nodejs14.x", "nodejs12.x"]
source_path = [
{
path = "src/lambda_layer/nodejs",
npm_requirements = true
}
]
}
This does not raise an error, but the node_modules folder is not created on deployment.
Apart from that, I also tried to use commands
module "lambda_layer" {
source = "terraform-aws-modules/lambda/aws"
create_layer = true
layer_name = "lambda-layer"
description = "Lmabda layer"
compatible_runtimes = ["nodejs14.x", "nodejs12.x"]
source_path = [
{
path = "src/lambda_layer/nodejs",
commands = [
"npm install",
":zip"
]
}
]
}
When I run this code block, the required node_modules folder is generated, but it raises an error that complains a zip file does not exist. However, I can find the file in the builds folder. I feel this is possibly a bug to fix.
zip: adding: node_modules/xmlbuilder/lib/XMLDeclaration.js
β zip: adding: node_modules/xmlbuilder/lib/XMLDocType.js
β zip: adding: node_modules/xmlbuilder/lib/XMLDocument.js
β zip: adding: node_modules/xmlbuilder/lib/XMLDocumentCB.js
β zip: adding: node_modules/xmlbuilder/lib/XMLElement.js
β zip: adding: node_modules/xmlbuilder/lib/XMLNode.js
β zip: adding: node_modules/xmlbuilder/lib/XMLProcessingInstruction.js
β zip: adding: node_modules/xmlbuilder/lib/XMLRaw.js
β zip: adding: node_modules/xmlbuilder/lib/XMLStreamWriter.js
β zip: adding: node_modules/xmlbuilder/lib/XMLStringWriter.js
β zip: adding: node_modules/xmlbuilder/lib/XMLStringifier.js
β zip: adding: node_modules/xmlbuilder/lib/XMLText.js
β zip: adding: node_modules/xmlbuilder/lib/XMLWriterBase.js
β zip: adding: node_modules/xmlbuilder/lib/index.js
β Traceback (most recent call last):
β File ".terraform/modules/api.add_users_lambda.lambda_layer.lambda_layer/package.py", line 1389, in <module>
β main()
β File ".terraform/modules/api.add_users_lambda.lambda_layer.lambda_layer/package.py", line 1385, in main
β exit(args.command(args))
β File ".terraform/modules/api.add_users_lambda.lambda_layer.lambda_layer/package.py", line 1277, in build_command
β bpm.execute(build_plan, zs, query)
β File ".terraform/modules/api.add_users_lambda.lambda_layer.lambda_layer/package.py", line 318, in __exit__
β self.close()
β File ".terraform/modules/api.add_users_lambda.lambda_layer.lambda_layer/package.py", line 308, in close
β os.replace(self._tmp_filename, self.filename)
β FileNotFoundError: [Errno 2] No such file or directory: 'builds/5e6cdfe1b4b62259a5b315df3c2935b6037f6f3250f24bd3bffbf0ac570bbc73.zip.tmp' ->
β 'builds/5e6cdfe1b4b62259a5b315df3c2935b6037f6f3250f24bd3bffbf0ac570bbc73.zip'