From 9f738cab05124405b8274e0a75c390e695b3aeaa Mon Sep 17 00:00:00 2001 From: Alex Leamy Date: Mon, 8 Mar 2021 14:46:51 -0800 Subject: [PATCH 01/11] created documentation template --- README.md | 89 ++++++++++++++++++++++++++++++++++++--- README_old.md | 53 +++++++++++++++++++++++ images/logo.png | Bin 0 -> 2312 bytes images/screenshot.png | Bin 0 -> 6347 bytes images/sparkgeo-logo.png | Bin 0 -> 25952 bytes 5 files changed, 135 insertions(+), 7 deletions(-) create mode 100644 README_old.md create mode 100644 images/logo.png create mode 100644 images/screenshot.png create mode 100644 images/sparkgeo-logo.png diff --git a/README.md b/README.md index f594b5a..1ff1328 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,39 @@ -# Terradactile +
+

+ + + +

Terradactile-Lambda

+

-Terradactile is an API and Lambda function for fetching, assembling, and processing elevation data. -This project contains source code and supporting files for a serverless application that you can deploy with the SAM CLI. It includes the following files and folders. + +### Table of Contents + +* [About this Program](#about-the-project) +* [Getting Started](#getting-started) + * [Prerequisites](#prerequisites) + * [Installation](#installation) +* [Usage](#usage) +* [Contributing](#contributing) +* [License](#license) +* [Contact](#contact) + + + +## About This Program + +Terradactile is an API and Lambda function for fetching, assembling, and processing elevation data. +```markdown +File Contents - terradactile/terradactile - Code for the application's Lambda function. - terradactile/template.yaml - A template that defines the application's AWS resources. **Update the environment variables for BUCKET and ALLOWED_ORIGINS.** +``` -The application uses several AWS resources, including Lambda functions and an API Gateway API. These resources are defined in the `template.yaml` file in this project. You can update the template to add AWS resources through the same deployment process that updates your application code. + + +## Getting Started If you prefer to use an integrated development environment (IDE) to build and test your application, you can use the AWS Toolkit. The AWS Toolkit is an open source plug-in for popular IDEs that uses the SAM CLI to build and deploy serverless applications on AWS. The AWS Toolkit also adds a simplified step-through debugging experience for Lambda function code. See the following links to get started. @@ -17,9 +43,7 @@ The AWS Toolkit is an open source plug-in for popular IDEs that uses the SAM CLI * [VS Code](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/welcome.html) * [Visual Studio](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/welcome.html) -## Deploy the application - -The Serverless Application Model Command Line Interface (SAM CLI) is an extension of the AWS CLI that adds functionality for building and testing Lambda applications. It uses Docker to run your functions in an Amazon Linux environment that matches Lambda. It can also emulate your application's build environment and API. +### Prerequisites To use the SAM CLI, you need the following tools. @@ -27,13 +51,30 @@ To use the SAM CLI, you need the following tools. * [Python 3 installed](https://www.python.org/downloads/) * Docker - [Install Docker community edition](https://hub.docker.com/search/?type=edition&offering=community) + +The application uses several AWS resources, including Lambda functions and an API Gateway API. These resources are defined in the `template.yaml` file in this project. You can update the template to add AWS resources through the same deployment process that updates your application code. + + + +### Installation and Deployment + +## Deployment + +```markdown +The Serverless Application Model Command Line Interface (SAM CLI) is an extension of the AWS CLI that adds functionality for building and testing Lambda applications. It uses Docker to run your functions in an Amazon Linux environment that matches Lambda. It can also emulate your application's build environment and API. + To build and deploy your application for the first time, cd to the project directory and run the following in your shell: +``` + ```bash sam build --use-container sam deploy --guided ``` + + +# Usage Commands The first command will build the source of your application. The second command will package and deploy your application to AWS, with a series of prompts: * **Stack Name**: The name of the stack to deploy to CloudFormation. This should be unique to your account and region, and a good starting point would be something matching your project name. @@ -51,3 +92,37 @@ To delete the sample application that you created, use the AWS CLI. Assuming you ```bash aws cloudformation delete-stack --stack-name terradactile ``` + + + +## Contributing + +For further contribution requests + +1. Fork the Project +2. Create your Feature Branch +3. Commit your Changes +4. Push to the Branch +5. Open a Pull Request + + + + +## License + +Distributed under the MIT License. See `LICENSE` for more information. + + + +## Contact + +Project Link: [https://github.com/sparkgeo/](https://github.com/sparkgeo/) + + +## Acknowledgments + +Readme template edited by Alex Leamy + +Based off original template from Othniel Drew [https://github.com/othneildrew/Best-README-Template](https://github.com/othneildrew/Best-README-Template) + + diff --git a/README_old.md b/README_old.md new file mode 100644 index 0000000..f594b5a --- /dev/null +++ b/README_old.md @@ -0,0 +1,53 @@ +# Terradactile + +Terradactile is an API and Lambda function for fetching, assembling, and processing elevation data. + +This project contains source code and supporting files for a serverless application that you can deploy with the SAM CLI. It includes the following files and folders. + +- terradactile/terradactile - Code for the application's Lambda function. +- terradactile/template.yaml - A template that defines the application's AWS resources. **Update the environment variables for BUCKET and ALLOWED_ORIGINS.** + +The application uses several AWS resources, including Lambda functions and an API Gateway API. These resources are defined in the `template.yaml` file in this project. You can update the template to add AWS resources through the same deployment process that updates your application code. + +If you prefer to use an integrated development environment (IDE) to build and test your application, you can use the AWS Toolkit. +The AWS Toolkit is an open source plug-in for popular IDEs that uses the SAM CLI to build and deploy serverless applications on AWS. The AWS Toolkit also adds a simplified step-through debugging experience for Lambda function code. See the following links to get started. + +* [PyCharm](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/welcome.html) +* [IntelliJ](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/welcome.html) +* [VS Code](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/welcome.html) +* [Visual Studio](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/welcome.html) + +## Deploy the application + +The Serverless Application Model Command Line Interface (SAM CLI) is an extension of the AWS CLI that adds functionality for building and testing Lambda applications. It uses Docker to run your functions in an Amazon Linux environment that matches Lambda. It can also emulate your application's build environment and API. + +To use the SAM CLI, you need the following tools. + +* SAM CLI - [Install the SAM CLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html) +* [Python 3 installed](https://www.python.org/downloads/) +* Docker - [Install Docker community edition](https://hub.docker.com/search/?type=edition&offering=community) + +To build and deploy your application for the first time, cd to the project directory and run the following in your shell: + +```bash +sam build --use-container +sam deploy --guided +``` + +The first command will build the source of your application. The second command will package and deploy your application to AWS, with a series of prompts: + +* **Stack Name**: The name of the stack to deploy to CloudFormation. This should be unique to your account and region, and a good starting point would be something matching your project name. +* **AWS Region**: The AWS region you want to deploy your app to. +* **Confirm changes before deploy**: If set to yes, any change sets will be shown to you before execution for manual review. If set to no, the AWS SAM CLI will automatically deploy application changes. +* **Allow SAM CLI IAM role creation**: Many AWS SAM templates, including this example, create AWS IAM roles required for the AWS Lambda function(s) included to access AWS services. By default, these are scoped down to minimum required permissions. To deploy an AWS CloudFormation stack which creates or modified IAM roles, the `CAPABILITY_IAM` value for `capabilities` must be provided. If permission isn't provided through this prompt, to deploy this example you must explicitly pass `--capabilities CAPABILITY_IAM` to the `sam deploy` command. +* **Save arguments to samconfig.toml**: If set to yes, your choices will be saved to a configuration file inside the project, so that in the future you can just re-run `sam deploy` without parameters to deploy changes to your application. + +You can find your API Gateway Endpoint URL in the output values displayed after deployment. + +## Cleanup + +To delete the sample application that you created, use the AWS CLI. Assuming you used your project name for the stack name, you can run the following: + +```bash +aws cloudformation delete-stack --stack-name terradactile +``` diff --git a/images/logo.png b/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..0f38ba9369899ff527b5b81b77c7518185f8a18a GIT binary patch literal 2312 zcmV+j3HSDiP)CLJYzcIwAce4upp!L< zZqZCM{$n=U!4S<136S8A#Hbe|VuFcr3W-jnE3gfRQ6R!_Dt8NPQA|d4?bgKzjHP8k zfo<(r_M^u?t~Bkvx9>gg%{lKm_rA|3Ie+xt^FHT!pZnx|&yTm~Ra$G}a>c1%ECAL3 ztAQmz7H9z)V;f5kCxPMrm%jr~0s97;zdG*IDHSIHt{D5}HNbtqDxkrYQz_yY@MGZT z10VRxX&(+4B|yjM=DENoU>%@bJC#C?0Cx?}y#04cH(W6RI!1rh20R0_CE`(f(ZKhC zdk1HJIleAeNn`?aoP2m0unV{_DTf3e1=bJFx-F3;XqxVe%TGL%4fv*D}HN30^xE^@Pm0wfF088KQn*+QBWDKr73Vd>CUe94i zzSSj5-|lOmu$uZU!%H3*n%DCUSN=@xUbN~&s|;FUP;QqWKR!eAddAV}+i11dFwRbA zVnzC*vWD8!KQzC4r%T7`nW6dJ;v=TtPMFPCyKi(n%9tk1dG7IoY0Pz+H z@QVL<7jFj(2@*oQol3xx*PrSFx~v*CBme3pH{~l;a^>Hvm)w*ys#yOLpt=BGkC^8x zS8?WF&a7Hs31E9v8p0?y3g729BJ5@0t*3paEDE35RT6s=6! zbVq0jpe;{JV%W>S(e~+FrAikc{$mb{32>xsRUWg%bAs)7S3@X0fFFCl3E+NeYb7v* zQIky!@8{w}yK-f&{4a%LXO9B=-)R5T*=k$}MFPCo^G%HVskC8re9@slJqPRnet)$6 zM&t8`i~l>=yqFNWJ>SH+pXf3Nt-gd-zeTJ4iw^$zGo~)c7{DiP?&m7t4~qu>vK6@P zXvZfakC~g&189_SF(Gt&zKL@`Rg|?FwR_><3m=N|p-2K^6tg=F+n#UY+)s67IhyAe z4!kgPIu~RN;1hdefT(g6T0Oq-K)&pMf`>8-=*k}0ovU0;bye?8DcJ+NyKwMK;P90z zb0+l?l&a4G8-WLlzX)XzxDuO7yryW+&jcphQ++r4&pmy^AGzV=0F_KpS8a7(wo3<3@=*^Oe8=s3qiJv zPybA@WpCu_kL}Q?XASKwnS5<+?FQP$w|_R<*X#sL_5h|FJu4DWFYRm9Z&r2;snjG+{H| z)!LFHV!UEA-T_L0P=U}SKze|r39JW@F+j3}HwF+1NS5FvKoTHXLQ4SKD`OY!du1{4 z_N(iH|6G4{-lU%8mB6a5bG;IH3;vFY^NHbhWMDl&>UINtV|O>ODpI`}QYWNSJH}CQATgK-mrSN@zWRBtXK1mH=scbEt1@ z#;00aDSvmcZvy-0P#Fa#OaP-mkpPc~1f-teBtT{Xi4xu{z=|sqjIC+SVS09c3JLFk z2IqH)BmojdW&!CY1PLhn zK3O3>hy?gVBp}^{AOSK9@QVLgK+(&i)d|CQ(r2f!C&WRkw@l(a(j=X4_bsl{lmotp*HZy#lR%kl8j?k_4G; zW3$kz7p>+S+WPC{>y<8gl%#3vsa?R0hPUt@a6hmU=s&l%+4Sv|0?@Se)W?B6F)rBy z`~=tw%m!`%zJvKY8O{Ln&#i49egA{f1bF<^*MJ9OI3?5$&z@V?{MpGLl+hK{2kMxi zo=B;!@Y&5A3MDfc&OwHp_X~>{LL4Xyk5SkTurpv3~T_FId)1&hU37U<-RD} z0{}EWdL|3J49KESZKHwDpYNXWbh$65O#py~zB9{!UBHEId=ng_fxE_gW^9_SLSzB} zG;BHB20R1EoWHg>4fKq!&+Le*R51Yn8n&F93v2?`Q5a4NVY3(5IKIB=AC)Q^CBQ`G z-t*T0_W`Srhe<+YKk!qaPv6pL^uxwVfQgG98D9Xb0agP`C=3)^fX3Lyglaht{0kTa i`hh3)tqlWljr}A7KtO4N(v*%;FX4g#B=n*b=^!19LO?pwBE?7%DN>{5gYCegM%(vSE(X0X_U4V6&gd|uA+Jsb>=Rj;|$DQ5gp+rJ_nuP(#?5jmn+v{#(3A$MHurBciZ=;}e^;SkEUim9%kpKl9LpmY z^(>>+F3Kcej>enKybH=Rp2|D(h;@zSo*r{@!sTgmo+2FCZ$p3I!55U;F@sEQ6yRV`3Kwj2;8}M0SMc8B)YRVC+*9K#KL&`^351U zYsO~#Jh2_;8uR;R5#*$Bit%vV}KCdf;$wT8_P&&WXwOcFkMsHYtR=SaNm(Up(Ts`!0*w~y-BO* zO=4jQjZ+@J*^k^lKfUJ{k?s9`*a8H}P@7*rG&p-?GyJ?lW{5|RO&)ZoNIaJ91$bsi z9+^!KI^&^OL2~dJ5*#2ykEx>^h-i6tB(gA3{=s3IHz95N*PhFlqI=G)mopQZv1eX@ zKPF7d$U+(-Mo(r0Vpa#kk#uF(XCc5#|vGs&fPp!BySq8a?>=^QYmN0k%m1f zf+qjv1KYDH=%ImN{V2zjwN$OXkR8MlS}6lw+#IU%8szdVM0pOQ)i~Q zrW4E8bj0~Oea4{7n8GP;AHP$f7zkQ!NdNpJ+?jO6Md?5H!4X}I49%9SXOD-duVEHLExC7?B-e7%{JqtKj#V@e1%<_e}NTSd90| z@HAc;TpI6fS`gpR-`H9j`-IwjvyrfIcY}h)n&d7C`h8I7HCRQ~8*XgLxZCg}`x)D( z4*kwjceEw9AXmhG6AQA*hM#dM>&qRQNhnB!7s5kvB$DSOt;)gWSIQ^4H@i*eewnKh zX=l!4Ub-xM`IZ@*iMt4$$#`Y937LsY>Ehen+b(w9Rfy8evd3x`IcY5)(HcA%7pjKm-{_R>D z1OG4l`3CiUXPs!B-g@MG4~xpwD(e(aWaVLD&a1XjRM3~?6 zA!`IRfNH@USNhCa%?BAM!GT~OGWk=zRAv`8?8NwF1giPA;g3w!gVbFGc%`H_ZZD*X z4V9FYP;`1FQz!eNv>vvFLBg>r)oM@GqLovX(U0pm@>p9QFGjbjqSPR&SoEq%seg-a zw4t_MS4N_&u!qqt%e-nKuYqSK9VU*;9WtI4%A=pF>ADmhp&ruX{6SXxG@XwtQJd*2 zU1;kY_s+}Arbm#X!q&q&lu^x=5e6F9H4-)YEFg$q2o7aF?k?*Vn${nuo`&~7>K~M{ zFtZpD%%l+wA4)*SXC}y}*u?5R6)zh>Z2mSN8K4kk$M^J|M7e9zF2Yi+4!=x&jy zg+jyoyG?PA!yXH=2MdW^77+EV7qm4n&T^l6_@T7>R$5xrrO0iSCiCU0euRq4EMjHC zvD5|s_D0L{^j+S3-b7wbP1C%g2JyZ8#kBAhs;_&UMV+UY8}P}^KtID^}6*^ zOHl2I@B&i{Q?XCmZw+Q}Q`1^hiCVQ&?ng|aNAcYF1%HK`{Du?gdvD-lFDqQXHoQAn zK7diA(^d2f4JGwAD6~U;t9o9e>u=RItkciw4raZiouaLukZ5qZbJJM_zVDmj<2$3? z9+%0NmY<)asn(e~kf`Of~B>_u9njxy3Y4CfA!0w_=!B>WT>dsvKJ2O(=zoD_uAX|hNYdwQZ*v5 zz8+gxyu$zb`N-~@y{{C`g|1T@=SsJN5@w;58N!DC~+#=P~w& z>o#?(f;;fputnv*+?^SmAhv)VYjl-8ICCu^sAjo*cVylyJKY~_O`@0Jfr*m4X)Z@>BQ^&*}Xe}6))?s*FK5P6`xsfV{4;>X;eW9emP zJ|rVa`M%ExQIR9|l3aG``Z@q`pAP_#VF0j8bRic2z)K7O7Oeq5HU$7!+|q0Gt`aB6 zZMD>tiC5y-fz<{RFH~;orXB!bp?drSF+PP6+fsnSQ$t6EVw#4UmLGzrI;1CdvXdIh z*KYcbtc=~bdmeS6Z3@4rJB}!JMPg&4PZWIR?P8S5iQ43UvW)*XF zzhi;zopKk>ip?Ae)r8T7>#GL{2=X;2T~ryfgnQrDT~>}W8Xi+fQpI|dLOWTpu8z4o z%RTK>#|Zx;N8=)6vdzV+s;Xi>KmHDEyhY_#5Fqo?JH9S$24Ze*E(e~OZf$G(Kms7C zXPPb*L&TNLlC9_KFUkWzwe>BX^-ey-umfdm)ddWZ5k&5z*V z{?9LIEFwfvL(-YIGs=Quy<;+|*;quOpJl(DpX*!Z)o4hZ?=@e&a=X&Z)XEBLEmmSM zuWM+?As>+P`L;bP@m0kB0g3Ob>EPi8s$$EVQ&es^K)hCAml%|=5w#!fey~cwU02v$ z45_S6%Gg?wgw2HR3kP>%IFH^Xd*AAOyw3$;c?&g0TQG1^>n1s%tuUGXgx~TCg-Aev zNvu{Nwb4@4SP|xEymVVVMxNF*_^AHblFRx1Et7ytYR?~9$ZcDG+3HnEPx|Iag8SZpJ4v&P$?@hRysFYNAg)gC-{wjka*|yg@Tg*}h3m^e zx!PIwXLGN8TGiedufykA+L8jtg#EZ(XN?9iTf6sn{e-L5>#r&h-g-KPF-AoZRXJxY z6-Yv?wWWMlJJX~uqobZuqMvU|eLUDB(1HPzf;Vs8v|1L|7UzQM znxavTh?f630O+BrvL-G+j(;M^PtVC9$7>oT`=!CwO!w<=eJs<~V|)lw%<1>aC@hrV zctQ(9iV*eS#;uZriTw?a7u~=+SDL{q&7NS{=ji~Q?Vz27AvKH|Qbflz>ESVWd#}1s zEdxIm3c!S!E{o)!L-GR~Ddq2(o-nu+iP4WeCk+tzch3oflDOHxvFFc?9}FB%oizRi zPEJ7nV>TzT|IFqD_8)8hChR}*`)5kwkC1IwE22e zsvGCC0gy>qnMfaEFP@}Fg$U^?iHaU8_-c3!IwR`Sq{o`X8qGiI?cc`GU)AUj8h)Mu ze_m#P14AbTalFrySMRceRz>=~Tqq|kNJ%Lh-ESH?P`aJ&;h*Q(9_Ld;YS~CUV+G5w zfUc5&|7EiNQL87@{om#N@0Zt~llMQIv_Hl4N8@iG@1(qbisYy9SJd+V1OO+Q_-B;= ze~o~Ke(8`SE6bt(elYJ87HaA-l0T>>Cw2y%RTzvb@pM~#`Y+0s4UY!irO10OgMmp| zBV^IX+89e>8{T#*Hj(u-$|rvG-aZ&`doW7ujyNe}qu99>Zmcg|l8YgJu&j>)>yZBfr)3Dk literal 0 HcmV?d00001 diff --git a/images/sparkgeo-logo.png b/images/sparkgeo-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..b3f62efa661231839ab171c251581f34576c3025 GIT binary patch literal 25952 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®B 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 literal 0 HcmV?d00001 From cebdf638124daf57dc46f2e15ae7d8ca63f26285 Mon Sep 17 00:00:00 2001 From: Alex Leamy Date: Mon, 8 Mar 2021 14:51:17 -0800 Subject: [PATCH 02/11] Update README.md --- README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 1ff1328..7cb4b75 100644 --- a/README.md +++ b/README.md @@ -106,7 +106,6 @@ For further contribution requests 5. Open a Pull Request - ## License @@ -116,12 +115,12 @@ Distributed under the MIT License. See `LICENSE` for more information. ## Contact -Project Link: [https://github.com/sparkgeo/](https://github.com/sparkgeo/) +Project Link: [https://github.com/sparkgeo/terradactile-lambda/](https://github.com/sparkgeo/terradactile-lambda/) ## Acknowledgments -Readme template edited by Alex Leamy +Readme template edited by Alex Leamy at SparkGeo Consulting Ltd. Based off original template from Othniel Drew [https://github.com/othneildrew/Best-README-Template](https://github.com/othneildrew/Best-README-Template) From 1b2682dab9153d1e381361c90186cace42339980 Mon Sep 17 00:00:00 2001 From: Alex Leamy Date: Mon, 8 Mar 2021 14:52:13 -0800 Subject: [PATCH 03/11] Update README.md --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 7cb4b75..8170a15 100644 --- a/README.md +++ b/README.md @@ -60,11 +60,9 @@ The application uses several AWS resources, including Lambda functions and an AP ## Deployment -```markdown The Serverless Application Model Command Line Interface (SAM CLI) is an extension of the AWS CLI that adds functionality for building and testing Lambda applications. It uses Docker to run your functions in an Amazon Linux environment that matches Lambda. It can also emulate your application's build environment and API. To build and deploy your application for the first time, cd to the project directory and run the following in your shell: -``` ```bash From 5822b19d25df8f8914c0dd4378dce63e4ac4a53c Mon Sep 17 00:00:00 2001 From: Alex Leamy Date: Mon, 8 Mar 2021 15:16:42 -0800 Subject: [PATCH 04/11] Update README.md --- README.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/README.md b/README.md index 8170a15..9d19c0c 100644 --- a/README.md +++ b/README.md @@ -104,12 +104,6 @@ For further contribution requests 5. Open a Pull Request - -## License - -Distributed under the MIT License. See `LICENSE` for more information. - - ## Contact From be18c41a2427e076a18a506bd1c8f05b6bc10416 Mon Sep 17 00:00:00 2001 From: Alex Leamy Date: Mon, 8 Mar 2021 15:27:02 -0800 Subject: [PATCH 05/11] Update README.md --- README.md | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 9d19c0c..8a4719a 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ -

Terradactile-Lambda

+

Terradactile Lambda

@@ -13,15 +13,14 @@ * [About this Program](#about-the-project) * [Getting Started](#getting-started) * [Prerequisites](#prerequisites) - * [Installation](#installation) + * [Installation and Deployment](#installation-and-deployment) * [Usage](#usage) * [Contributing](#contributing) -* [License](#license) * [Contact](#contact) -## About This Program +# About This Program Terradactile is an API and Lambda function for fetching, assembling, and processing elevation data. @@ -33,7 +32,7 @@ File Contents -## Getting Started +# Getting Started If you prefer to use an integrated development environment (IDE) to build and test your application, you can use the AWS Toolkit. The AWS Toolkit is an open source plug-in for popular IDEs that uses the SAM CLI to build and deploy serverless applications on AWS. The AWS Toolkit also adds a simplified step-through debugging experience for Lambda function code. See the following links to get started. @@ -55,8 +54,7 @@ To use the SAM CLI, you need the following tools. The application uses several AWS resources, including Lambda functions and an API Gateway API. These resources are defined in the `template.yaml` file in this project. You can update the template to add AWS resources through the same deployment process that updates your application code. - -### Installation and Deployment +# Installation and Deployment ## Deployment @@ -72,7 +70,7 @@ sam deploy --guided -# Usage Commands +# Usage The first command will build the source of your application. The second command will package and deploy your application to AWS, with a series of prompts: * **Stack Name**: The name of the stack to deploy to CloudFormation. This should be unique to your account and region, and a good starting point would be something matching your project name. @@ -93,7 +91,7 @@ aws cloudformation delete-stack --stack-name terradactile -## Contributing +# Contributing For further contribution requests @@ -105,15 +103,13 @@ For further contribution requests -## Contact +# Contact Project Link: [https://github.com/sparkgeo/terradactile-lambda/](https://github.com/sparkgeo/terradactile-lambda/) - -## Acknowledgments - Readme template edited by Alex Leamy at SparkGeo Consulting Ltd. Based off original template from Othniel Drew [https://github.com/othneildrew/Best-README-Template](https://github.com/othneildrew/Best-README-Template) + From fcfec437679644d326058add7b83eada773a989e Mon Sep 17 00:00:00 2001 From: Alex Leamy Date: Mon, 8 Mar 2021 15:27:50 -0800 Subject: [PATCH 06/11] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8a4719a..af6954d 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,9 @@ Terradactile is an API and Lambda function for fetching, assembling, and process ```markdown File Contents - terradactile/terradactile - Code for the application's Lambda function. -- terradactile/template.yaml - A template that defines the application's AWS resources. **Update the environment variables for BUCKET and ALLOWED_ORIGINS.** +- terradactile/template.yaml - A template that defines the application's AWS resources. + +**Update the environment variables for BUCKET and ALLOWED_ORIGINS.** ``` From c8cec67c9f9a518046f40559d1f25e9c253ef8c0 Mon Sep 17 00:00:00 2001 From: Alex Leamy Date: Wed, 10 Mar 2021 13:40:08 -0800 Subject: [PATCH 07/11] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index af6954d..91d7358 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@

- +

Terradactile Lambda

From 4064aa3158918b41398e2fdc26232779050b475b Mon Sep 17 00:00:00 2001 From: Alex Leamy Date: Wed, 10 Mar 2021 15:37:52 -0800 Subject: [PATCH 08/11] removed unnecessary images (leftovers) --- images/logo.png | Bin 2312 -> 0 bytes images/screenshot.png | Bin 6347 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 images/logo.png delete mode 100644 images/screenshot.png diff --git a/images/logo.png b/images/logo.png deleted file mode 100644 index 0f38ba9369899ff527b5b81b77c7518185f8a18a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2312 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 From e9cb3e82ce95e78a2a2afd81215a7271c664ae35 Mon Sep 17 00:00:00 2001 From: Alex Leamy <72827499+AL-SparkGeo@users.noreply.github.com> Date: Thu, 11 Mar 2021 15:46:21 -0800 Subject: [PATCH 09/11] Update README.md --- README.md | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/README.md b/README.md index 91d7358..332ec58 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,6 @@ * [Prerequisites](#prerequisites) * [Installation and Deployment](#installation-and-deployment) * [Usage](#usage) -* [Contributing](#contributing) * [Contact](#contact) @@ -91,19 +90,6 @@ To delete the sample application that you created, use the AWS CLI. Assuming you aws cloudformation delete-stack --stack-name terradactile ``` - - -# Contributing - -For further contribution requests - -1. Fork the Project -2. Create your Feature Branch -3. Commit your Changes -4. Push to the Branch -5. Open a Pull Request - - # Contact @@ -111,7 +97,7 @@ Project Link: [https://github.com/sparkgeo/terradactile-lambda/](https://github. Readme template edited by Alex Leamy at SparkGeo Consulting Ltd. -Based off original template from Othniel Drew [https://github.com/othneildrew/Best-README-Template](https://github.com/othneildrew/Best-README-Template) +Based off original template from [Othniel Drew](https://github.com/othneildrew/Best-README-Template) From 2da7715c744ec7f2d156bb6c0554d10a5be4cb95 Mon Sep 17 00:00:00 2001 From: Alex Leamy Date: Fri, 12 Mar 2021 11:13:46 -0800 Subject: [PATCH 10/11] Update README.md Updated documentation with Mike's suggestions. --- README.md | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 332ec58..b530e68 100644 --- a/README.md +++ b/README.md @@ -23,13 +23,20 @@ Terradactile is an API and Lambda function for fetching, assembling, and processing elevation data. -```markdown + File Contents -- terradactile/terradactile - Code for the application's Lambda function. -- terradactile/template.yaml - A template that defines the application's AWS resources. + +- `terradactile/terradactile` - Code for the application's Lambda function. +- `terradactile/template.yaml` - A template that defines the application's AWS resources. **Update the environment variables for BUCKET and ALLOWED_ORIGINS.** + +Sample .env file: ``` +export BUCKET=myBucket +export ALLOWED_ORIGINS=* +``` + @@ -52,7 +59,7 @@ To use the SAM CLI, you need the following tools. * Docker - [Install Docker community edition](https://hub.docker.com/search/?type=edition&offering=community) -The application uses several AWS resources, including Lambda functions and an API Gateway API. These resources are defined in the `template.yaml` file in this project. You can update the template to add AWS resources through the same deployment process that updates your application code. +The application uses several AWS resources, including Lambda functions and an API Gateway API. These resources are defined in the `/terradactile/template.yaml` file in this project. You can update the template to add AWS resources through the same deployment process that updates your application code. # Installation and Deployment @@ -65,6 +72,7 @@ To build and deploy your application for the first time, cd to the project direc ```bash +cd terradactile-lambda/terradactile/terradactile/ sam build --use-container sam deploy --guided ``` From 04dccd7932b1b967a31b06a7f2d67e3a4dd4020b Mon Sep 17 00:00:00 2001 From: Alex Leamy Date: Fri, 12 Mar 2021 11:33:45 -0800 Subject: [PATCH 11/11] Delete README_old.md --- README_old.md | 53 --------------------------------------------------- 1 file changed, 53 deletions(-) delete mode 100644 README_old.md diff --git a/README_old.md b/README_old.md deleted file mode 100644 index f594b5a..0000000 --- a/README_old.md +++ /dev/null @@ -1,53 +0,0 @@ -# Terradactile - -Terradactile is an API and Lambda function for fetching, assembling, and processing elevation data. - -This project contains source code and supporting files for a serverless application that you can deploy with the SAM CLI. It includes the following files and folders. - -- terradactile/terradactile - Code for the application's Lambda function. -- terradactile/template.yaml - A template that defines the application's AWS resources. **Update the environment variables for BUCKET and ALLOWED_ORIGINS.** - -The application uses several AWS resources, including Lambda functions and an API Gateway API. These resources are defined in the `template.yaml` file in this project. You can update the template to add AWS resources through the same deployment process that updates your application code. - -If you prefer to use an integrated development environment (IDE) to build and test your application, you can use the AWS Toolkit. -The AWS Toolkit is an open source plug-in for popular IDEs that uses the SAM CLI to build and deploy serverless applications on AWS. The AWS Toolkit also adds a simplified step-through debugging experience for Lambda function code. See the following links to get started. - -* [PyCharm](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/welcome.html) -* [IntelliJ](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/welcome.html) -* [VS Code](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/welcome.html) -* [Visual Studio](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/welcome.html) - -## Deploy the application - -The Serverless Application Model Command Line Interface (SAM CLI) is an extension of the AWS CLI that adds functionality for building and testing Lambda applications. It uses Docker to run your functions in an Amazon Linux environment that matches Lambda. It can also emulate your application's build environment and API. - -To use the SAM CLI, you need the following tools. - -* SAM CLI - [Install the SAM CLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html) -* [Python 3 installed](https://www.python.org/downloads/) -* Docker - [Install Docker community edition](https://hub.docker.com/search/?type=edition&offering=community) - -To build and deploy your application for the first time, cd to the project directory and run the following in your shell: - -```bash -sam build --use-container -sam deploy --guided -``` - -The first command will build the source of your application. The second command will package and deploy your application to AWS, with a series of prompts: - -* **Stack Name**: The name of the stack to deploy to CloudFormation. This should be unique to your account and region, and a good starting point would be something matching your project name. -* **AWS Region**: The AWS region you want to deploy your app to. -* **Confirm changes before deploy**: If set to yes, any change sets will be shown to you before execution for manual review. If set to no, the AWS SAM CLI will automatically deploy application changes. -* **Allow SAM CLI IAM role creation**: Many AWS SAM templates, including this example, create AWS IAM roles required for the AWS Lambda function(s) included to access AWS services. By default, these are scoped down to minimum required permissions. To deploy an AWS CloudFormation stack which creates or modified IAM roles, the `CAPABILITY_IAM` value for `capabilities` must be provided. If permission isn't provided through this prompt, to deploy this example you must explicitly pass `--capabilities CAPABILITY_IAM` to the `sam deploy` command. -* **Save arguments to samconfig.toml**: If set to yes, your choices will be saved to a configuration file inside the project, so that in the future you can just re-run `sam deploy` without parameters to deploy changes to your application. - -You can find your API Gateway Endpoint URL in the output values displayed after deployment. - -## Cleanup - -To delete the sample application that you created, use the AWS CLI. Assuming you used your project name for the stack name, you can run the following: - -```bash -aws cloudformation delete-stack --stack-name terradactile -```