ServiceNow 用Snowflakeコネクタの管理、更新、およびアンインストール

これらのセクションでは、コネクタをインストールして構成した後に実行が必要になる可能性のある一般的なタスクについて説明します。

コネクタが使用する更新トークンの更新

OAuth 認証コードでコネクタを設定した場合は、更新トークンを定期的に更新する必要があります。そうしないと、トークンの有効期限が切れた後にコネクタは ServiceNow にアクセスできなくなります。デフォルトでは、トークンの有効期限は生成から90日です。

コネクタに メールアラート を構成すると、毎月1日に更新トークンを更新するリマインダーが表示されます。トークンの有効期限が切れると、コネクタが ServiceNow にアクセスする際に問題が発生した場合に、メールが届きます。

Snowsightを使用してインストールされたコネクタの更新トークンの更新

Snowsightを使用してコネクタをインストール した場合、更新トークンを更新するには、次を実行します。

  1. ACCOUNTADMIN ロールを持つユーザーとして Snowsight にサインインします。

  2. 左側のナビゲーションで Marketplace を選択します。

  3. ServiceNow 用Snowflakeコネクタを検索し、コネクタのタイルを選択します。

  4. Connections で、省略記号ボタンを選択し、 Refresh token を選択します。

    注釈

    コネクタを初期設定したときと同じユーザーで ServiceNow にログオンしていることを確認してください。現在ログインしているユーザーは、ダイアログの右上隅で確認できます。

  5. コネクタが ServiceNow アカウントに接続することを許可することを確認するために、ダイアログで Allow を選択します。

    更新トークンは更新されました。

SQL コマンドを使用して更新トークンを更新する方法については、 SQL コマンドを使用した更新トークンの更新 をご参照ください。

SQL コマンドを使用した更新トークンの更新

SQL コマンドを使用して更新トークンを更新するには、次を実行します。

  1. 新しい OAuth 更新トークンを取得 します。コネクタが現在使用しているものと同じ client_idclient_secret、およびユーザー認証情報を使用していることを確認してください。

  2. GLOBAL_CONFIG ビュー をクエリして、シークレットオブジェクトの完全修飾名を検索します。

    SELECT value:secret FROM GLOBAL_CONFIG WHERE key = 'connection_config';
    
    Copy
  3. ALTER SECRET コマンドを実行し、以下のパラメーターを変更して、シークレットオブジェクトを更新します。

    • OAUTH_REFRESH_TOKEN を最初のステップで取得した OAuth 更新トークンに設定します。

    • OAUTH_REFRESH_TOKEN_EXPIRY_TIME を更新トークンの有効期限のタイムスタンプ(UTC タイムゾーン)に設定します。これは、 ServiceNow からトークンが発行された日付までの更新トークンの有効期間を追加することで計算できます。デフォルトでは、トークンは100日で期限切れになります。

    たとえば、 secretsdb.apiauth.servicenow_creds_oauth_code シークレットを更新するには、次のコマンドを実行します。

    ALTER SECRET secretsdb.apiauth.servicenow_creds_oauth_code SET OAUTH_REFRESH_TOKEN = '34n;vods4nQsdg09wee4qnfvadH', OAUTH_REFRESH_TOKEN_EXPIRY_TIME = '2022-01-06 20:00:00';
    
    Copy

    注釈

    シークレットを更新するには、 OWNERSHIP 権限を持つロールを使用する必要があります。

ServiceNow パスワードの基本認証更新

パスワードを更新するには、既存のシークレットを見つけて ALTER SECRET コマンドを使用して変更する必要があります。

  1. Snowsightまたは SQL コマンドのいずれかを使用して、シークレットオブジェクトの完全修飾名を確認します。

    Snowsight を使用してシークレットを取得するには、次を行います。

    1. ACCOUNTADMIN ロールを持つユーザーとして Snowsight にサインインします。

    2. 左側のナビゲーションで Marketplace を選択します。

    3. ServiceNow 用Snowflakeコネクタを検索し、コネクタのタイルを選択します。

    4. Connections で ServiceNow ラベルの右隣にある ellipses を選択し、 View details を選択します。

      ServiceNow Connection Configuration ダイアログにシークレットオブジェクトが表示されます。例えば、 CONNECTORS_UI.SERVICENOW_GZSTZTP0KHD.SECRET です。

    SQL コマンドを使用してシークレットを取得するには、 GLOBAL_CONFIG ビュー にクエリを実行します。

    SELECT VALUE:secret FROM GLOBAL_CONFIG WHERE KEY = 'connection_config';
    
    Copy
  2. コネクタを 停止 します。

  3. ALTER SECRET コマンドを実行し、以下の PASSWORD パラメーターを変更して、シークレットオブジェクトを更新します。

    たとえば、 secretsdb.apiauth.servicenow_basic_auth シークレットを更新するには、次のコマンドを実行します。

    ALTER SECRET secretsdb.apiauth.servicenow_basic_auth SET PASSWORD = 'W3dr@fg*7B1c4j';
    
    Copy
  4. コネクタを 再開 します。

    パスワードが更新され、コネクタにより使用されます。

注釈

パスワードの変更と同様に、 ALTER SECRET コマンドを使用してユーザー名を更新するオプションがあります。 USERNAME パラメーターに新しいユーザー名を設定するだけです。ユーザー名を変更する前に、新しいユーザー名が少なくとも以前のユーザー名と同じ権限を持っていることを確認してください。そうしないと、コネクタが適切に機能しない可能性があります。

Snowsightの使用によりインストール中に作成されたオブジェクトの削除

コネクタデータベースを削除しても、別のデータベースに格納されているインジェストされたデータや、 Snowsight を使用してインストール中に作成されたオブジェクトは削除されません。

インストール中に作成されたオブジェクトを表示するには、次を実行します。

  1. ACCOUNTADMIN ロールを持つユーザーとして Snowsight にサインインします。

  2. 左側のナビゲーションで Marketplace を選択します。

  3. ServiceNow 用Snowflakeコネクタを検索して選択します。

  4. Snowflake Connector for ServiceNow のページで、 Connector Objects エリアを見つけます。

これらのオブジェクトを削除するには、 DROP コマンドを実行します。

たとえば、シークレットを削除するには、 DROP SECRET ステートメントを実行します。

インストール中に作成されたオブジェクトの手動によるアンインストールおよび削除

コネクタデータベースを削除しても、別のデータベースに保存されているインジェストされたデータや、コネクタのインストール時に作成したオブジェクトは削除されません。これらには次が含まれます。

これらのオブジェクトを削除するには、 DROP ステートメントを実行します。たとえば、シークレットを削除するには、 DROP SECRET ステートメントを実行します。

Snowflake ServiceNow コネクタを削除するには、 DROP DATABASE を使用します。

DROP DATABASE <database_name>;
Copy

条件

database_name

コネクタのインストール 時に作成されたデータベースの名前を指定します。

たとえば、 my_connector_servicenow という名前のデータベースにインストールされているコネクタを削除するには、次のコマンドを実行します。

DROP DATABASE my_connector_servicenow;
Copy

テーブルの削除

テーブルを削除して(例: 意図せずに有効になった場合)、 コネクタをモニターするためのビュー に表示しないようにするには、次のプロシージャを使用します。

CALL DELETE_TABLE('<table_name>');
Copy

条件:

table_name

削除するテーブルの名前を指定します。このテーブルは、 無効 になっており、 リロード 中であってはなりません。

注釈

DELETE_TABLE プロシージャは、Snowflakeで ServiceNow データを含むデータベースとスキーマのこのテーブルに対して作成されたオブジェクト(生データテーブルイベントログテーブルフラット化ビュー)を削除しません。これらのオブジェクトは手動でドロップできます。

コネクタのアップグレード

このセクションでは、Snowflakeアカウントからコネクタをアップグレードする方法について説明します。

現在、コネクタは自動的にはアップグレードされません。コネクタを最新バージョンにアップグレードするには、 RUN_UPGRADE という名前のプロシージャを呼び出します。

CALL RUN_UPGRADE();
Copy

このアップグレードはいつでも実行できます(他のユーザーが同時にコネクタを構成していないこと)。

アップグレードはすぐに完了します。アップグレードにより、 ServiceNow データのインジェスチョンが一時的に無効になります。アップグレードが完了すると、コネクタはデータのインジェスチョンを再開します。

注釈

アップグレードを実行するときは、誰も同時にコネクタを構成していないことを確認してください。

ServiceNow データの同じデータベースとスキーマを使用したコネクタの再インストール

コネクタを削除したが、インジェストされたデータを含むデータベースとスキーマをそのまま残した場合は、後でコネクタを再インストールして、コネクタが最後に実行された時点からデータのインジェスチョンを再開できます。

注釈

データの一貫性を確保するには、現在のインジェスチョンが完了するまで待ってコネクタを停止してから、コネクタをアンインストールします。

  1. TABLES_STATE ビューをクエリして、現在 RUNNING 状態のテーブルがないことを確認します。

    SELECT * FROM TABLES_STATE;
    
    Copy
  2. コネクタがデータをインジェストしている場合は、インジェスチョンが完了するまで待ちます。これは、データの完全な一貫性を確保するために重要です。

  3. 現在進行中のインジェスチョンがない場合は、次のストアドプロシージャを呼び出してコネクタを停止します。

CALL STOP_CONNECTOR();
Copy

コネクタを削除 した後に、次の方法でコネクタを再インストールできます。

インストールのプロセス中、

  • 以前に使用したデータベースとスキーマを提供します。

  • 同じ ServiceNow インスタンス URL を提供します。

他の引数については、 コネクタのインストール時に作成したオブジェクト を再利用するか、新しいオブジェクトを使用できます。

注釈

また、 コネクタを構成するステップ を改めて繰り返す必要があります。これには、 ServiceNow テーブルの同期を有効にするステップも含まれます。

新しいオブジェクトを作成する場合、または コネクタの新しいカスタムロール を作成する場合は、そのロールに必要な権限があることを確認する必要があります。詳細については、次のセクションをご参照ください。

新しいコネクタに対する同じカスタムロールの再利用

コネクタの以前のインストールで使用したものと同じ コネクタのカスタムロール を使用している場合は、 最初にコネクタをインストールするとき に作成した、 新しい オブジェクトに対して必要な権限を付与するだけで済みます。ロールには、データベース内のテーブルやビュー、インジェストされたデータを含むスキーマなど、再利用する他のオブジェクトに対して必要な権限がすでにあるはずです。

また、 新しいインストールの一部としてカスタムロールをコネクタに付与する必要があります

注釈

カスタムロールで CREATE OR REPLACE ROLE を実行すると、ロールは技術的に同じ名前の新しいオブジェクトになります。以下のセクションのステップに従う必要があります。

新しいコネクタに対する新しいカスタムロールの使用

再インストールされたコネクタに新しいカスタムロールを使用する場合は、 コネクタ用カスタムロールの作成 の下にリストされているすべての権限をそのロールに付与する必要があります。また、インジェストされたデータを含むスキーマとデータベースにあるテーブルとビューに対して、新しいロールが必要な権限を持っていることを確認する必要があります。

必要な権限を付与するには、このスキーマのテーブルとビューに対する OWNERSHIP を新しいカスタムロールに付与します。