Professional Cloud Developer

Question 196

あなたはPub/Subにメッセージを公開するウェブアプリケーションを持っています。アプリケーションの新しいバージョンをローカルでビルドし、各新しいビルドでPub/Subとの統合を迅速にテストする必要があります。ローカルテストをどのように構成すべきですか?

A.
Google CloudコンソールでAPIライブラリに移動し、Pub/Sub APIを有効にします。ローカルで開発する場合、アプリケーションがpubsub.googleapis.comを呼び出すように構成します。
B.
gcloudを使用してPub/Subエミュレータをインストールし、有効なGoogleプロジェクトIDでエミュレータを起動します。ローカルで開発する場合、PUBSUB_EMULATOR_HOST変数をエクスポートして、アプリケーションがローカルエミュレータを使用するように構成します。
C.
アプリケーションを起動する前に、`gcloud config set api_endpoint_overrides/pubsub https://pubsubemulator.googleapis.com.com/` コマンドを実行してPub/Subエンドポイントを変更します。
D.
統合開発環境(IDE)にCloud Codeをインストールします。Cloud APIに移動し、有効なGoogleプロジェクトIDに対してPub/Subを有効にします。ローカルで開発する場合、アプリケーションがpubsub.googleapis.comを呼び出すように構成します。
Question 197

あなたは最近、多数の株価を監視するアプリケーションを開発しました。大量のメッセージを受信し、単一の大規模なインメモリデータベース内の現在の株価を更新するようにPub/Subを設定する必要があります。下流のサービスは、株式取引を実行するために、インメモリデータベース内の最新の価格を必要とします。各メッセージには、株価コード、株価、更新のタイムスタンプの3つの情報が含まれています。 Pub/Subサブスクリプションをどのように設定すべきですか?

A.
exactly-once配信が有効になっているプルサブスクリプションを作成します。
B.
順序保証とexactly-once配信の両方が無効になっているプッシュサブスクリプションを作成します。
C.
exactly-once配信が有効になっているプッシュサブスクリプションを作成します。
D.
順序保証とexactly-once配信の両方が無効になっているプルサブスクリプションを作成します。
Question 198

あなたのチームは、Google Kubernetes Engine (GKE) クラスタでホストされるアプリケーションを作成しました。このアプリケーションを、2つの異なるリージョンにある2つのGKEクラスタにデプロイされたレガシーRESTサービスに接続する必要があります。アプリケーションをレガシーサービスに、回復力があり、最小限の手順で接続したいと考えています。また、レガシーサービスに対して、別のポートでプローブベースのヘルスチェックを実行できるようにしたいと考えています。どのように接続を設定すべきですか? (2つ選択)

A.
Traffic Directorをサイドカープロキシと共に使用して、アプリケーションをサービスに接続する。
B.
アプリケーション用にプロキシレスTraffic Director構成を設定する。
C.
レガシーサービスのファイアウォールを、サイドカープロキシからのヘルスチェックを許可するように構成する。
D.
レガシーサービスのファイアウォールを、アプリケーションからのヘルスチェックを許可するように構成する。
E.
レガシーサービスのファイアウォールを、Traffic Directorコントロールプレーンからのヘルスチェックを許可するように構成する。
Question 199

あなたは、Goで記述され、Google Kubernetes Engineにデプロイされたウェブアプリケーションを監視しています。CPUとメモリの使用率が増加していることに気づきました。どの関数が最も多くのCPUおよびメモリリソースを消費しているかを特定する必要があります。どうすればよいですか?

A.
アプリケーションのソースコードに各関数が呼び出されたときにログを記録するprintコマンドを追加し、アプリケーションを再デプロイする。
B.
ウェブアプリケーションのログを収集するCloud Loggingクエリを作成する。アプリケーションの最も時間のかかる関数の開始と終了のタイムスタンプの差を計算するPythonスクリプトを作成し、時間のかかる関数を特定する。
C.
OpenTelemetryとTrace exportパッケージをアプリケーションにインポートし、トレースプロバイダーを作成する。Traceの概要ページでアプリケーションのレイテンシデータを確認し、最もレイテンシを引き起こしている関数を特定する。
D.
Cloud Profilerパッケージをアプリケーションにインポートし、プロファイラエージェントを初期化する。Google Cloudコンソールで生成されたフレームグラフを確認し、時間のかかる関数を特定する。
Question 200

あなたは花の注文アプリケーションを開発しています。現在、以下の3つのマイクロサービスがあります。 • 注文サービス(注文を受け付けます) • 注文処理サービス(注文を処理します) • 通知サービス(注文が処理されたときに顧客に通知します) あなたは、これらのサービスが互いにどのように通信するかを決定する必要があります。入ってくる注文を迅速に処理し、処理のために注文情報を収集する必要があります。また、サービス間で注文が失われないようにし、非同期で通信できるようにしたいと考えています。リクエストはどのように処理されるべきですか?

A.
サービス間で直接的な同期REST API呼び出しを実装します。注文サービスは注文処理サービスの エンドポイントを呼び出します。完了すると、注文処理サービスは通知サービスのエンドポイントを呼び出します。これにより、即時のデータ転送が保証されますが、サービスが密結合になります。
B.
Google Cloud Pub/Subを使用します。注文サービスに、注文詳細を含むメッセージをnew-ordersトピックにパブリッシュさせます。注文処理サービスをこのトピックのサブスクライバーとして構成します。処理後、注文処理サービスにorder-fulfilledトピックにメッセージをパブリッシュさせ、通知サービスをそのトピックにサブスクライブするように構成します。
C.
共有データベースを利用します。注文サービスは、中央データベースのテーブルに注文詳細を「PENDING」として書き込みます。注文処理サービスは、このテーブルを定期的にポーリングして「PENDING」の注文を探し、処理してステータスを「FULFILLED」に更新します。通知サービスは、通知を送信するために「FULFILLED」の注文をテーブルからポーリングします。
D.
Google Cloud Tasksを使用します。注文サービスは、注文ペイロードを含めて、注文処理サービスをターゲットとするキューにタスクを作成します。注文処理サービスが処理を完了すると、通知サービスをターゲットとする別のキューに別のタスクを作成します。