aws-genai-llm-chatbot
aws-genai-llm-chatbot copied to clipboard
Error during deployment
I have deployed this a few days ago without issue. I pulled it down but now trying to deploy again and its throwing an error during the last npx cdk deploy step, when trying to install orjson. Error below.
Steps I've tried:
- Tried installing the suggested rust installation and adding to path. Same error
- Tried reverting to previous versions/commits. Again same error
- Have tried deploying from github codespaces and cloud9
Nothing has worked. ''' Collecting orjson<4.0.0,>=3.9.14 (from langsmith<0.2.0,>=0.1.17->langchain==0.2.3->-r requirements.txt (line 7)) Downloading orjson-3.10.7.tar.gz (5.1 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.1/5.1 MB 215.9 MB/s eta 0:00:00 Installing build dependencies: started Installing build dependencies: finished with status 'done' Getting requirements to build wheel: started Getting requirements to build wheel: finished with status 'done' Preparing metadata (pyproject.toml): started Preparing metadata (pyproject.toml): finished with status 'error' error: subprocess-exited-with-error
× Preparing metadata (pyproject.toml) did not run successfully. │ exit code: 1 ╰─> [6 lines of output]
Cargo, the Rust package manager, is not installed or is not on PATH.
This package requires Rust and Cargo to compile extensions. Install it through
the system's package manager or via https://rustup.rs/
Checking for Rust toolchain....
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip. error: metadata-generation-failed
× Encountered error while generating package metadata. ╰─> See above for output.
note: This is an issue with the package mentioned above, not pip. hint: See above for details.
[notice] A new release of pip is available: 24.0 -> 24.2
[notice] To update, run: pip install --upgrade pip
/home/ubuntu/environment/aws-genai-llm-chatbot/node_modules/aws-cdk-lib/core/lib/asset-staging.js:2
),localBundling=options.local?.tryBundle(bundleDir,options),!localBundling){const assetStagingOptions={sourcePath:this.sourcePath,bundleDir,...options};switch(options.bundlingFileAccess){case bundling_1().BundlingFileAccess.VOLUME_COPY:new(asset_staging_1()).AssetBundlingVolumeCopy(assetStagingOptions).run();break;case bundling_1().BundlingFileAccess.BIND_MOUNT:default:new(asset_staging_1()).AssetBundlingBindMount(assetStagingOptions).run();break}}}catch(err){const bundleErrorDir=bundleDir+"-error";throw fs().existsSync(bundleErrorDir)&&fs().removeSync(bundleErrorDir),fs().renameSync(bundleDir,bundleErrorDir),new Error(Failed to bundle asset ${this.node.path}, bundle output is located at ${bundleErrorDir}: ${err})}if(fs_1().FileSystem.isEmpty(bundleDir)){const outputDir=localBundling?bundleDir:AssetStaging.BUNDLING_OUTPUT_DIR;throw new Error(Bundling did not produce any output. Check that content is written to ${outputDir}.)}}calculateHash(hashType,bundling,outputDir){if(hashType==assets_1().AssetHashType.CUSTOM||hashType==assets_1().AssetHashType.SOURCE&&bundling){const hash=crypto().createHash("sha256");return hash.update(this.customSourceFingerprint??fs_1().FileSystem.fingerprint(this.sourcePath,this.fingerprintOptions)),bundling&&hash.update(JSON.stringify(bundling,sanitizeHashValue)),hash.digest("hex")}switch(hashType){case assets_1().AssetHashType.SOURCE:return fs_1().FileSystem.fingerprint(this.sourcePath,this.fingerprintOptions);case assets_1().AssetHashType.BUNDLE:case assets_1().AssetHashType.OUTPUT:if(!outputDir)throw new Error(Cannot use `${hashType}` hash type when `bundling` is not specified.);return fs_1().FileSystem.fingerprint(outputDir,this.fingerprintOptions);default:throw new Error("Unknown asset hash type.")}}}exports.AssetStaging=AssetStaging,_a=JSII_RTTI_SYMBOL_1,AssetStaging[_a]={fqn:"aws-cdk-lib.AssetStaging",version:"2.145.0"},AssetStaging.BUNDLING_INPUT_DIR="/asset-input",AssetStaging.BUNDLING_OUTPUT_DIR="/asset-output",AssetStaging.assetCache=new(cache_1()).Cache;function renderAssetFilename(assetHash,extension=""){returnasset.${assetHash}${extension}}function determineHashType(assetHashType,customSourceFingerprint){const hashType=customSourceFingerprint?assetHashType??assets_1().AssetHashType.CUSTOM:assetHashType??assets_1().AssetHashType.SOURCE;if(customSourceFingerprint&&hashType!==assets_1().AssetHashType.CUSTOM)throw new Error(Cannot specify `${assetHashType}` for `assetHashType` when `assetHash` is specified. Use `CUSTOM` or leave `undefined`.);if(hashType===assets_1().AssetHashType.CUSTOM&&!customSourceFingerprint)throw new Error("assetHashmust be specified whenassetHashTypeis set toAssetHashType.CUSTOM.");return hashType}function calculateCacheKey(props){return crypto().createHash("sha256").update(JSON.stringify(sortObject(props),sanitizeHashValue)).digest("hex")}function sortObject(object){if(typeof object!="object"||object instanceof Array)return object;const ret={};for(const key of Object.keys(object).sort())ret[key]=sortObject(object[key]);return ret}function sanitizeHashValue(key,value){if(key==="PIP_INDEX_URL"||key==="PIP_EXTRA_INDEX_URL")try{let url=new URL(value);if(url.password)return url.password="",url.toString()}catch(e){throw e.name==="TypeError"?new Error(${key} must be a valid URL, got ${value}.):e}return value}function findSingleFile(directory,archiveOnly){if(!fs().existsSync(directory))throw new Error(Directory ${directory} does not exist.);if(!fs().statSync(directory).isDirectory())throw new Error(${directory} is not a directory.);const content=fs().readdirSync(directory);if(content.length===1){const file=path().join(directory,content[0]),extension=getExtension(content[0]).toLowerCase();if(fs().statSync(file).isFile()&&(!archiveOnly||ARCHIVE_EXTENSIONS.includes(extension)))return file}}function determineBundledAsset(bundleDir,outputType){const archiveFile=findSingleFile(bundleDir,outputType!==bundling_1().BundlingOutput.SINGLE_FILE);switch(outputType===bundling_1().BundlingOutput.AUTO_DISCOVER&&(outputType=archiveFile?bundling_1().BundlingOutput.ARCHIVED:bundling_1().BundlingOutput.NOT_ARCHIVED),outputType){case bundling_1().BundlingOutput.NOT_ARCHIVED:return{path:bundleDir,packaging:assets_1().FileAssetPackaging.ZIP_DIRECTORY};case bundling_1().BundlingOutput.ARCHIVED:case bundling_1().BundlingOutput.SINGLE_FILE:if(!archiveFile)throw new Error("Bundling output directory is expected to include only a single file when outputis set toARCHIVEDorSINGLE_FILE`");return{path:archiveFile,packaging:assets_1().FileAssetPackaging.FILE,extension:getExtension(archiveFile)}}}function getExtension(source){for(const ext of ARCHIVE_EXTENSIONS)if(source.toLowerCase().endsWith(ext))return ext;return path().extname(source)}
^
Error: Failed to bundle asset oup-testGenAIChatBotStack/Shared/CommonLayer/LayerAsset/Stage, bundle output is located at /home/ubuntu/environment/aws-genai-llm-chatbot/cdk.out/asset.c21705daf758902cf8b13c348399ef6dff3bc4ddfc250090f058bca571e8cab8-error: Error: docker exited with status 1
--> Command: docker run --rm --security-opt "no-new-privileges:true" --network host -u "1000:1000" -v "/home/ubuntu/environment/aws-genai-llm-chatbot/lib/shared/layers/common:/asset-input:delegated" -v "/home/ubuntu/environment/aws-genai-llm-chatbot/cdk.out/asset.c21705daf758902cf8b13c348399ef6dff3bc4ddfc250090f058bca571e8cab8:/asset-output:delegated" -w "/asset-input" "public.ecr.aws/sam/build-python3.11" bash -c "pip install -r requirements.txt -t /asset-output/python"
at AssetStaging.bundle (/home/ubuntu/environment/aws-genai-llm-chatbot/node_modules/aws-cdk-lib/core/lib/asset-staging.js:2:619)
at AssetStaging.stageByBundling (/home/ubuntu/environment/aws-genai-llm-chatbot/node_modules/aws-cdk-lib/core/lib/asset-staging.js:1:5297)
at stageThisAsset (/home/ubuntu/environment/aws-genai-llm-chatbot/node_modules/aws-cdk-lib/core/lib/asset-staging.js:1:2728)
at Cache.obtain (/home/ubuntu/environment/aws-genai-llm-chatbot/node_modules/aws-cdk-lib/core/lib/private/cache.js:1:242)
at new AssetStaging (/home/ubuntu/environment/aws-genai-llm-chatbot/node_modules/aws-cdk-lib/core/lib/asset-staging.js:1:3125)
at new Asset (/home/ubuntu/environment/aws-genai-llm-chatbot/node_modules/aws-cdk-lib/aws-s3-assets/lib/asset.js:1:1141)
at new Layer (/home/ubuntu/environment/aws-genai-llm-chatbot/lib/layer/index.ts:26:24)
at new Shared (/home/ubuntu/environment/aws-genai-llm-chatbot/lib/shared/index.ts:229:25)
at new AwsGenAILLMChatbotStack (/home/ubuntu/environment/aws-genai-llm-chatbot/lib/aws-genai-llm-chatbot-stack.ts:33:20)
at Object.
Subprocess exited with error 1 '''
I have the same problem!!!
What do you think that happens?
https://github.com/ijl/orjson/issues/509
Cool! have you figured out how to pin a version in the deployment for this repo? @GeraCollante
I set this in the main requirements.txt and it worked, idk if is a solution but try it:
aws-cdk-lib
aws_cdk.aws_lambda_python_alpha
constructs
cdk_nag
aws_cdk.aws_sagemaker_alpha
orjson==3.10.6
Whats the path to the requirements.txt you are referring to? there's a few @GeraCollante
lib/shared/layers/common/requirements.txt. ?
I'm referring to the requirements.txt that you execute when activate the enviroment the first time. You do:
source .venv/bin/activatepip install -r requirements.txtcdk_deployIf you prefer we can arrange a meet
https://meet.google.com/zjh-bnot-pks
Ah I see - i'm using this guide: https://aws-samples.github.io/aws-genai-llm-chatbot/guide/deploy.html And cloud9, but have also tried github codespaces. I don't see your venv stuff in there.
Let me try in the reqs file I linked first
Ah ok, we are using CDK in different ways. I don't use Cloud9 so idk how to help you. But i'm pretty sure that it will be fixed in the next hours, maybe you can try to harcode the version of langchain
Can confirm adding
orjson==3.10.6 to lib/shared/layers/common/requirements.txt provides a work around for now.
Excellent! Nice to meet you! I sent an invitation on LinkedIn, I hope don't bother you Have a good day
Thank you @wakefieldcooper for finding a workaround!.
Is it still happening? The related issue is now closed (https://github.com/ijl/orjson/issues/509)
I was not able to reproduce and an earlier build also passed. https://github.com/aws-samples/aws-genai-llm-chatbot/actions/runs/10321065424/job/28573058347?pr=529