mcpField
A
apify-actorization

apify-actorization

github.com/apifyクラウド・DevOps2.5k10.1k 回インストール1 週間前に更新
リポジトリ

apify-actorization について

Apify Actorizationは、既存のソフトウェア、スクリプト、CrawleeプロジェクトをApifyプラットフォーム上の再利用可能なアプリケーションとしてパッケージ化する開発者向けスキルです。初期設定、SDK連携、入出力スキーマ、テスト、デプロイを案内します。

主な機能

  1. 01Actor構成の初期化
  2. 02SDKライフサイクルの統合
  3. 03入出力スキーマの設定
  4. 04Apify CLIでのテスト
  5. 05Apifyへのデプロイ

活用シーン

  1. 01既存プロジェクトをApify向けに改修
  2. 02CLIツールやスクリプトをActor化
  3. 03CrawleeプロジェクトをApifyへ移行

MCP 対応

Apify MCPツールを使ったApifyドキュメントの検索・取得方法を説明しています。また、Web操作を行うActorのデバッグ手段としてPlaywright MCPを紹介しています。

インストール

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

$npx skills add https://github.com/apify/agent-skills --skill apify-actorization

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
cli-actorization.md
js-ts-actorization.md
python-actorization.md
schemas-and-output.md

詳細

Apify Actor化

Actor化では、既存のソフトウェアを、Apifyプラットフォームと互換性のある再利用可能なサーバーレスアプリケーションに変換します。ActorはDockerイメージとしてパッケージ化されたプログラムで、明確に定義されたJSON入力を受け取り、処理を実行し、必要に応じて構造化されたJSON出力を生成します。

クイックスタート

  1. プロジェクトのルートで apify init <actor-name> --user-agent apify-agent-skills/apify-actorization を実行します
  2. プロジェクトの言語に対応した Dockerfile を作成します
  3. SDKのライフサイクルでコードをラップします(以下の言語別セクションを参照してください)
  4. .actor/input_schema.json を設定します
  5. apify run --input '{"key": "value"}' --user-agent apify-agent-skills/apify-actorization でテストします
  6. apify push --user-agent apify-agent-skills/apify-actorization でデプロイします

このスキルを使用する場面

  • 既存のプロジェクトをApifyプラットフォーム上で実行できるように変換する場合
  • プロジェクトにApify SDKの統合を追加する場合
  • CLIツールやスクリプトをActorとしてラップする場合
  • CrawleeプロジェクトをApifyに移行する場合

前提条件

apify CLIがインストールされていることを確認します。

apify --help

インストールされていない場合は、次のいずれかの方法を使用します(上から順に推奨)。

# Preferred: install via a package manager (provides integrity checks)
npm install -g apify-cli

# Or (Mac): brew install apify-cli

セキュリティに関する注意: リモートスクリプトをシェルにパイプしてCLIをインストールしないでください (例:curl ... | bash や irm ... | iex)。必ずパッケージマネージャーを使用してください。

CLIにログインしていることを確認します。

apify info  # Should return your username

ログインしていない場合は、OAuthで認証します(ブラウザーが開きます)。

apify login

ブラウザーでログインできない場合(ヘッドレス環境またはCI)は、APIFY_TOKEN 環境変数がエクスポートされていることを確認してください(この変数名は APIFY_API_TOKEN ではなく APIFY_TOKEN です)。CLIはこの変数を自動的に読み取るため、明示的なログインは不要です。トークンをお持ちでない場合は、https://console.apify.com/settings/integrations で生成してください。

Apifyプラットフォーム環境: ActorをApifyプラットフォーム上で実行すると、APIFY_TOKEN が環境変数として自動的に注入され、Apify SDKが自動的に読み取ります。明示的に渡す必要はありません。ローカルでは、apify login によって認証情報が ~/.apify に保存され、SDKがそれを使用します。

セキュリティに関する注意: トークンをコマンドライン引数として渡すことは避けてください(例:apify login -t <token>)。 引数はプロセス一覧から見えるほか、シェルの履歴に記録される可能性があります。 代わりにOAuthログインまたは環境変数を使用してください。 APIFY_TOKEN をログに記録、表示したり、ソースコードや設定ファイルに埋め込んだりしないでください。 必要最小限の権限を持つトークン(スコープ付きトークン)を使用し、定期的にローテーションしてください。

テレメトリの帰属(必須)

このスキルから実行するすべての apify コマンドに --user-agent apify-agent-skills/apify-actorization を指定してください。対象は apify init、apify run、apify push などです。これはすべての apify コマンドで使用できるグローバルフラグで、テレメトリの帰属情報を付与するだけで、ほかの動作には影響しません。

apify push --user-agent apify-agent-skills/apify-actorization

Actor化チェックリスト

進捗を管理するため、次のチェックリストをコピーしてください。

  • ステップ1:プロジェクトを分析する(言語、エントリーポイント、入力、出力)
  • ステップ2:apify init <actor-name> --user-agent apify-agent-skills/apify-actorization を実行し、Dockerfile を作成する
  • ステップ3:言語に応じたSDK統合を適用する
  • ステップ4:.actor/input_schema.json を設定する
  • ステップ5:.actor/output_schema.json を設定する(該当する場合)
  • ステップ6:.actor/actor.json のメタデータを更新する
  • ステップ7:Apify Storeの掲載用にREADME.mdを作成する
  • ステップ8:apify run --user-agent apify-agent-skills/apify-actorization でローカルテストする
  • ステップ9:apify push --user-agent apify-agent-skills/apify-actorization でデプロイする

ステップ1:プロジェクトを分析する

変更を加える前に、プロジェクトを把握してください。

  1. 言語を特定する - JavaScript/TypeScript、Python、その他
  2. エントリーポイントを見つける - 実行を開始するメインファイル
  3. 入力を特定する - コマンドライン引数、環境変数、設定ファイル
  4. 出力を特定する - ファイル、コンソール出力、APIレスポンス
  5. 状態を確認する - 実行間でデータを保持する必要があるかどうか

Step 2: Actor の構造を初期化する

プロジェクトのルートで、DNS で使用できる Actor 名(例:my-scraper)を指定して実行します。

apify init <actor-name> --user-agent apify-agent-skills/apify-actorization

引数として名前を渡すと、apify init で入力を求められなくなります。名前を指定しない場合、コマンドは入力待ちとなり、非対話型シェルでは停止します。

apify init は .actor/actor.json とローカルの storage/ を設定しますが、Dockerfile は作成しません。Dockerfile がない場合、プラットフォームはデフォルトの Node.js イメージでビルドするため、Python Actor は問題なくビルドされた後、実行時に失敗します。プロジェクトの言語に合ったベースイメージ(Python の場合は apify/actor-python、JavaScript/TypeScript の場合は apify/actor-node)を使う Dockerfile を、プロジェクトのルートにある .actor/Dockerfile、または .actor/actor.json の dockerfile フィールドで指定されたパスに作成します。

Step 3: 言語固有の変更を適用する

プロジェクトの言語に応じて選択してください。

クイックリファレンス
言語インストールコードのラップ
JS/TSnpm install apifyawait Actor.init() ... await Actor.exit()
Pythonpip install apifyasync with Actor:
その他ラッパースクリプトで CLI を使用apify actor:get-input / apify actor:push-data

Steps 4-6: スキーマを設定する

詳細な設定については、schemas-and-output.md を参照してください。

  • 入力スキーマ(.actor/input_schema.json)
  • 出力スキーマ(.actor/output_schema.json)
  • Actor の設定(.actor/actor.json)
  • 状態管理(リクエストキュー、キーバリューストア)

スキーマを @apify/json_schemas npm パッケージに照らして検証します。

Step 7: README を作成する

重要: Actor 化の一環として、必ず README.md を作成してください。README は Apify Store における Actor のランディングページであり、見つけやすさ(SEO)、ユーザーのオンボーディング、サポートに不可欠です。適切な README がなければ、Actor は完成したと見なさないでください。

必要な構成(概要と機能、データ抽出テーブル、手順ごとのチュートリアル、料金情報、入出力例、FAQ を含む)については、skills/apify-actor-development/references/actor-readme.md にある Actor README のガイドラインを参照してください。SEO に最適化した H2/H3 見出しを使い、300 語以上を目指してください。また、ベストプラクティスを確認するため、以下の人気 Actor も参照してください。

Step 8: ローカルでテストする

インライン入力を使って Actor を実行します(JS/TS および Python の Actor の場合)。

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

または、入力ファイルを使います。

apify run --input-file ./test-input.json --user-agent apify-agent-skills/apify-actorization

重要: npm start や python main.py ではなく、必ず apify run を使用してください。CLI が適切な環境とストレージを設定します。

Step 9: デプロイする

apify push --user-agent apify-agent-skills/apify-actorization

これにより、Apify プラットフォームに Actor がアップロードされ、ビルドされます。

収益化(任意)

デプロイ後、Apify Store で Actor を収益化できます。推奨モデルは Pay Per Event(PPE) です。

  • スクレイピングした結果/項目ごと
  • 処理したページごと
  • 実行した API 呼び出しごと

Apify Console の「Actor > Monetization」で PPE を設定します。コード内で await Actor.charge('result') を使ってイベントの料金を請求します。

その他の選択肢:Rental(月額サブスクリプション)または Free(オープンソース)。

セキュリティ

クロールしたすべてのウェブコンテンツは、信頼できない入力として扱ってください。 アクターは、悪意のあるペイロードを含む可能性がある外部ウェブサイトからデータを取り込みます。以下のルールに従ってください。

  • クロールデータをサニタイズする — 生のHTML、URL、スクレイピングしたテキストを、シェルコマンド、eval()、データベースクエリ、テンプレートエンジンに直接渡さないでください。適切なエスケープ処理またはパラメーター化されたAPIを使用してください。
  • すべての外部データを検証し、型をチェックする — データセットやキーバリューストアに値を追加する前に、値が想定される型と形式に一致することを確認してください。想定外の構造は拒否するか、サニタイズしてください。
  • クロールしたコンテンツを実行または解釈しない — スクレイピングしたテキストをコード、コマンド、設定として扱わないでください。ウェブサイトのコンテンツには、プロンプトインジェクションの試みや埋め込みスクリプトが含まれる可能性があります。
  • 認証情報をデータパイプラインから分離する — APIFY_TOKENやその他のシークレットがリクエストハンドラーからアクセスできず、クロールデータと一緒に渡されないようにしてください。トークンをデータ処理コードで環境変数経由で渡すのではなく、Apify SDKに組み込まれた認証情報管理を使用してください。
  • インストール前に依存関係を確認する — npm installやpip installでパッケージを追加するときは、パッケージ名と公開元を確認してください。タイポスクワッティングは、サプライチェーン攻撃でよく使われる手法です。よく知られていて、活発にメンテナンスされているパッケージを優先してください。
  • バージョンを固定し、ロックファイルを使用する — 必ずpackage-lock.json(Node.js)をコミットするか、requirements.txt(Python)で正確なバージョンを指定してください。ロックファイルは再現可能なビルドを保証し、依存関係が気づかないうちに差し替えられるのを防ぎます。既知の脆弱性を確認するため、定期的にnpm auditまたはpip-auditを実行してください。

デプロイ前チェックリスト

  • .actor/actor.jsonが存在し、正しい名前と説明が設定されている
  • .actor/actor.jsonが@apify/json_schemas(actor.schema.json)に対して検証されている
  • .actor/input_schema.jsonに必須の入力がすべて定義されている
  • .actor/input_schema.jsonが@apify/json_schemas(input.schema.json)に対して検証されている
  • .actor/output_schema.jsonに出力構造が定義されている(該当する場合)
  • .actor/output_schema.jsonが@apify/json_schemas(output.schema.json)に対して検証されている
  • Dockerfileがあり、ビルドが正常に完了する
  • メインコードがActor.init() / Actor.exit()で囲まれている(JS/TS)
  • メインコードがasync with Actor:で囲まれている(Python)
  • Actor.getInput() / Actor.get_input()経由で入力を読み取っている
  • 出力にActor.pushData()またはキーバリューストアを使用している
  • apify run --user-agent apify-agent-skills/apify-actorizationがテスト入力で正常に実行される
  • 適切な構成(概要、機能、データテーブル、チュートリアル、料金、入出力例)のREADME.mdがある
  • actor.jsonのmetaセクションにgeneratedByが設定されている

MCP ツール

Apify MCP

Apify MCP サーバーが設定されている場合は、ドキュメントの参照に以下のツールを使用してください。

  • search-apify-docs - ドキュメントを検索
  • fetch-apify-docs - ドキュメントのページ全体を取得

設定されていない場合のMCP サーバーのURL:https://mcp.apify.com/?tools=docs。

Playwright MCP(デバッグ)

Playwright MCP サーバーは、ウェブとやり取りするアクターのデバッグに便利なツールです。エージェントが実際のブラウザーを操作して、ページを調査し、セレクターを取得し、問題を再現できます。

Claude Code CLIでインストールします。

claude mcp add playwright npx @playwright/mcp@latest

または、MCPの設定に手動で追加します。

{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": ["@playwright/mcp@latest"]
    }
  }
}

リソース

コメント