Mark Hammer's Blog

SalesforceやTrailheadに関する情報を投稿しているブログです。

古いAPIバージョンのアクセスを追加費用なしで確認したい

はじめに

Salesforce Platform API バージョンが古いものについて、以下のように順次サポート終了、アクセス不可が予定されています。

こうなると自分の組織に古いAPI バージョンのアクセスがないか気になるところですが、これを確認する方法は現状EventLogしかありません。
しかし、イベントログの開発者ドキュメントには以下の記載があります。

安全でない外部アセットイベント、ログインイベント、ログアウトイベントは、サポートされている Salesforce エディションで追加費用なしで使用できます。残りのイベントタイプを購入するには、Salesforce にお問い合わせください。

APIアクセスイベントは上記でいう「残りのイベントタイプ」になります。 つまりEvent Monitoringライセンスを購入しないと古いAPI バージョンのアクセスがあるかないか分からないのです。

しかし、それでは困るという顧客の声があったのでしょう。
Summer'21リリースにてAPI 合計使用量イベントを使用した API バージョンの使用の追跡というリリースが行われました。

このイベントは、バージョン 30.0 までの SOAP、Bulk v1、および REST API 要求へのコールを記録します。データは 24 時間保持されます。
(中略)
API 合計使用量イベントは、すべての顧客が無料で使用できます。

これにより、追加費用なしでも廃止対象APIバージョンのアクセスを確認することができるようになりました。

試してみた

実際にAPI 合計使用量イベント(ApiTotalUsage)が取得できるか試してみました。

古いAPIバージョンでアクセスする

今回はWorkbenchでアクセスします。

  1. Workbench経由でSalesforceにログインする
  2. 上のメニューから Utilities|REST Explorer をクリック
  3. HTTPメソッドを「GET」、URIを /services/data/v20.0/sobjects/account/describe で指定して[Execute]をクリック

Workbench画面

イベントログを取得する

Workbenchアクセス後、1日待って以下作業を行います。

  1. Salesforce Event Log File Browser経由でSalesforceにログインする
  2. EventTypeを「ApiTotalUsage」と指定して「Apply」をクリック
  3. 結果が表示されればCSVをダウンロード

Salesforce Event Log File Browser画面

実際の結果はこうなりました。(CSVから一部抜粋)

EVENT_TYPE API_FAMILY API_VERSION API_RESOURCE HTTP_METHOD
ApiTotalUsage REST 20 /v20.0/sobjects/account/describe GET

ちゃんとバージョン20のAPIアクセスが記録されていますね。

おわりに

注意点として追加費用なしの場合、イベントログは1日しか残らない点が挙げられます。
つまりアクセスの有無を確認するには毎日取得しなければならないので、実際に取得を検討される方はご注意ください。

Appendix