クラスターで提供したい静的 Web サイト バンドルがあります。バンドルはGoogleクラウドストレージバケットに保存されているため、ファイルを返すために別の「サーバー」は実際には必要ないかもしれないと思います.
Python-Flask にバケットからファイルを参照させることができましたが、Ambassador に同じことをさせる方法がわかりません。バンドルを nginx インスタンスに追加するようなこともできますが、JS バンドルを Docker イメージにビルドしたくないので、迅速な更新を行うことができます。
次のことを行うためのアンバサダー ルートの設定方法がわかりません。
ユーザーが
彼らはindex.html
私の Google バケットからサービスを取得しますmy-bucket/index.html
index.html がファイルを内部的に参照する場合 (/static/js/main.js)、Ambassador は次の場所にあるファイルを提供します。my-bucket/static/js/main.js
私は次のようなサービスを設定しようとしました:
apiVersion: v1
kind: Service
metadata:
annotations:
getambassador.io/config: |
---
apiVersion: ambassador/v0
kind: Mapping
name: website_mapping
prefix: /website/
service: https://my-bucket-url/index.html
name: website-service
labels:
app: website-service
spec:
ports:
- port: 80
targetPort: 80
name: http-website
selector:
app: website
しかし、に移動するmy-website.com/website/
と、コンソールに「プレーンテキストドキュメントのエンコーディングの文字が宣言されていません」という503エラーが表示されるだけです
私はこれについて間違っているように感じます。アンバサダーを使用してこのようにバケツから直接サービスを提供できますか、それとも nginx のようなものが本当に必要ですか?