mcpField
S
scrapfly-rpa

scrapfly-rpa

github.com/scrapflyクラウド・DevOps5103 回インストール2 週間前に更新
リポジトリ

scrapfly-rpa について

scrapfly-rpa は、REST API で Scrapfly RPA ワークフローを操作するスキルです。実行の監視、成果物の取得、マネージドまたは独自ストレージの設定とテストに対応します。

主な機能

  1. 01ワークフロー実行の開始と監視
  2. 02実行成果物の一覧表示とダウンロード
  3. 03GCS または S3 ストレージの設定
  4. 04ストレージ保存先のプローブ
  5. 05成果物の保存先確認

活用シーン

  1. 01保存済みワークフローを実行して完了を待つ
  2. 02ワークフロー実行で生成された成果物を取得
  3. 03独自の GCS または S3 ストレージを設定
  4. 04ストレージの認証情報と書き込み権限を確認

インストール

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

$npx skills add https://github.com/scrapfly/skills --skill scrapfly-rpa

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

詳細

Scrapfly RPA

Scrapfly RPA(Robotic Process Automation)は、Scrapfly Cloud Browser 上で動作する、型付きグラフのワークフローランタイムです。ワークフローは、ノード(navigate、click、type、evaluate、snapshot、branch、for_each、http、webhook、AI ステップなど)から成る有向グラフです。実行によってアーティファクト(バイトデータとインデックス化されたメタデータ)が生成され、Scrapfly のマネージドバケット、または Bring-Your-Own-Storage(BYOS)フローを通じて顧客所有のバケットに保存できます。

使用するケース

  • 保存済みの RPA ワークフローを実行し、実行完了まで待機する場合。
  • 実行によって生成されたアーティファクトを一覧表示またはダウンロードする場合。
  • ワークフローのアーティファクトの保存先として、顧客所有の GCS または S3 バケットを設定する場合(HIPAA 対応のワークロードやデータレジデンシー向けの BYOS)。
  • 保存前に保存先をテストする場合(「バケットと認証情報の設定が実際に機能するか」)。
  • 既存のアーティファクトがどの保存先に保存されたかを確認する場合(managed、gcs、s3 のいずれか)。

セットアップ

API キーは環境変数経由で指定し、すべてのリクエストでクエリ文字列パラメーターとして使用します。

export SCRAPFLY_API_KEY="scp-live-..."

すべてのエンドポイントは https://api.scrapfly.io/v2/rpa/ 配下にあります。

ワークフローを実行する

curl -sX POST "https://api.scrapfly.io/v2/rpa/workflows/$WORKFLOW_ID/run?key=$SCRAPFLY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "input": { "customer_id": 42 }
  }'
# Response: { "run": { "id": "run_01k...", "status": "queued", ... } }

完了するまでポーリングします。

RUN_ID=run_01k...
while :; do
  status=$(curl -s "https://api.scrapfly.io/v2/rpa/runs/$RUN_ID?key=$SCRAPFLY_API_KEY" | jq -r .run.status)
  case "$status" in completed|failed|canceled) break ;; esac
  sleep 2
done
echo "Run finished with status: $status"

実行からアーティファクトを一覧表示する

curl -s "https://api.scrapfly.io/v2/rpa/runs/$RUN_ID/artifacts?key=$SCRAPFLY_API_KEY" \
  | jq '.artifacts[] | {id, kind, bytes, content_type, destination_kind}'

各アーティファクトの destination_kind は次のいずれかです。

  • managed:Scrapfly のバケット内のバイトデータ
  • gcs:顧客所有の GCS バケット内のバイトデータ
  • s3:顧客所有の S3 バケット内のバイトデータ

アーティファクトをダウンロードする

curl -s "https://api.scrapfly.io/v2/rpa/artifacts/$ART_ID?key=$SCRAPFLY_API_KEY" \
  | jq -r .artifact.download_url \
  | xargs curl -L -o output.html

署名付き URL の有効期限は 5 分です。再試行する場合は、新しい URL を発行してください。

保存先(デフォルトの managed)

ワークフローは、優先する保存先を definition.context.storage_destination に保存します。このフィールドが空、または kind: "managed" に設定されている場合、アーティファクトは Scrapfly のマネージドバケットに保存されます。設定は不要です。

保存先(BYOS GCS)

前提となる Vault アイテムの形式:タイプが blob の Scrapfly Vault アイテムを作成します。GCP サービスアカウントの JSON 全体を、単一の文字列として data フィールドに格納します。この Vault アイテムを、credentials_vault_ref に設定したエイリアスで実行にバインドします。

レガシー互換性:password タイプで、password フィールドに JSON ペイロードを格納したアイテムも引き続き使用できます。これにより、既存の BYOS 顧客は再バインドせずに済みます。新しい連携では、型付きの blob アイテムを使用してください。

ワークフローの保存先に独自の GCS バケットを指定します。

{
  "definition": {
    "nodes": [ ... ],
    "edges": [ ... ],
    "context": {
      "storage_destination": {
        "kind": "gcs",
        "bucket": "my-rpa-archive",
        "prefix": "rpa/runs",
        "credentials_vault_ref": "vault_01k.../sa_json"
      }
    }
  }
}

credentials_vault_ref は、GCP サービスアカウント JSON を保持する Scrapfly Vault アイテムを参照します。認証情報が Vault からディスクやワークフロー定義に取り出されることはありません。呼び出しごとに解決され、使用直後にゼロ化されます。Vault 自体は Scrapfly が保持しないキーでエンドツーエンド暗号化されているため、BYOS の認証情報経路は設計上 HIPAA に準拠しています。この Vault キーを組織内で共有する方法は、お客様の責任です。

保存先(BYOS S3)

AWS でも同じ形式です。

{
  "storage_destination": {
    "kind": "s3",
    "bucket": "my-rpa-archive",
    "region": "us-east-1",
    "prefix": "rpa/runs",
    "credentials_vault_ref": "vault_01k.../aws_creds"
  }
}

Vault アイテムには、AWS アクセスキーの 3 要素(access_key_id、secret_access_key、省略可能な session_token)を格納します。

保存先をテストする

BYOS 設定を保存する前に、プローブオブジェクトを保存先経由で往復させ、設定ミスをすぐに検出します。ワークフロー実行時に送信するものと同じ vault_bindings マップを渡すことで、プローブが顧客の保持する Vault キーを使って顧客の認証情報を解決できるようにします。

curl -sX POST "https://api.scrapfly.io/v2/rpa/storage/probe?key=$SCRAPFLY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "storage_destination": {
      "kind": "gcs",
      "bucket": "my-rpa-archive",
      "credentials_vault_ref": "acme_gcs"
    },
    "vault_bindings": {
      "acme_gcs": {
        "vault_id": "vlt_01k...",
        "item_id":  "vlti_01k...",
        "key":      "BASE64-OF-CUSTOMER-VAULT-KEY"
      }
    }
  }'

プローブに成功した場合:

{
  "ok": true,
  "destination_kind": "gcs",
  "bucket": "my-rpa-archive",
  "storage_path": "gs://my-rpa-archive/.scrapfly-rpa-probe/01k...",
  "write_ms": 142,
  "sign_ms": 18
}

よくあるエラーコード:

  • storage_destination_invalid:必須フィールドがありません(bucket、S3 の region、credentials_vault_ref)。
  • storage_probe_write_failed:認証情報は解決されましたが、バケットによって書き込みが拒否されました。サービスアカウントまたは AWS アクセスキーの IAM 権限を確認してください。

対応していない機能

  • API を使ったワークフローの新規作成。ワークフローの作成にはダッシュボードエディターを使用してください。このスキルは実行、アーティファクト、保存先の操作を対象としています。
  • 既存のアーティファクトのマネージドバケットの置き換え。storage_destination の編集は今後の実行にのみ影響します。既存の行は書き込まれた場所に残ります。
  • 保持期間の管理。マネージドバケットからは 90 日後に削除されます。BYOS バケットは、お客様独自のライフサイクルポリシーに従います。

関連スキル

  • scrapfly-browser:RPA ランタイムが操作する、低レベルの Cloud Browser API です。型付きのワークフローステップではなく、CDP を直接制御する必要がある場合に使用します。
  • scrapfly-cli:すべての Scrapfly 製品にアクセスできるシェルです。scrapfly rpa サブコマンドはありません。RPA ワークフローは REST API または SDK を通じて操作してください。CLI の exit-peer グループは、RPA の byop プロファイルが接続先として使用する BYOP コネクターをインストールします。

コメント