セルフマネージド Web アプリケーションに Managed Service for OpenTelemetry コンソールページを埋め込むことができます。このようにして、システムを切り替えたり、Managed Service for OpenTelemetry コンソールにログインしたりすることなく、アプリケーションからコンソールページを表示できます。
概要
期待される結果
このトピックに基づいてセルフマネージド Web アプリケーションに Managed Service for OpenTelemetry コンソールページを埋め込んだ後、次の操作を実行できます。
システムにログインし、埋め込まれたコンソールページでアプリケーション、アプリケーションの詳細、トレースに関する情報を表示できます。
Managed Service for OpenTelemetry コンソールページの上部のナビゲーションバーと左側のナビゲーションウィンドウを非表示にできます。
Resource Access Management (RAM) を使用して、Managed Service for OpenTelemetry コンソールページの権限を管理できます。たとえば、フル権限を読み取り専用権限に変更できます。
アクセスの流れ
次の図は、Managed Service for OpenTelemetry コンソールページへのアクセス方法を示しています。
ステップ 1:RAM ユーザーを作成し、RAM ユーザーに権限を付与する
Alibaba Cloud アカウントを使用して RAM ユーザーを作成し、Security Token Service (STS) の AssumeRole 操作を呼び出す権限を RAM ユーザーに付与します。
管理権限を持つ Alibaba Cloud アカウントまたは RAM ユーザーを使用して、RAM コンソール にログインします。
左側のナビゲーションウィンドウで、 を選択します。
[ユーザー] ページで、[ユーザーの作成] をクリックします。

[ユーザーの作成] ページの [ユーザーアカウント情報] セクションで、[ログイン名] パラメーターと [表示名] パラメーターを設定します。[アクセスモード] セクションで、[永続 AccessKey を使用してアクセスする] を選択し、[OK] をクリックします。
重要RAM は RAM ユーザーの AccessKey ペアを自動的に生成します。これにより、RAM ユーザーは Managed Service for OpenTelemetry コンソールにアクセスするための操作を呼び出すことができます。セキュリティ上の理由から、RAM コンソールで AccessKey シークレットを表示またはダウンロードできるのは 1 回だけです。したがって、AccessKey ペアを作成するときは、AccessKey シークレットを厳重に管理する必要があります。
[ユーザー] ページで、必要な RAM ユーザーを見つけ、[アクション] 列の [権限の追加] をクリックします。

複数の RAM ユーザーを選択し、ページの下部にある [権限の追加] をクリックして、一度に RAM ユーザーに権限を付与することもできます。
[権限の付与] パネルで、1 つ以上の権限を RAM ユーザーに付与します。
[リソーススコープ] を設定します。
[アカウント]:権限は現在の Alibaba アカウントに適用されます。
[リソースグループ]:権限は特定のリソースグループに適用されます。リソースグループに権限を付与する方法については、「リソースグループを使用して RAM ユーザーに特定の ECS インスタンスを管理する権限を付与する」をご参照ください。
重要[リソーススコープ] を [リソースグループ] に設定する前に、関連するクラウドサービスとリソースがリソースグループをサポートしていることを確認してください。詳細については、「リソースグループで動作するサービス」をご参照ください。
[プリンシパル] を設定します。
プリンシパルは、権限を付与する RAM ユーザーです。システムは現在の RAM ユーザーグループをプリンシパルとして自動的に選択します。
[ポリシー] セクションで、[AliyunSTSAssumeRoleAccess] を選択します。
[権限の付与] をクリックします。
[閉じる] をクリックします。
ステップ 2:RAM ロールを作成し、RAM ロールに権限を付与する
RAM ロールを作成し、Managed Service for OpenTelemetry コンソールにアクセスする権限を RAM ロールに付与します。これにより、作成した RAM ユーザーはこの RAM ロールをアシュームして Managed Service for OpenTelemetry コンソールにアクセスできます。
AliyunTracingAnalysisFullAccess または AliyunTracingAnalysisReadOnlyAccess 権限を RAM ロールに付与する
Managed Service for OpenTelemetry へのフル権限を RAM ロールに付与するには、AliyunTracingAnalysisFullAccess ポリシーを選択します。
Managed Service for OpenTelemetry への読み取り専用権限を RAM ロールに付与するには、AliyunTracingAnalysisReadOnlyAccess ポリシーを選択します。
ステップ 3:一時的な AccessKey ペアと STS トークンを取得する
セルフマネージド Web アプリケーションにログインし、Web アプリケーションサーバーから STS の AssumeRole操作を呼び出して、一時的な AccessKey ペアと STS トークンを取得します。次のいずれかの方法でこの操作を呼び出すことができます。
OpenAPI Explorer を使用します。
RAM SDKの概要 を使用します。
サンプルコードの次のパラメーターの値を実際の値に置き換える必要があります。
String akId = "<accessKeyId>"; // AccessKeyId を設定
String ak = "<accessKeySecret>"; // AccessKeySecret を設定
String roleArn = "<roleArn>"; // ロール ARN を設定<accessKeyId> 変数と <accessKeySecret> 変数を、ステップ 1 で作成した RAM ユーザーの AccessKey ID と AccessKey シークレットに置き換えます。詳細については、「AccessKey ペアを作成する」をご参照ください。

<roleArn> 変数を、作成した RAM ロールの Alibaba Cloud Resource Name (ARN) に置き換えます。ARN は、RAM コンソールの RAM ロールの詳細ページで取得できます。

ステップ 4:ログイントークンを取得する
STS の AssumeRole 操作を呼び出して一時的な AccessKey ペアと STS トークンを取得した後、GetSigninToken 操作を呼び出してログイントークンを取得します。
一時的な STS トークンには特殊文字が含まれている場合があります。トークンを使用する前に、URL エンコード方式を使用して特殊文字をエンコードする必要があります。
リクエスト例:
http://signin4service.alibabacloud.com/federation?Action=GetSigninToken
&AccessKeyId=<The temporary AccessKey ID returned by STS> // STS から返された一時 AccessKeyId を設定
&AccessKeySecret=<The temporary AccessKey secret returned by STS> // STS から返された一時 AccessKeySecret を設定
&SecurityToken=<The token returned by STS> // STS から返されたセキュリティトークンを設定
&TicketType=miniセルフマネージド Web アプリケーションがパートナーのクラウドプラットフォームにデプロイされている場合は、&TicketType=mini パラメーターを追加する必要があります。
ステップ 5:ログイン不要の URL を生成する
取得したログイントークンと、埋め込む Managed Service for OpenTelemetry コンソールページの URL を使用して、ログイン不要の URL を生成します。この URL を使用すると、セルフマネージド Web アプリケーションからコンソールページにアクセスできます。このようにして、Managed Service for OpenTelemetry コンソールにログインする必要はありません。
一時トークンは 3 時間有効です。セルフマネージド Web アプリケーションで URL を構成して、リクエストごとに新しいログイントークンを生成し、コンソールページに 302 リダイレクトを実行することをお勧めします。
Managed Service for OpenTelemetry コンソールで、埋め込むコンソールページの URL を取得します。たとえば、次の URL は、中国 (杭州) リージョンの [アプリケーション] ページの URL です。
https://trace4servims.console.alibabacloud.com/#/overview/cn-hangzhou説明Managed Service for OpenTelemetry コンソールページの上部のナビゲーションバーと左側のナビゲーションウィンドウを非表示にするには、hideTopbar パラメーターと hideSidebar パラメーターを true に設定します。
取得したログイントークンと Managed Service for OpenTelemetry コンソールページの URL を使用して、ページのログイン不要の URL を生成します。
リクエスト例:
http://signin.alibabacloud.com/federation?Action=Login &LoginUrl=<The URL to which you are redirected when the logon fails and the 302 HTTP status code is returned on your self-managed website> // ログインに失敗したときにリダイレクトされる URL。通常は、セルフマネージド Web サイトで 302 リダイレクトが設定されている URL を指定 &SigninToken=<The logon token you obtained> // 取得したログイントークンを設定 &Destination=<The URL of the Managed Service for OpenTelemetry console page> // Managed Service for OpenTelemetry コンソールページの URL を設定
結果
次の図は、セルフマネージド Web アプリケーションに埋め込まれた Managed Service for OpenTelemetry コンソールページを示しています。

サンプルコード
このトピックで使用されているサンプルコードは、Java 用 SDK に基づいています。サンプルコードは、Managed Service for OpenTelemetry コンソールの [アプリケーション] ページをセルフマネージド Web アプリケーションに埋め込むために使用されます。
ダウンロードリンク:サンプルコード