ツール拡張機能でカスタムのゲートウェイ プラグインを使用する

この記事では、Windows Admin Center CLI で作成した新しい空のツール拡張機能で、カスタム ゲートウェイ プラグインを使用します。

環境を準備する

まだ行っていない場合は、ツール拡張機能を開発する手順に従って環境を準備し、新しい空のツール拡張機能を作成します。

モジュールをプロジェクトに追加する

まだ行っていない場合は、新しい空のモジュールをプロジェクトに追加します。これは次の手順で使用します。

カスタム ゲートウェイ プラグインに統合を追加する

次に、作成したばかりの新しい空のモジュールでカスタム ゲートウェイ プラグインを使用します。

plugin.service.ts を作成する

上で作成した新しいツール モジュール (\src\app\{!Module-Name}) のディレクトリに移動し、新しいファイル plugin.service.ts を作成します。

次のコードを作成したばかりのファイルに追加します

import { Injectable } from '@angular/core';
import { AppContextService, HttpService } from '@microsoft/windows-admin-center-sdk/angular';
import { Cim, Http, PowerShell, PowerShellSession } from '@microsoft/windows-admin-center-sdk/core';
import { AjaxResponse, Observable } from 'rxjs';

@Injectable()
export class PluginService {
    constructor(private appContextService: AppContextService, private http: Http) {
    }

    public getGatewayRestResponse(): Observable<any> {
        let callUrl = this.appContextService.activeConnection.nodeName;

        return this.appContextService.node.get(callUrl, 'features/Sample%20Uno').map(
            (response: any) => {
                return response;
            }
        )
    }
}

必要に応じて、Sample UnoSample%20Uno の参照を使用する機能名に変更します。

警告

カスタム ゲートウェイ プラグインで定義されている API を呼び出す場合は、組み込みの this.appContextService.node を使用することをお勧めします。 これにより、ゲートウェイ プラグイン内で資格情報が必要な場合に、それらが適切に処理されます。

module.ts を変更する

前に作成した新しいモジュールの module.ts ファイル (つまり {!Module-Name}.module.ts) を開きます。

次の import ステートメントを追加します。

import { HttpService } from '@microsoft/windows-admin-center-sdk/angular';
import { Http } from '@microsoft/windows-admin-center-sdk/core';
import { PluginService } from './plugin.service';

次のプロバイダーを追加します (宣言の後)。

  ,
  providers: [
    HttpService,
    PluginService,
    Http
  ]

component.ts を変更する

前に作成した新しいモジュールの component.ts ファイル (つまり {!Module-Name}.component.ts) を開きます。

次の import ステートメントを追加します。

import { ActivatedRouteSnapshot } from '@angular/router';
import { AppContextService } from '@microsoft/windows-admin-center-sdk/angular';
import { Subscription } from 'rxjs';
import { Strings } from '../../generated/strings';
import { PluginService } from './plugin.service';

次の変数を追加します。

  private serviceSubscription: Subscription;
  private responseResult: string;

コンストラクターを変更し、次の関数を変更/追加します。

  constructor(private appContextService: AppContextService, private plugin: PluginService) {
    //
  }

  public ngOnInit() {
    this.responseResult = 'click go to do something';
  }

  public onClick() {
    this.serviceSubscription = this.plugin.getGatewayRestResponse().subscribe(
      (response: any) => {
        this.responseResult = 'response: ' + response.message;
      },
      (error) => {
        console.log(error);
      }
    );
  }

component.html を変更する

前に作成した新しいモジュールの component.html ファイル (つまり {!Module-Name}.component.html) を開きます。

次の内容を html ファイルに追加します。

<button (click)="onClick()" >go</button>
{{ responseResult }}

拡張機能をビルドしてサイドロードする

これで、Windows Admin Center で拡張機能をビルドしてサイド ロードする準備ができました。