ssrc serverless API
URL : https://ha11dm4x06.execute-api.us-east-1.amazonaws.com/Prod/ping
The ssrc project, created with aws-serverless-java-container
.
The starter project defines a simple /ping
resource that can accept GET
requests with its tests.
The project folder also includes a template.yml
file. You can use this SAM file to deploy the project to AWS Lambda and Amazon API Gateway or test in local with the SAM CLI.
Pre-requisites
Building the project
You can use the SAM CLI to quickly build the project
$ mvn archetype:generate -DartifactId=my-service -DarchetypeGroupId=com.amazonaws.serverless.archetypes -DarchetypeArtifactId=aws-serverless-jersey-archetype -DarchetypeVersion=1.5 -DgroupId=my.service -Dversion=1.0-SNAPSHOT -Dinteractive=false
$ cd my-service
$ sam build
Building resource 'MyServiceFunction'
Running JavaGradleWorkflow:GradleBuild
Running JavaGradleWorkflow:CopyArtifacts
Build Succeeded
Built Artifacts : .aws-sam/build
Built Template : .aws-sam/build/template.yaml
Commands you can use next
=========================
[*] Invoke Function: sam local invoke
[*] Deploy: sam deploy --guided
Testing locally with the SAM CLI
From the project root folder - where the template.yml
file is located - start the API with the SAM CLI.
$ sam local start-api
...
Mounting com.amazonaws.serverless.archetypes.StreamLambdaHandler::handleRequest (java8) at http://127.0.0.1:3000/{proxy+} [OPTIONS GET HEAD POST PUT DELETE PATCH]
...
Using a new shell, you can send a test ping request to your API:
$ curl -s http://127.0.0.1:3000/ping | python -m json.tool
{
"pong": "Hello, World!"
}
Deploying to AWS
To deploy the application in your AWS account, you can use the SAM CLI's guided deployment process and follow the instructions on the screen
$ sam deploy --guided
Once the deployment is completed, the SAM CLI will print out the stack's outputs, including the new application URL. You can use curl
or a web browser to make a call to the URL
...
-------------------------------------------------------------------------------------------------------------
OutputKey-Description OutputValue
-------------------------------------------------------------------------------------------------------------
MyServiceApi - URL for application https://xxxxxxxxxx.execute-api.us-west-2.amazonaws.com/Prod/pets
-------------------------------------------------------------------------------------------------------------
Copy the OutputValue
into a browser or use curl to test your first request:
$ curl -s https://xxxxxxx.execute-api.us-west-2.amazonaws.com/Prod/ping | python -m json.tool
{
"pong": "Hello, World!"
}