mcpField
A
azure-resource-manager-playwright-dotnet

azure-resource-manager-playwright-dotnet

github.com/sickn33クラウド・DevOps48.7k51 回インストール今日更新
リポジトリ

azure-resource-manager-playwright-dotnet について

Azure Resource Manager を通じて Microsoft Playwright Testing のワークスペースを管理する .NET スキルです。テスト実行ではなく、リソースの作成と管理を扱います。

主な機能

  1. 01ワークスペースの作成と更新
  2. 02ワークスペースの取得と一覧表示
  3. 03ワークスペース名の利用可否確認
  4. 04サブスクリプションとワークスペースのクォータ確認
  5. 05ワークスペースの削除

活用シーン

  1. 01Playwright Testing ワークスペースの作成
  2. 02ワークスペースの状態とデータプレーン URI の確認
  3. 03作成前のクォータ確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/sickn33/agentic-awesome-skills --skill azure-resource-manager-playwright-dotnet

インストール後、Claude Code で/azure-resource-manager-playwright-dotnetを入力して読み込まれたか確認します。

詳細

Azure.ResourceManager.Playwright(.NET)

Azure Resource Manager を介して Microsoft Playwright Testing ワークスペースをプロビジョニングおよび管理するための管理プレーン SDK です。

⚠️ 管理とテスト実行の違い

  • この SDK(Azure.ResourceManager.Playwright):ワークスペースの作成、クォータの管理、名前の使用可否の確認
  • テスト実行 SDK(Azure.Developer.MicrosoftPlaywrightTesting.NUnit):クラウドブラウザーで Playwright テストを大規模に実行

バージョンとプロビジョニングの境界

これらは過去の SDK の断片であり、現在のパッケージやサービスのバージョンを確認したものではありません。プロビジョニングの前に、現在の Microsoft サービスのライフサイクル、パッケージの移行ガイダンス、対象のリソースプロバイダーを確認してください。記載されたサービスが廃止されているか利用できない場合は、作業を中止してください。すべての DefaultAzureCredential ソースが意図したものであると決めつけず、デプロイ環境に適した本番用の認証情報を慎重に選択してください。サブスクリプション、リソースグループ、リージョン、予算、削除対象の範囲を確認してください。リソースの作成には料金が発生し、リモートでのテスト実行や非公開のテスト成果物のアップロードが許可されるわけではありません。

インストール

dotnet add package Azure.ResourceManager.Playwright
dotnet add package Azure.Identity

バージョンの例:v1.0.0 / v1.0.0-beta.1 は過去の参照情報です。使用前に、サポート対象のパッケージを確認してください。

環境変数

AZURE_SUBSCRIPTION_ID=<your-subscription-id>
# For service principal auth (optional)
AZURE_TENANT_ID=<tenant-id>
AZURE_CLIENT_ID=<client-id>
AZURE_CLIENT_SECRET=<client-secret>

認証

using Azure.Identity;
using Azure.ResourceManager;
using Azure.ResourceManager.Playwright;

// Always use DefaultAzureCredential
var credential = new DefaultAzureCredential();
var armClient = new ArmClient(credential);

// Get subscription
var subscriptionId = Environment.GetEnvironmentVariable("AZURE_SUBSCRIPTION_ID");
var subscription = armClient.GetSubscriptionResource(
    new ResourceIdentifier($"/subscriptions/{subscriptionId}"));

リソース階層

ArmClient
└── SubscriptionResource
    ├── PlaywrightQuotaResource (subscription-level quotas)
    └── ResourceGroupResource
        └── PlaywrightWorkspaceResource
            └── PlaywrightWorkspaceQuotaResource (workspace-level quotas)

基本的なワークフロー

1. Playwright ワークスペースを作成する
using Azure.ResourceManager.Playwright;
using Azure.ResourceManager.Playwright.Models;

// Get resource group
var resourceGroup = await subscription
    .GetResourceGroupAsync("my-resource-group");

// Define workspace
var workspaceData = new PlaywrightWorkspaceData(AzureLocation.WestUS3)
{
    // Optional: Configure regional affinity and local auth
    RegionalAffinity = PlaywrightRegionalAffinity.Enabled,
    LocalAuth = PlaywrightLocalAuth.Enabled,
    Tags =
    {
        ["Team"] = "Dev Exp",
        ["Environment"] = "Production"
    }
};

// Create workspace (long-running operation)
var workspaceCollection = resourceGroup.Value.GetPlaywrightWorkspaces();
var operation = await workspaceCollection.CreateOrUpdateAsync(
    WaitUntil.Completed,
    "my-playwright-workspace",
    workspaceData);

PlaywrightWorkspaceResource workspace = operation.Value;

// Get the data plane URI for running tests
Console.WriteLine($"Data Plane URI: {workspace.Data.DataplaneUri}");
Console.WriteLine($"Workspace ID: {workspace.Data.WorkspaceId}");
2. 既存のワークスペースを取得する
// Get by name
var workspace = await workspaceCollection.GetAsync("my-playwright-workspace");

// Or check if exists first
bool exists = await workspaceCollection.ExistsAsync("my-playwright-workspace");
if (exists)
{
    var existingWorkspace = await workspaceCollection.GetAsync("my-playwright-workspace");
    Console.WriteLine($"Workspace found: {existingWorkspace.Value.Data.Name}");
}
3. ワークスペースを一覧表示する
// List in resource group
await foreach (var workspace in workspaceCollection.GetAllAsync())
{
    Console.WriteLine($"Workspace: {workspace.Data.Name}");
    Console.WriteLine($"  Location: {workspace.Data.Location}");
    Console.WriteLine($"  State: {workspace.Data.ProvisioningState}");
    Console.WriteLine($"  Data Plane URI: {workspace.Data.DataplaneUri}");
}

// List across subscription
await foreach (var workspace in subscription.GetPlaywrightWorkspacesAsync())
{
    Console.WriteLine($"Workspace: {workspace.Data.Name}");
}
4. ワークスペースを更新する
var patch = new PlaywrightWorkspacePatch
{
    Tags =
    {
        ["Team"] = "Dev Exp",
        ["Environment"] = "Staging",
        ["UpdatedAt"] = DateTime.UtcNow.ToString("o")
    }
};

var updatedWorkspace = await workspace.Value.UpdateAsync(patch);
5. 名前の使用可否を確認する
using Azure.ResourceManager.Playwright.Models;

var checkRequest = new PlaywrightCheckNameAvailabilityContent
{
    Name = "my-new-workspace",
    ResourceType = "Microsoft.LoadTestService/playwrightWorkspaces"
};

var result = await subscription.CheckPlaywrightNameAvailabilityAsync(checkRequest);

if (result.Value.IsNameAvailable == true)
{
    Console.WriteLine("Name is available!");
}
else
{
    Console.WriteLine($"Name unavailable: {result.Value.Message}");
    Console.WriteLine($"Reason: {result.Value.Reason}");
}
6. クォータ情報を取得する
// Subscription-level quotas
await foreach (var quota in subscription.GetPlaywrightQuotasAsync(AzureLocation.WestUS3))
{
    Console.WriteLine($"Quota: {quota.Data.Name}");
    Console.WriteLine($"  Limit: {quota.Data.Limit}");
    Console.WriteLine($"  Used: {quota.Data.Used}");
}

// Workspace-level quotas
var workspaceQuotas = workspace.Value.GetAllPlaywrightWorkspaceQuota();
await foreach (var quota in workspaceQuotas.GetAllAsync())
{
    Console.WriteLine($"Workspace Quota: {quota.Data.Name}");
}
7. ワークスペースを削除する
// Delete (long-running operation)
await workspace.Value.DeleteAsync(WaitUntil.Completed);

主要な型のリファレンス

型用途
ArmClientすべての ARM 操作のエントリーポイント
PlaywrightWorkspaceResourcePlaywright Testing ワークスペースを表します
PlaywrightWorkspaceCollectionワークスペースの CRUD 操作用のコレクション
PlaywrightWorkspaceDataワークスペースの作成/応答ペイロード
PlaywrightWorkspacePatchワークスペースの更新ペイロード
PlaywrightQuotaResourceサブスクリプションレベルのクォータ情報
PlaywrightWorkspaceQuotaResourceワークスペースレベルのクォータ情報
PlaywrightExtensionsARM リソース用の拡張メソッド
PlaywrightCheckNameAvailabilityContent名前の使用可否確認リクエスト

ワークスペースのプロパティ

プロパティ説明
DataplaneUriテスト実行用の URI(例:https://api.dataplane.{guid}.domain.com)
WorkspaceIdワークスペースの一意の識別子(GUID)
RegionalAffinityテスト実行におけるリージョンアフィニティの有効/無効
LocalAuthローカル認証(アクセストークン)の有効/無効
ProvisioningState現在のプロビジョニング状態(Succeeded、Failed など)

ベストプラクティス

  1. 処理を続行する前に完了させる必要がある操作には、WaitUntil.Completed を使用します
  2. 手動でポーリングする場合や、操作を並行して実行する場合は、WaitUntil.Started を使用します
  3. 常に DefaultAzureCredential を使用し、キーをハードコードしないでください
  4. ARM API エラーを処理するには、RequestFailedException を処理します
  5. 冪等な操作には、CreateOrUpdateAsync を使用します
  6. Get* メソッド(例:resourceGroup.GetPlaywrightWorkspaces())を使って階層をたどります
  7. ワークスペースの作成後、テスト実行の構成に備えて DataplaneUri を保存します

エラー処理

using Azure;

try
{
    var operation = await workspaceCollection.CreateOrUpdateAsync(
        WaitUntil.Completed, workspaceName, workspaceData);
}
catch (RequestFailedException ex) when (ex.Status == 409)
{
    Console.WriteLine("Workspace already exists");
}
catch (RequestFailedException ex) when (ex.Status == 400)
{
    Console.WriteLine($"Bad request: {ex.Message}");
}
catch (RequestFailedException ex)
{
    Console.WriteLine($"ARM Error: {ex.Status} - {ex.ErrorCode}: {ex.Message}");
}

テスト実行との統合

ワークスペースの作成後、DataplaneUri を使用して Playwright テストを構成します。

// 1. Create workspace (this SDK)
var workspace = await workspaceCollection.CreateOrUpdateAsync(
    WaitUntil.Completed, "my-workspace", workspaceData);

// 2. Get the service URL
var serviceUrl = workspace.Value.Data.DataplaneUri;

// 3. Set environment variable for test execution
Environment.SetEnvironmentVariable("PLAYWRIGHT_SERVICE_URL", serviceUrl.ToString());

// 4. Run tests using Azure.Developer.MicrosoftPlaywrightTesting.NUnit
// (separate package for test execution)

関連 SDK

SDK用途インストール
Azure.ResourceManager.Playwright管理プレーン(この SDK)dotnet add package Azure.ResourceManager.Playwright
Azure.Developer.MicrosoftPlaywrightTesting.NUnitNUnit の Playwright テストを大規模に実行dotnet add package Azure.Developer.MicrosoftPlaywrightTesting.NUnit --prerelease
Azure.Developer.PlaywrightPlaywright クライアントライブラリdotnet add package Azure.Developer.Playwright

API 情報

  • リソース プロバイダー:Microsoft.LoadTestService
  • 既定の API バージョン:2025-09-01
  • リソースの種類:Microsoft.LoadTestService/playwrightWorkspaces

ドキュメントへのリンク

使用する場面

このスキルは、概要に記載されているワークフローまたは操作を実行する場合に適用できます。

制限事項

  • タスクが上記の説明の範囲に明確に該当する場合にのみ、このスキルを使用してください。
  • 環境固有の検証、テスト、専門家によるレビューの代わりとして、出力を扱わないでください。
  • 必要な入力、権限、安全上の境界、または成功基準が不足している場合は、作業を中断して確認してください。

コメント