
始める前に
- ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
- ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
- 画面左上の [ラボを開始] をクリックして開始します
Create Alerting Policy
/ 10
Failure starting the pipeline on Dataflow
/ 10
Invalid Bigquery table
/ 10
Too Much Logging
/ 10
このラボの内容:
Python の基本的な知識。
各ラボでは、新しい Google Cloud プロジェクトとリソースセットを一定時間無料で利用できます。
Qwiklabs にシークレット ウィンドウでログインします。
ラボのアクセス時間(例: 1:15:00
)に注意し、時間内に完了できるようにしてください。
一時停止機能はありません。必要な場合はやり直せますが、最初からになります。
準備ができたら、[ラボを開始] をクリックします。
ラボの認証情報(ユーザー名とパスワード)をメモしておきます。この情報は、Google Cloud Console にログインする際に使用します。
[Google Console を開く] をクリックします。
[別のアカウントを使用] をクリックし、このラボの認証情報をコピーしてプロンプトに貼り付けます。
他の認証情報を使用すると、エラーが発生したり、料金の請求が発生したりします。
利用規約に同意し、再設定用のリソースページをスキップします。
Google Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。
Google Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。
Google Cloud コンソールで、右上のツールバーにある [Cloud Shell をアクティブにする] ボタンをクリックします。
[続行] をクリックします。
環境がプロビジョニングされ、接続されるまでしばらく待ちます。接続した時点で認証が完了しており、プロジェクトに各自のプロジェクト ID が設定されます。次に例を示します。
gcloud は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。
出力:
出力例:
出力:
出力例:
Google Cloud で作業を開始する前に、Identity and Access Management(IAM)内で適切な権限がプロジェクトに付与されていることを確認する必要があります。
Google Cloud コンソールのナビゲーション メニュー()で、[IAM と管理] > [IAM] を選択します。
Compute Engine のデフォルトのサービス アカウント {project-number}-compute@developer.gserviceaccount.com
が存在し、編集者
のロールが割り当てられていることを確認します。アカウントの接頭辞はプロジェクト番号で、ナビゲーション メニュー > [Cloud の概要] > [ダッシュボード] から確認できます。
編集者
のロールがない場合は、以下の手順に沿って必要なロールを割り当てます。729328892908
)をコピーします。{project-number}
はプロジェクト番号に置き換えてください。このセクションでは、条件が満たされた場合にトリガーされるアラート ポリシーを作成します。
Google Cloud コンソールのタイトルバーにある [検索] フィールドに「Monitoring」と入力して [検索] をクリックし、[Monitoring] をクリックします。
左側のナビゲーション パネルで [アラート] をクリックします。
[アラート] ページで [+ Create policy] をクリックします。
[指標を選択] プルダウンをクリックし、[Active] のチェックをオフにします。
a. リソースと指標名のフィルタに「Dataflow Job」と入力し、[Dataflow Job] > [Job] をクリックします。[Failed
] を選択して [適用] をクリックします。
b. [ローリング ウィンドウ関数] を [Sum
] に設定します。
c. [NEXT] をクリックします。[しきい値] に「0」を設定します。
[Next] ボタンをクリックして、[Configure notifications and finalize alert] の手順に進みます。
読み込まれたフォームで、[通知チャンネル] プルダウン メニューをクリックし、[Manage Notification Channels] をクリックします。
新しいウィンドウが開き、サポートされている通知チャンネルの種類が示されます。
[Email] の行まで下方向にスクロールし、右端にある [ADD NEW] をクリックします。
a. [Email Address] に個人メールアドレスを入力します。
b. [Display Name] に「Qwiklabs Student
」を入力します。
c. [SAVE] をクリックします。このウィンドウを閉じ、前の [通知ポリシーの作成] ウィンドウに戻ります。
[MANAGE NOTIFICATION CHANNELS] の左側にある更新アイコンをクリックします。
[通知チャンネル] プルダウン メニューを再度クリックします。今追加した受講者アカウントの表示名があることを確認します。
[Qwiklabs Student] の左側にあるチェックボックスをオンにして、[OK] をクリックします。
[アラート ポリシー名] のテキスト ボックスに「Failed Dataflow Job
」を入力します。
もう一度 [NEXT] をクリックします。
アラートを確認して [ポリシーを作成] をクリックします。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
my_pipeline.py
という名前の新しいファイルを開きます。任意のテキスト エディタ(以下の例では Vim)を使用して、このファイルに上のコードをコピーして貼り付け、保存します。ファイルにコードを貼り付けた後、必ず保存してください。
以下のコマンドを実行して、Storage バケットを作成します。
パイプラインを起動する上のコマンドは失敗し、以下のスクリーンショットのようなスタック トレースが表示されます。
この失敗は Beam エンドで発生しています。パイプライン コードで WriteToText(known_args.output)
が指定されていますが、--output フラグを指定しなかったため、Beam 検証に合格せず、Dataflow でパイプラインを起動できませんでした。Dataflow ジョブを起動できなかったため、この起動オペレーションでジョブ ID は関連付けられませんでした。つまり、受信トレイにアラートメールは届きません。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
このセクションでは、必要な --output フラグを指定して再度パイプラインを起動します。今度は Dataflow パイプラインの起動には成功しますが、無効な BigQuery テーブルが意図的に追加されているため、ジョブは数分後に失敗します。この失敗によりアラート ポリシーがトリガーされ、アラートメールが送信されます。
Google Cloud コンソールのタイトルバーにある [検索] フィールドに「Dataflow」と入力して [検索] をクリックし、[Dataflow] をクリックします。
[ジョブ] をクリックします。
ページに一覧表示されている Dataflow ジョブをクリックします。
約 4 分待つと、ジョブの失敗が表示されます。この失敗でアラート ポリシーがトリガーされ、メールの受信トレイを見るとアラートメールが表示されています。
Dataflow パイプラインのジョブグラフの下に、[ログ] パネルが表示されます。[表示] をクリックします。[ジョブのログ]、[ワーカーログ]、[診断]、[BigQuery のジョブ]、[データ サンプリング] というタブが表示されます。
[ジョブのログ] タブをクリックして、ログエントリを確認します。
同様に、[ワーカーログ] タブをクリックしてログを確認します。
[診断] タブをクリックすると、クリック可能なリンクが表示されます。
リンクをクリックすると、Error Reporting のページが表示されます。ここにはエラーの詳細が表示されています。スタック トレースを調べると、パイプライン コードのタイポが問題だとわかりました。
コードでは「bigquery」が、意図的に間違えて「bugquery」と入力されているため、Dataflow ジョブは失敗し、アラート ポリシーがトリガーされてメールが送信されます。次のセクションでは、コードを修正して、パイプラインを再起動します。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
テキスト エディタ(Vim などの任意のエディタ)を使用して my_pipeline.py
ファイルを開き、bugquery
を bigquery
に置き換えてコードを修正します。
bugquery-public-data.crypto_bitcoin.transactions
にあります。これを bigquery-public-data.crypto_bitcoin.transactions
に変更します。
ターミナルで以下のコマンドを実行して、パイプラインを起動します。
パイプラインが完了するまでに約 7 分かかります。
Google Cloud コンソールのタイトルバーにある [検索] フィールドに「Dataflow」と入力して [検索] をクリックし、[Dataflow] をクリックします。
[ジョブ] をクリックします。この新しいジョブをクリックすると、ジョブグラフのページの右端にある [ジョブ ステータス] に「完了しました
」と表示されます。ジョブが完了していない場合は、正常に完了するまで待ちます。
下部にある [ログ] を開き、[ワーカーログ] タブを確認します。
[ワーカーログ] タブには、以下のスクリーンショットのように、形式「the element is {'version' : ....... }
」のログエントリが表示されます。
パイプライン コードの以下の行により、これらのエントリがログに記録されます。
この問題を簡単に解決するには、パイプライン コードからロギングの行を削除し、Dataflow パイプラインを再実行します。完了後は、[診断] タブに同様のメッセージは表示されません。
ブラウザの戻るボタンをクリックして、Dataflow の [ジョブ] ページに戻ります。
開いたログパネルで [BigQuery のジョブ] タブをクリックします。[データのロケーション] プルダウン メニューで [us(米国の複数のリージョン)] を選択して、[BigQuery ジョブを読み込む] をクリックします。[確認] をクリックします。
パイプラインの一部として 2 つのジョブがリストされています。
これによりコマンドが Cloud Shell に貼り付けられるので、そのコマンドを実行してください。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
ラボが完了したら、[ラボを終了] をクリックします。ラボで使用したリソースが Google Cloud Skills Boost から削除され、アカウントの情報も消去されます。
ラボの評価を求めるダイアログが表示されたら、星の数を選択してコメントを入力し、[送信] をクリックします。
星の数は、それぞれ次の評価を表します。
フィードバックを送信しない場合は、ダイアログ ボックスを閉じてください。
フィードバックやご提案の送信、修正が必要な箇所をご報告いただく際は、[サポート] タブをご利用ください。
Copyright 2025 Google LLC All rights reserved. Google および Google のロゴは、Google LLC の商標です。その他すべての社名および製品名は、それぞれ該当する企業の商標である可能性があります。
このコンテンツは現在ご利用いただけません
利用可能になりましたら、メールでお知らせいたします
ありがとうございます。
利用可能になりましたら、メールでご連絡いたします
1 回に 1 つのラボ
既存のラボをすべて終了して、このラボを開始することを確認してください