0

クラスターで提供したい静的 Web サイト バンドルがあります。バンドルはGoogleクラウドストレージバケットに保存されているため、ファイルを返すために別の「サーバー」は実際には必要ないかもしれないと思います.

Python-Flask にバケットからファイルを参照させることができましたが、Ambassador に同じことをさせる方法がわかりません。バンドルを nginx インスタンスに追加するようなこともできますが、JS バンドルを Docker イメージにビルドしたくないので、迅速な更新を行うことができます。

次のことを行うためのアンバサダー ルートの設定方法がわかりません。

ユーザーが

https://my-website.com/

彼らは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 のようなものが本当に必要ですか?

4

1 に答える 1