Production readiness checklist for Apify Actor deployments.
Use when deploying Actors to production, preparing for launch,
or validating Actor configuration before going live.
Trigger: "apify production", "deploy actor to prod",
"apify go-live", "apify launch checklist", "actor production ready".
Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.
Quelldateien prüfen
Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.
Mit Codex oder Claude installieren Kopieren Sie diesen Prompt, fügen Sie ihn in Codex, Claude oder einen anderen Assistant ein und lassen Sie die Skill-Seite prüfen und installieren.
Ein direkter Befehl überspringt den Prüf-Prompt. Prüfen Sie die Quelle, bevor Sie ihn ausführen.
Production readiness checklist for Apify Actor deployments.
Use when deploying Actors to production, preparing for launch,
or validating Actor configuration before going live.
Trigger: "apify production", "deploy actor to prod",
"apify go-live", "apify launch checklist", "actor production ready".
Complete checklist for deploying Actors to the Apify platform and integrating them into production applications. Covers Actor configuration, scheduling, monitoring, alerting, and rollback.
Prerequisites
Actor tested locally with apify run
apify login configured with production token
Familiarity with apify-core-workflow-a and apify-deploy-integration
Pre-Deployment Checklist
Actor Configuration
.actor/actor.json has correct name, title, description
INPUT_SCHEMA.json validates all required inputs
Dockerfile uses pinned base image version (apify/actor-node:20, not latest)
Memory set appropriately (start at 1024MB, tune after profiling)
Timeout set with buffer (2x expected runtime)
Code Quality
Actor.main() wraps entry point (handles init/exit/errors)
failedRequestHandler logs failures without crashing Actor
Input validation at Actor start (if (!input?.startUrls) throw ...)
No hardcoded URLs, credentials, or magic numbers
Proxy configured for target sites that block datacenter IPs
maxRequestsPerCrawl set to prevent runaway costs
Data Output
Dataset schema documented (consistent field names)
SUMMARY key-value store record saved with run stats
Large payloads chunked (9MB dataset push limit)
PII sanitized before storage
Instructions
Step 1: Deploy Actor
# Build and push to Apify platform
apify push
# Verify the build succeeded
apify builds ls# Test on platform with production-like input
apify actors call username/my-actor \
--input='{"startUrls":[{"url":"https://target.com"}],"maxItems":10}'
# List available builds
apify builds ls# Roll back to a previous build
curl -X POST \
-H "Authorization: Bearer $APIFY_TOKEN" \
"https://api.apify.com/v2/acts/ACTOR_ID?build=BUILD_NUMBER"# Or redeploy from a git tag
git checkout v1.2.3
apify push
Step 6: Cost Guard
// Set up a cost guard that aborts runs exceeding budgetasyncfunctionrunWithCostGuard(actorId: string,
input: Record<string, unknown>,
maxCostUsd: number,
) {
const run = await client.actor(actorId).start(input);
// Poll every 30 secondsconst pollInterval = setInterval(async () => {
const status = await client.run(run.id).get();
const cost = status.usageTotalUsd ?? 0;
if (cost > maxCostUsd) {
console.error(`Cost guard: $${cost.toFixed(4)} exceeds $${maxCostUsd}. Aborting.`);
await client.run(run.id).abort();
clearInterval(pollInterval);
}
}, 30_000);
const finished = await client.run(run.id).waitForFinish();
clearInterval(pollInterval);
return finished;
}