Google Cloud Storageバケットのファイル変更をサブスクライブし、ファイルをサードパーティのFTPサイトにアップロードするGoogle Cloud Functionを開発したいと思います。このFTPサイトには、クライアントのホワイトリストIPアドレスが必要です。
そのため、Google Cloud Functionsコンテナーの静的IPアドレスを取得することは可能ですか?
いいえ、これは不可能です。とはいえ、GoogleのすべてのIPをホワイトリストに登録することもできます。
Compute EngineのIP範囲はどこにありますか?→メソッドを提供しますGCPのすべてのIPにアクセスします。
ただし、セキュリティへの影響に注意してください。
まず第一に、これは不当な要求ではありません。 AWS Lambdasはすでにこの機能をサポートしており、しばらくの間使用できます。この機能に興味がある場合は、この機能のリクエストにスターを付けてください: https://issuetracker.google.com/issues/112629904
次に、私もその問題に投稿した回避策にたどり着きました。おそらくこれもあなたのために働くでしょう:
このアプローチの注意点:-動的にスケーリングできるように、プロキシをマネージドインスタンスグループのGCP内部LBの背後に配置したかったが、GCP ILBが基本的にサブネットをホワイトリストに登録しているため、GCPサポートはこれが不可能であることを確認した。クラウド機能CIDRはそのサブネット外にあります
これがお役に立てば幸いです。
更新:先日、この正確な機能の早期アクセスベータ版が発表されました!!
「Cloud Functions PM here。実際にこの機能をテストしたい場合は、早期アクセスプレビューを用意しています。
このフォームに記入して、追加してください...」
フォームは上記のリンクされた問題にあります。
Google Cloud Functionsに静的IPを割り当てることはできません。これは、「サーバーレス」、つまりオンデマンドでサーバーを割り当てたり割り当て解除したりするアーキテクチャの性質とほぼ直交しているためです。
ただし、HTTPプロキシを利用して同様の効果を得ることができます。 Google Compute Engineインスタンスをセットアップし、静的IPを割り当てて、 https://www.npmjs.com/package/http-proxy などのプロキシライブラリをインストールします。その後、このプロキシを介してすべての外部API呼び出しなどをルーティングできます。
ただし、これにより規模と柔軟性が低下する可能性がありますが、回避策になる可能性があります。