指南主題:
診斷基礎架構
本頁提供指引,說明如何排解及驗證匯總服務基礎架構的問題。請按照步驟找出並解決問題。
排解 Terraform 問題
Terraform 是 HashiCorp 建立的基礎架構即程式碼 (IaC) 平台,也是將匯總服務部署至所選公有雲的主要驅動程式。如果尚未安裝 Terraform,請參閱 HashiCorp 說明文件,瞭解如何在本機取得 CLI。
如果需要切換 Terraform 版本,也可以考慮安裝 tfenv。
如果無法解決匯總服務問題,請提交 GitHub 問題或填寫技術支援表單,通知我們。
如要手動切換 Terraform:
rm -rf $(which terraform)
wget https://releases.hashicorp.com/terraform/1.2.3/terraform_1.2.3_linux_amd64.zip
unzip terraform_1.2.3_linux_amd64.zip
mv terraform /usr/local/bin/terraform
terraform --version
如果 Terraform 錯誤不明確,可以啟用 TRACE 層級的 Terraform 記錄,查看輸出內容。
Google Cloud
Google Cloud 適用的 Terraform 供應商是由 HashiCorp 和 Google 共同開發。如有其他問題或需要疑難排解建議,請與 Cloud Terraform 支援團隊聯絡,或前往 Hashicorp Discuss 入口網站的 Google 專區。
Amazon Web Services
如需偵錯說明文件,請前往 AWS 網站。此外,我們也建議您查看 HashiCorp Discuss 入口網站的 AWS 專區。
如對 Terraform 有其他疑問,請參閱 HashiCorp 社群入口網站。 如需一般 Terraform 的疑難排解建議,請參閱偵錯說明文件。
修改這些目錄時請務必謹慎,因為移除這些目錄會導致 Terraform 無法再辨識狀態。系統會嘗試重新佈建所有資源,如果資源名稱完全相同,就會發生錯誤。如果問題仍未解決,請填寫技術支援表單與我們聯絡。
修改這些目錄時請務必謹慎,因為移除這些目錄會導致 Terraform 無法再辨識狀態。系統會嘗試重新佈建所有資源,如果資源名稱完全相同,就會發生錯誤。如果問題仍未解決,請填寫技術支援表單與我們聯絡
驗證雲端設定
確認您選擇的公有雲中,是否已正確部署匯總服務基礎架構。為此,我們會使用範例偵錯報表,並在偵錯模式下執行工作。如果匯總服務可以接收及回應 API 要求,就表示服務正常運作。如果您尚未設定,建議您使用 Postman 或 cURL 設定對匯總服務的 API 呼叫。請注意,在一般匯總作業期間,偵錯模式應設為關閉 (false)。
除了下列步驟,如要進一步驗證匯總服務基礎架構,請調查公有雲中佈建的所有雲端元件。
步驟
如要產生範例偵錯報表和輸出網域檔案,請按照程式碼研究室的相關步驟操作:
- Google Cloud:按照「匯總服務 Google Cloud 程式碼研究室」的步驟 3.1.1 至 3.1.4 操作。
- Amazon Web Services:請按照匯總服務 AWS Codelab 的步驟 4.1 至 4.4 操作
使用這個主體執行
createJob要求,並替換醒目顯示的預留位置:{ "job_request_id": "<job_request_id>", "input_data_blob_prefix": "<report_folder>/<report_name>.avro", "input_data_bucket_name": "<input_bucket_name>", "output_data_blob_prefix": "<output_folder>/<summary_report_prefix>", "output_data_bucket_name": "<output_bucket_name>", "job_parameters": { "output_domain_blob_prefix": "<output_domain_folder>/<output_domain>.avro", "output_domain_bucket_name": "<output_domain_bucket_name>", "attribution_report_to": "<reporting_origin_domain>", "report_error_threshold_percentage": "10", // example value "debug_run": "true" // optional, but should be false by default } }執行
getJob要求,即可查看回應。如果收到下列回應,表示匯總服務已正確部署。{ "job_status": "FINISHED", "request_received_at": <utc_timestamp>, "request_updated_at": <utc_timestamp>, "job_request_id": "<job_request_id>", "input_data_blob_prefix": "<report_folder>/<input_report_prefix>.avro", "input_data_bucket_name": "<input_bucket_name>", "output_data_blob_prefix": "<output_folder>/<summary_report_prefix>", "output_data_bucket_name": "<output_bucket_name>", "postback_url": "", "result_info": { "return_code": "<return_code_and_message>", "return_message": "Aggregation job successfully processed", "error_summary": { "error_counts": [], "error_messages": [] }, "finished_at": <utc_timestamp> }, "job_parameters": { "debug_run": "true", // optional, but should be false by default "output_domain_bucket_name": "<output_domain_bucket_name>", "output_domain_blob_prefix": "<output_domain_folder>/<output_domain>.avro", "attribution_report_to": "<reporting_origin_domain>" }, "request_processing_started_at": <utc_timestamp> }
如果沒有收到 job_status: FINISHED 回覆,請前往所選公有雲的 Compute Engine 或 EC2 資源,收集更多資訊。檢查匯總服務執行個體,並檢查記錄檔,然後記錄 TEE container launcher initiating 和 TEE container launcher exiting 之間顯示的資訊,提供給技術支援團隊。
Google Cloud
- 前往 Google Cloud:Compute Engine。
- 按一下「VM instances」(VM 執行個體),然後選取您的 Aggregation Service 執行個體。
- 依序點選「詳細資料」 >「記錄」 >「記錄」 (或搜尋「Logs Explorer」)。
Amazon Web Services
- 前往 Amazon Web Services:EC2 Enclave。
- 按一下「EC2 instances」(EC2 執行個體),然後選取 Aggregation Service 執行個體。
- 依序點選「動作」 >「監控及疑難排解」 >「取得系統記錄」。
檢查並查看是否在GitHub 上的公開指南中找到任何相符的錯誤通知。
注意:如果您剛升級目前的匯總服務版本,系統可能需要幾小時才能完成完整佈建程序,並在最終的運算服務執行個體中反映正確的執行個體映像檔。如果不是這種情況,請與我們聯絡。
後續步驟
如果找不到解決方案,請提交 GitHub 問題或填寫技術支援表單,通知我們。