mirror of
https://github.com/ClaytonWWilson/Listify.git
synced 2026-03-10 18:55:03 +00:00
Set up initial Lambda sturucture with Cognito
Create demo Lambda/Gateway pair with Cognito integration
This commit is contained in:
42
Tooling/EndpointSetup.sh
Normal file
42
Tooling/EndpointSetup.sh
Normal file
@@ -0,0 +1,42 @@
|
||||
#Base script from: https://github.com/NMerz/DoctorsNote/blob/master/AWS%20Setup/Lambda-GatewayInitialization.sh
|
||||
|
||||
#NOTE: This has been tested and works; however, the apigateway does not properly show as a trigger in AWS's web UI
|
||||
#NOTE2: This assumes that the root Gateway and Lambda role have been set up previously (one-time setup) and their values are store in the constants below
|
||||
|
||||
#constants
|
||||
APIID=datoh7woc9 #rest-api-id is tied to the apigateway while resource-id seems tied to the specific url extension
|
||||
ROOTRESOURCEID=6xrzhzidxh #gateway root should have a consistent resource id which will serve as parent for many apis
|
||||
LAMBDAROLE=arn:aws:iam::569815541706:role/LambdaBasic
|
||||
LANGUAGE=java11
|
||||
DEPLOYSTAGE=Development
|
||||
|
||||
DEBUGFILE=/dev/null
|
||||
|
||||
echo -n "Please enter function name: "
|
||||
read functionName
|
||||
echo -n "Please enter path to zip of function code: "
|
||||
read functionPath
|
||||
echo -n "Please enter url extension: "
|
||||
read partName
|
||||
|
||||
LAMBDAARN=$(aws lambda create-function --function-name ${functionName} --zip-file fileb://${functionPath} --runtime ${LANGUAGE} --role ${LAMBDAROLE} --handler ${functionName}.lambda_handler | head -n 3 | tail -n 1 | cut -d \" -f 4)
|
||||
|
||||
echo ${LAMBDAARN} > ${DEBUGFILE}
|
||||
|
||||
RESOURCEID=$(aws apigateway create-resource --rest-api-id ${APIID} --parent-id ${ROOTRESOURCEID} --path-part ${partName} | head -n 2 | tail -n 1 | cut -d \" -f 4)
|
||||
|
||||
echo ${RESOURCEID} > ${DEBUGFILE}
|
||||
|
||||
aws apigateway put-method --rest-api-id ${APIID} --resource-id ${RESOURCEID} --http-method POST --authorization-type COGNITO_USER_POOLS --authorizer-id awt4cs --api-key-required > ${DEBUGFILE}
|
||||
|
||||
aws apigateway put-integration --rest-api-id ${APIID} --resource-id ${RESOURCEID} --http-method POST --type AWS --integration-http-method POST --uri arn:aws:apigateway:us-east-2:lambda:path/2015-03-31/functions/${LAMBDAARN}/invocations > ${DEBUGFILE}
|
||||
|
||||
aws lambda add-permission --function-name ${functionName} --statement-id ${functionName}API --action lambda:InvokeFunction --principal apigateway.amazonaws.com > ${DEBUGFILE}
|
||||
|
||||
aws apigateway put-method-response --rest-api-id ${APIID} --resource-id ${RESOURCEID} --http-method POST --status-code 200 > ${DEBUGFILE}
|
||||
|
||||
aws apigateway put-integration-response --rest-api-id ${APIID} --resource-id ${RESOURCEID} --http-method POST --status-code 200 --selection-pattern "" > ${DEBUGFILE}
|
||||
|
||||
aws apigateway create-deployment --rest-api-id ${APIID} --stage-name ${DEPLOYSTAGE} --description "Deployment by creation script for function ${functionName}" > ${DEBUGFILE}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user