概要
2019/5/13追記
CloudRunからSQLデータベースへ接続できるようになりました。
Serverlessでシステム作るときにだいたい必要になってくる秘匿情報管理、VPCリソースへのアクセス、非同期処理をCloudRunで利用可能か見てみました。
また、CloudRunだけでなくAppEngine、CloudFunctionsでもどうか調べてみたら、結局まだまだAppEngineが最強だったってお話です。
秘匿情報の管理
berglasを使えば、AppEngine、CloudFuntions、CloudRunどれでも管理が可能です。
VPC内へのアクセス
GCPではマネージドサービスからVPC内へのルーティングとしてServerless VPC Accessというサービスがあります。
アーキテクチャ
Serverless VPC Access Connectorを作成し、AppEngine、CloudFunctionsからはConnectorにアクセスします。VPCへはConnectorからアクセスします。

ただ、この図を見ても分かる通り、現状AppEngineとCloudFunctionsしか対応していません。
SQLデータベースやMemoryStore(Redis)へのアクセスが必要なケースではまだCloudRunでの運用は難しそうです。
また、このServlerless VPC Access自体us-central1にしかないので、早く他のリージョンへ展開してほしいところです。(AppEngineを東京リージョンに作っても一度us-central1経由になると思われる)
非同期処理
マイクロサービス間を非同期につなぐキューイングのサービスとしてCloudTasksがあります。(AWSでいうところのSQS)
ドキュメント
キューの作成
gcloud beta tasks queues create <キュー名>
キューが作成されると、ブラウザから確認できるようになる。

思いっきり、AppEngineキューって書いてます。。。
キューへのデータ登録
APIのドキュメント
必要ライブラリ(python)
google-cloud-tasks==1.0.0
キューへのデータ登録はCloudRunからでもできます。
data = 'hoge'
client = tasks_v2.CloudTasksClient()
parent = client.queue_path('<プロジェクト名>', '<リージョン>', '<キュー名>')
task = {
'app_engine_http_request': { # Specify the type of request.
'http_method': 'POST',
'relative_uri': '/example_task_handler'
}
}
task['app_engine_http_request']['body'] = data.encode()
response = client.create_task(parent, task)
タスクのフォーマット
ただ、タスクのフォーマットを見ても分かる通り、AppEngine向けの仕様になっており、キューに登録されたデータの自動ディスパッチはAppEngineになります。
(キューへの登録や手動で取り出す分にはCloudRunからでも可能ですが)
まとめ
Serverlessでアーキテクチャを考えるときにだいたい出てくる秘匿情報管理、VPCアクセス、非同期処理と見てきましたが、全てに対応できているのはAppEngineのみでした。
CloudRunは期待しているんですが、まだ機能が少ないのと、us-central1にしかないので、早く機能追加&東京リージョンへきてほしいですね。