Package: consolo
ConsoloUtility for pseudo-mounting an AWS lambda filesystem locally.
Supports (as default) hot reloading.ExamplesStart hot syncingconsolo--profile-namedev--function-namemyProject--path/src/code/myprojectUpload from local to cloudconsolo--profile-namedev--function-namemyProject--path/src/code/myproject--uploadDownload from cloud to localconsolo--profile-namedev--function-namemyProject--path/src/code/myproject--downloadWhat do I do with my mouthPronounced "Con Solo", like "Han Solo".InstallationSingle filecurl -s https://raw.githubusercontent.com/ahonnecke/consolo/main/install.sh | bashPip installpipinstallconsoloahonnecke@antonym:~/src/consolo$pipinstall--upgradeconsolo
Requirementalreadysatisfied:consoloin/home/ahonnecke/.pyenv/versions/3.8.13/lib/python3.8/site-packages(0.2.3)CollectingconsoloDownloadingconsolo-0.2.5-py3-none-any.whl(6.6kB)Requirementalreadysatisfied:argdantic>=0.3.0in/home/ahonnecke/.pyenv/versions/3.8.13/lib/python3.8/site-packages(fromconsolo)(0.3.0)Requirementalreadysatisfied:requests>=2.28.2in/home/ahonnecke/.pyenv/versions/3.8.13/lib/python3.8/site-packages(fromconsolo)(2.28.2)Requirementalreadysatisfied:watchdog>=2.3.1in/home/ahonnecke/.pyenv/versions/3.8.13/lib/python3.8/site-packages(fromconsolo)(2.3.1)Requirementalreadysatisfied:boto3>=1.26.87in/home/ahonnecke/.pyenv/versions/3.8.13/lib/python3.8/site-packages(fromconsolo)(1.26.87)Requirementalreadysatisfied:pydantic>=1.10.0in/home/ahonnecke/.pyenv/versions/3.8.13/lib/python3.8/site-packages(fromargdantic>=0.3.0->consolo)(1.10.4)Requirementalreadysatisfied:s3transfer<0.7.0,>=0.6.0in/home/ahonnecke/.pyenv/versions/3.8.13/lib/python3.8/site-packages(fromboto3>=1.26.87->consolo)(0.6.0)Requirementalreadysatisfied:botocore<1.30.0,>=1.29.87in/home/ahonnecke/.pyenv/versions/3.8.13/lib/python3.8/site-packages(fromboto3>=1.26.87->consolo)(1.29.87)Requirementalreadysatisfied:jmespath<2.0.0,>=0.7.1in/home/ahonnecke/.pyenv/versions/3.8.13/lib/python3.8/site-packages(fromboto3>=1.26.87->consolo)(1.0.1)Requirementalreadysatisfied:charset-normalizer<4,>=2in/home/ahonnecke/.pyenv/versions/3.8.13/lib/python3.8/site-packages(fromrequests>=2.28.2->consolo)(2.1.1)Requirementalreadysatisfied:urllib3<1.27,>=1.21.1in/home/ahonnecke/.pyenv/versions/3.8.13/lib/python3.8/site-packages(fromrequests>=2.28.2->consolo)(1.26.14)Requirementalreadysatisfied:certifi>=2017.4.17in/home/ahonnecke/.pyenv/versions/3.8.13/lib/python3.8/site-packages(fromrequests>=2.28.2->consolo)(2022.12.7)Requirementalreadysatisfied:idna<4,>=2.5in/home/ahonnecke/.pyenv/versions/3.8.13/lib/python3.8/site-packages(fromrequests>=2.28.2->consolo)(3.4)Requirementalreadysatisfied:python-dateutil<3.0.0,>=2.1in/home/ahonnecke/.pyenv/versions/3.8.13/lib/python3.8/site-packages(frombotocore<1.30.0,>=1.29.87->boto3>=1.26.87->consolo)(2.8.2)Requirementalreadysatisfied:typing-extensions>=4.2.0in/home/ahonnecke/.pyenv/versions/3.8.13/lib/python3.8/site-packages(frompydantic>=1.10.0->argdantic>=0.3.0->consolo)(4.4.0)Requirementalreadysatisfied:six>=1.5in/home/ahonnecke/.pyenv/versions/3.8.13/lib/python3.8/site-packages(frompython-dateutil<3.0.0,>=2.1->botocore<1.30.0,>=1.29.87->boto3>=1.26.87->consolo)(1.16.0)Installingcollectedpackages:consoloAttemptinguninstall:consoloFoundexistinginstallation:consolo0.2.3Uninstallingconsolo-0.2.3:Successfullyuninstalledconsolo-0.2.3
Successfullyinstalledconsolo-0.2.5
ahonnecke@antonym:~/src/consolo$consolo--help
usage:consolo[-h]--profile-nameTEXT--function-nameTEXT--pathTEXT[--upload|--no-upload][--download|--no-download][--create|--no-create][--verbose|--no-verbose]optionalarguments:-h,--helpshowthishelpmessageandexit--profile-nameTEXT(required)--function-nameTEXT(required)--pathTEXT(required)--upload--no-upload--download--no-download--create--no-create--verbose--no-verboseKnown issues (not slated for fix)You must hard reload the console to see changesYou must "deploy" from the console for changes to be effected, if changes are
made in the consoleif changes are left in the console, the upload will fail with
"ResourceUpdateInProgress", or somethingTODOTESTING: Capture and deal with rapid multi-file changesList available functionsAST files before uploadUnit testsFollow logs while watchingDONEIgnore new files added by pytestUsageconsolo.py --profile-name dev-power --function-name myLambda --path /home/ahonnecke/src/my_lambda/examplesahonnecke@antonym:~/src/v2x-messenger$consolo.py\--profile-namedev-power\--function-namev2x-messenger__cipt-status-ingestion\--path/home/ahonnecke/src/v2x-messenger/lambdas/cipt_status_ingestion/With the profiledev-powerAgainst the lambdav2x-messenger__cipt-status-ingestion`Mapped on top of the local directory/home/ahonnecke/src/v2x-messenger/lambdas/cipt_status_ingestion/publishBump versionpdmpublish--username$PIP_USERNAME--password$PIP_PW