The English version of quarkus.io is the official project site. Translated sites are community supported on a best-effort basis.

Google Cloud Functionsを使用した Funqy HTTP バインディング

HTTP クライアントが Google Cloud Function 上で Funqy 関数を呼び出すことができるようにする場合、Quarkus では、1 つの Google Cloud Function としてデプロイされた HTTP を通じて複数の Funqy 関数を公開することができます。なお、このアプローチは、通常の Funqy Google Cloud Function の統合よりもオーバーヘッドが増加します。

この技術は、previewと考えられています。

preview では、下位互換性やエコシステムでの存在は保証されていません。具体的な改善には設定や API の変更が必要になるかもしれませんが、 stable になるための計画は現在進行中です。フィードバックは メーリングリストGitHub の課題管理 で受け付けています。

For a full list of possible statuses, check our FAQ entry.

Follow the Google Cloud Functions Http Guide. It walks through using a variety of HTTP frameworks on Google Cloud Functions, including Funqy.

The Funqy HTTP + Google Cloud Functions binding is not a replacement for REST over HTTP. Because Funqy needs to be portable across a lot of different protocols and function providers its HTTP binding is very minimalistic and you will lose REST features like linking and the ability to leverage HTTP features like cache-control and conditional GETs. You may want to consider using Quarkus’s JAX-RS, Spring MVC, or Vert.x Web Reactive Route support instead. They also work with Quarkus and Google Cloud Functions.

追加のクイックスタート

Beyond generating a Google Cloud Functions project that is covered in the Google Cloud Functions HTTP Guide, there’s also a quickstart for running Funqy HTTP on Google Cloud Functions.

Git レポジトリをクローン (git clone https://github.com/quarkusio/quarkus-quickstarts.git) するか、 アーカイブ をダウンロードします。

このソリューションは funqy-google-cloud-functions-http-quickstart ディレクトリ にあります。

コード

There is nothing special about the code and more importantly nothing Google Cloud specific. Funqy functions can be deployed to many environments and Google Cloud Functions is one of them. The Java code is actually the same exact code as the funqy-http-quickstart.

はじめに

The steps to get this quickstart running are exactly the same as defined in the Google Cloud Functions HTTP Guide. These differences are that you are running from a quickstart and the Maven dependencies are slightly different.

pom.xml
<dependency>
    <groupId>io.quarkus</groupId>
    <artifactId>quarkus-funqy-http</artifactId>
</dependency>
<dependency>
    <groupId>io.quarkus</groupId>
    <artifactId>quarkus-google-cloud-functions-http</artifactId>
</dependency>
build.gradle
implementation("io.quarkus:quarkus-funqy-http")
implementation("io.quarkus:quarkus-google-cloud-functions-http")