关于 scrapfly-rpa
scrapfly-rpa 是通过 REST API 操作 Scrapfly RPA 工作流的技能,涵盖运行监控、产物管理,以及配置或测试托管存储和自有存储目标。
主要功能
- 01触发并监控工作流运行
- 02列出并下载运行产物
- 03配置 GCS 或 S3 存储
- 04探测存储目标
- 05查看产物存储位置
适用场景
- 01运行已保存的工作流并等待完成
- 02获取工作流运行产生的产物
- 03配置自有 GCS 或 S3 存储
- 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 连接器,RPAbyop配置会通过它进行路由。