mcpField
S
scrapfly-rpa

scrapfly-rpa

github.com/scrapfly云与 DevOps5103 次安装2 周前更新
代码仓库

关于 scrapfly-rpa

scrapfly-rpa 是通过 REST API 操作 Scrapfly RPA 工作流的技能,涵盖运行监控、产物管理,以及配置或测试托管存储和自有存储目标。

主要功能

  1. 01触发并监控工作流运行
  2. 02列出并下载运行产物
  3. 03配置 GCS 或 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(机器人流程自动化)是运行在 Scrapfly Cloud Browser 之上的类型化图工作流运行时。工作流是由节点构成的有向图(导航、点击、输入、评估、快照、分支、for_each、http、webhook、AI 步骤等)。运行会生成制品(字节数据及索引元数据),这些制品可以存放在 Scrapfly 托管存储桶中,也可以通过自带存储(BYOS)流程存放在客户自有存储桶中。

适用场景

  • 触发已存储的 RPA 工作流,并等待运行完成。
  • 列出或下载运行生成的制品。
  • 将客户的 GCS 或 S3 存储桶配置为工作流制品的存储目标(BYOS,适用于 HIPAA 工作负载或数据驻留需求)。
  • 在保存存储目标前对其进行测试(“我的存储桶和凭证配置是否确实可用?”)。
  • 查看现有制品存放在哪个目标中(托管存储、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 分钟后过期。如果需要重试,请重新生成一个。

存储目标(默认托管存储)

工作流会在 definition.context.storage_destination 中保存首选目标。如果该字段为空或设为 kind: "managed",制品就会存放在 Scrapfly 的托管存储桶中。无需任何配置。

存储目标(BYOS GCS)

前置条件:创建一个类型为 blob 的 Scrapfly Vault 项目。在 data 字段中以单个字符串形式放入完整的 GCP 服务账号 JSON。将该 Vault 项目绑定到运行中,并使用你在 credentials_vault_ref 中设置的别名。

兼容旧配置:仍接受类型为 password 且 JSON 负载位于 password 字段中的项目,因此现有 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 访问密钥(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:缺少必填字段(存储桶、S3 的区域、credentials_vault_ref)。
  • storage_probe_write_failed:凭证已成功解析,但存储桶拒绝了写入操作。请检查服务账号或 AWS 访问密钥的 IAM 权限。

不支持的功能

  • 通过 API 从头编写工作流。请使用仪表板编辑器;此工具用于运行、制品和存储操作。
  • 替换现有制品的托管存储桶。编辑 storage_destination 只会影响未来的运行;现有条目仍保留在写入时所在的位置。
  • 保留期限。托管存储桶会在 90 天后清除制品。BYOS 存储桶由你自己的生命周期策略管理。

相关技能

  • scrapfly-browser:RPA 运行时驱动的底层 Cloud Browser API。需要直接控制 CDP,而不是使用类型化的工作流步骤时,请使用它。
  • scrapfly-cli:通过 shell 访问所有 Scrapfly 产品。没有 scrapfly rpa 子命令——请通过 REST API 或 SDK 驱动 RPA 工作流;CLI 的 exit-peer 组会安装 BYOP 连接器,RPA byop 配置会通过它进行路由。

评论

支持 Markdown