【研发类-API开发Skills】apify-actorization 技能

📅 2026/7/14 6:06:55 👁️ 阅读次数 📝 编程学习
【研发类-API开发Skills】apify-actorization 技能

Actorization将现有软件转换为与Apify平台兼容的可重用无服务器应用程序。Actor是打包为Docker镜像的程序,接受定义良好的JSON输入,执行操作,并可选地生成结构化JSON输出。

📥 下载地址:antigravity-awesome-skills/skills/apify-actorization at main · sickn33/antigravity-awesome-skills · GitHub

技能概述

apify-actorization 技能用于将现有软件转换为与Apify平台兼容的可重用无服务器应用程序。Actor是打包为Docker镜像的程序,接受定义良好的JSON输入,执行操作,并可选地生成结构化JSON输出。

触发条件

在以下情况下应该调用此技能:

  • 将现有项目转换为在Apify平台上运行
  • 向项目添加Apify SDK集成
  • 将CLI工具或脚本包装为Actor
  • 将Crawlee项目迁移到Apify

快速开始

  1. 在项目根目录运行apify init
  2. 使用SDK生命周期包装代码(参见语言特定部分)
  3. 配置.actor/input_schema.json
  4. 使用apify run --input '{"key": "value"}'测试
  5. 使用apify push部署

前提条件

验证CLI已安装:

apify --help

如果未安装:

brew install apify-cli # 或: npm install -g apify-cli

验证CLI已登录:

apify info # 应返回您的用户名

Actorization检查清单

  • ☐ 步骤1: 分析项目(语言、入口点、输入、输出)
  • ☐ 步骤2: 运行apify init创建Actor结构
  • ☐ 步骤3: 应用语言特定的SDK集成
  • ☐ 步骤4: 配置.actor/input_schema.json
  • ☐ 步骤5: 配置.actor/output_schema.json(如适用)
  • ☐ 步骤6: 更新.actor/actor.json元数据
  • ☐ 步骤7: 使用apify run本地测试
  • ☐ 步骤8: 使用apify push部署

步骤1: 分析项目

在进行更改之前,了解项目:

  1. 识别语言- JavaScript/TypeScript、Python或其他
  2. 找到入口点- 启动执行的主文件
  3. 识别输入- 命令行参数、环境变量、配置文件
  4. 识别输出- 文件、控制台输出、API响应
  5. 检查状态- 是否需要在运行之间持久化数据?

步骤2: 初始化Actor结构

在项目根目录运行:

apify init

这将创建:

  • .actor/actor.json- Actor配置和元数据
  • .actor/input_schema.json- Apify Console的输入定义
  • Dockerfile(如果不存在)- 容器镜像定义

步骤3: 应用语言特定更改

根据项目的语言选择:

  • JavaScript/TypeScript: 参见 js-ts-actorization.md
  • Python: 参见 python-actorization.md
  • 其他语言(基于CLI): 参见 cli-actorization.md

快速参考

语言安装包装代码
JS/TSnpm install apifyawait Actor.init()...await Actor.exit()
Pythonpip install apifyasync with Actor:
其他在包装脚本中使用CLIapify actor:get-input/apify actor:push-data

步骤7: 本地测试

使用内联输入运行actor(对于JS/TS和Python actor):

apify run --input '{"startUrl": "https://example.com", "maxItems": 10}'

或使用输入文件:

apify run --input-file ./test-input.json

重要:始终使用apify run,而不是npm startpython main.py。CLI设置适当的环境和存储。

步骤8: 部署

apify push

这将在Apify平台上上传并构建您的actor。

货币化(可选)

部署后,您可以在Apify Store中货币化您的actor。推荐的模式是按事件付费(PPE)

  • 每个结果/抓取的项目
  • 每个处理的页面
  • 每个进行的API调用

在Apify Console中的Actor > Monetization下配置PPE。在代码中使用await Actor.charge('result')收取事件费用。

其他选项:租赁(月度订阅)或免费(开源)。

部署前检查清单

  • .actor/actor.json存在,具有正确的名称和描述
  • .actor/actor.json针对@apify/json_schemas验证
  • .actor/input_schema.json定义所有必需的输入
  • .actor/input_schema.json针对@apify/json_schemas验证
  • .actor/output_schema.json定义输出结构(如适用)
  • .actor/output_schema.json针对@apify/json_schemas验证
  • Dockerfile存在并成功构建
  • Actor.init()/Actor.exit()包装主代码(JS/TS)
  • async with Actor:包装主代码
  • ☐ 输入通过Actor.getInput()/Actor.get_input()读取
  • ☐ 输出使用Actor.pushData()或键值存储
  • apify run使用测试输入成功执行
  • generatedBy在actor.json meta部分设置

使用限制

  • 仅在任务明确符合上述范围时使用此技能
  • 不要将输出作为环境特定验证、测试或专家审查的替代品
  • 如果缺少必需的输入、权限、安全边界或成功标准,请停止并寻求澄清