ennru / akkaserverless-TemperatureTracker

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TemperatureTracker

Designing

While designing your service it is useful to read designing Cloudstate services

Developing

This project has a bare-bones skeleton service ready to go, but in order to adapt and extend it it may be useful to read up on developing Cloudstate services and in particular the Java section

Building

To build, at a minimum you need to generate and process sources, particularly when using an IDE. A convenience is compile your project:

mvn compile

Running Locally

In order to run your application locally, you must run the Cloudstate proxy. The included docker-compose file contains the configuration required to run the proxy for a locally running application. To start the proxy, run the following command from this directory:

docker-compose up -d

On Linux this requires Docker 20.10 or later (moby/moby#40007), or for the USER_FUNCTION_HOST environment variable to be set manually.

To start the application locally, the exec-maven-plugin is used. Use the following command:

mvn exec:java

With both the proxy and your application running, any defined endpoints should be available at http://localhost:9000. For example, given grpcurl:

> grpcurl -plaintext -d '{"entityId": "foo"}' localhost:9000 sample.domain.TemperatureLocationEntity/GetValue
ERROR:
  Code: Unknown
  Message: Unexpected entity failure

Note: The failure is to be expected if you have not yet provided an implementation of GetValue in your entity.

Deploying

To deploy your service, install the akkasls CLI as documented in Setting up a local development environment and configure a Docker Registry to upload your docker image to.

You will need to update the akkasls.dockerImage property in the pom.xml and refer to Configuring registries for more information on how to make your docker image available to Akka Serverless.

Finally you can or use the Akka Serverless Console to create a project and then deploy your service into the project either by using mvn deploy, through the akkasls CLI or via the web interface. When using mvn deploy, Maven will also conveniently package and publish your docker image prior to deployment.

About


Languages

Language:Java 100.0%