1313# that call this Lambda, rather than here.
1414# ------------------------------------------------------------------------------
1515locals {
16- langchain_function_name = " lambda_langchain"
17- langchain_build_path = " ${ path . module } /build/"
18- langchain_openai_api_directory = " ${ path . module } /python/openai_api"
19- langchain_source_directory = " ${ local . langchain_openai_api_directory } /${ local . langchain_function_name } "
20- langchain_packaging_script = " ${ local . langchain_source_directory } /create_pkg.sh"
21- langchain_dist_package_name = " ${ local . langchain_function_name } _dist_pkg.zip"
16+ langchain_function_name = " lambda_langchain"
17+ langchain_build_path = " ${ path . module } /build/distribution_package"
18+ langchain_source_directory = " ${ path . module } /python/openai_api"
19+ langchain_packaging_script = " ${ local . langchain_source_directory } /create_pkg.sh"
20+ langchain_dist_package_name = " ${ local . langchain_function_name } _dist_pkg.zip"
2221}
2322
2423# ##############################################################################
@@ -27,18 +26,15 @@ locals {
2726# ##############################################################################
2827resource "null_resource" "package_lambda_langchain" {
2928 triggers = {
30- redeployment = sha1 (jsonencode ([
31- file (" ${ local . langchain_source_directory } /lambda_handler.py" ),
32- file (" ${ local . langchain_packaging_script } " )
33- ]))
29+ always_redeploy = timestamp ()
3430 }
3531
3632 provisioner "local-exec" {
3733 interpreter = [" /bin/bash" ]
3834 command = local. langchain_packaging_script
3935
4036 environment = {
41- PARENT_DIRECTORY = local.langchain_openai_api_directory
37+ TERRAFORM_ROOT = path.module
4238 SOURCE_CODE_PATH = local.langchain_source_directory
4339 BUILD_PATH = local.langchain_build_path
4440 PACKAGE_FOLDER = local.langchain_function_name
@@ -49,7 +45,7 @@ resource "null_resource" "package_lambda_langchain" {
4945data "archive_file" "lambda_langchain" {
5046 # see https://registry.terraform.io/providers/hashicorp/archive/latest/docs/data-sources/file
5147 source_dir = local. langchain_build_path
52- output_path = " ${ local . langchain_build_path } /${ local . langchain_dist_package_name } "
48+ output_path = " ${ path . module } /build /${ local . langchain_dist_package_name } "
5349 type = " zip"
5450 depends_on = [null_resource. package_lambda_langchain ]
5551}
@@ -59,7 +55,7 @@ data "archive_file" "lambda_langchain" {
5955# ##############################################################################
6056data "external" "env_lambda_langchain" {
6157 # kluge to read and map the openai api key and org data contained in .env
62- program = [" ${ local . langchain_source_directory } /env.sh" ]
58+ program = [" ${ local . langchain_source_directory } /${ local . langchain_function_name } / env.sh" ]
6359
6460 # For Windows (or Powershell core on MacOS and Linux),
6561 # run a Powershell script instead
@@ -79,7 +75,7 @@ resource "aws_lambda_function" "lambda_langchain" {
7975 runtime = var. lambda_python_runtime
8076 memory_size = var. lambda_memory_size
8177 timeout = var. lambda_timeout
82- handler = " lambda_handler.handler"
78+ handler = " openai_api.lambda_langchain. lambda_handler.handler"
8379 architectures = var. compatible_architectures
8480 filename = data. archive_file . lambda_langchain . output_path
8581 source_code_hash = data. archive_file . lambda_langchain . output_base64sha256
@@ -93,6 +89,7 @@ resource "aws_lambda_function" "lambda_langchain" {
9389 OPENAI_API_KEY = data.external.env_lambda_langchain.result[" OPENAI_API_KEY" ]
9490 OPENAI_ENDPOINT_IMAGE_N = var.openai_endpoint_image_n
9591 OPENAI_ENDPOINT_IMAGE_SIZE = var.openai_endpoint_image_size
92+ AWS_DEPLOYED = true
9693 }
9794 }
9895}
0 commit comments