web-dev-qa-db-ja.com

Google Cloud Functionsの静的IPアドレスを取得できますか?

Google Cloud Storageバケットのファイル変更をサブスクライブし、ファイルをサードパーティのFTPサイトにアップロードするGoogle Cloud Functionを開発したいと思います。このFTPサイトには、クライアントのホワイトリストIPアドレスが必要です。

そのため、Google Cloud Functionsコンテナーの静的IPアドレスを取得することは可能ですか?

26
EthanS

いいえ、これは不可能です。とはいえ、GoogleのすべてのIPをホワイトリストに登録することもできます。

Compute EngineのIP範囲はどこにありますか?→メソッドを提供しますGCPのすべてのIPにアクセスします。

ただし、セキュリティへの影響に注意してください。

8
Don Scott

まず第一に、これは不当な要求ではありません。 AWS Lambdasはすでにこの機能をサポートしており、しばらくの間使用できます。この機能に興味がある場合は、この機能のリクエストにスターを付けてください: https://issuetracker.google.com/issues/112629904

次に、私もその問題に投稿した回避策にたどり着きました。おそらくこれもあなたのために働くでしょう:

  • VPCコネクタを設定する
  • VPCにクラウドを作成するNAT
  • パブリックIPを持たないプロキシホストを作成して、下りトラフィックがCloud NAT経由でルーティングされるようにします
  • VPCコネクタを使用し、すべての送信トラフィックにプロキシサーバーを使用するように構成されているCloud Functionを構成する

このアプローチの注意点:-動的にスケーリングできるように、プロキシをマネージドインスタンスグループのGCP内部LBの背後に配置したかったが、GCP ILBが基本的にサブネットをホワイトリストに登録しているため、GCPサポートはこれが不可能であることを確認した。クラウド機能CIDRはそのサブネット外にあります

これがお役に立てば幸いです。

更新:先日、この正確な機能の早期アクセスベータ版が発表されました!!

「Cloud Functions PM here。実際にこの機能をテストしたい場合は、早期アクセスプレビューを用意しています。

このフォームに記入して、追加してください...」

フォームは上記のリンクされた問題にあります。

17
Jeff Welling

Google Cloud Functionsに静的IPを割り当てることはできません。これは、「サーバーレス」、つまりオンデマンドでサーバーを割り当てたり割り当て解除したりするアーキテクチャの性質とほぼ直交しているためです。

ただし、HTTPプロキシを利用して同様の効果を得ることができます。 Google Compute Engineインスタンスをセットアップし、静的IPを割り当てて、 https://www.npmjs.com/package/http-proxy などのプロキシライブラリをインストールします。その後、このプロキシを介してすべての外部API呼び出しなどをルーティングできます。

ただし、これにより規模と柔軟性が低下する可能性がありますが、回避策になる可能性があります。

2
Cais Manai