Mais conteúdo relacionado Semelhante a [Kotlin Serverless 工作坊] 單元 2 - 簡介 Kotlin Serverless (20) Mais de Shengyou Fan (20) [Kotlin Serverless 工作坊] 單元 2 - 簡介 Kotlin Serverless18. val invoker by configurations.creating
dependencies {
implementation("...:functions-framework-api:$ver")
invoker("...:java-function-invoker:$ver")
}
—
Cloud Function
• functions-framework-api
• java-function-invoker
Java Invoker
19. task<JavaExec>("runFunction") {
group = "gcp"
main = "com.google.cloud.functions.invoker.runner.Invoker"
classpath(invoker, sourceSets.main.get().runtimeClasspath)
args(
"--target", project.findProperty("...") ?: "",
"--port", project.findProperty("...") ?: 8080
)
}
Task
—
Gradle Task
$ ./gradlew runFunction
20. class Handler: HttpFunction {
@Throws(IOException::class)
override fun service(req: HttpRequest, res: HttpResponse) {
// ...
}
}
Handler
—
• Class
• HttpFunction (
functions-framework-api)
• service()
• req res
21. class Handler: HttpFunction {
@Throws(IOException::class)
override fun service(req: HttpRequest, res: HttpResponse) {
with(res) {
setStatusCode(HttpURLConnection.HTTP_OK)
setContentType("plain/text")
writer.write("Hello, Cloud Functions”)
}
}
}
Plain Text
—
• HTTP Status Code
• Content-Type
•
23. $ gcloud functions deploy PUBLIC_PATH
--region asia-east2
--runtime java11
--trigger-http
--memory 256MB
--source=build/deploy
--entry-point ENTRY_POINT_CLASS
--allow-unauthenticated
—
• gcloud