$crond.io
integrations / azure

Azure Scheduled Task Monitoring

Azure offers several scheduling primitives — Functions timer triggers, Container Apps jobs, AKS CronJobs, and traditional VM crontabs. All four pair cleanly with crond.io.

Azure Functions timer triggers

The most common Azure pattern. Add a ping call at the end of your timer-triggered function:

# C# Function
[Function("NightlyCleanup")]
public async Task Run([TimerTrigger("0 0 2 * * *")] TimerInfo timer)
{
await DoCleanup();
var key = Environment.GetEnvironmentVariable("CROND_KEY");
await _http.GetAsync($"https://api.crond.io/ping/{key}");
}

For PowerShell:

param($Timer)
Do-NightlyCleanup
Invoke-WebRequest -Uri "https://api.crond.io/ping/$env:CROND_KEY" -UseBasicParsing

Store CROND_KEYin the Function App's Application Settings (or Key Vault reference for production).

Container Apps jobs

Container Apps jobs run a container on a schedule. Use crond-agent as the entrypoint:

# Dockerfile
FROM mcr.microsoft.com/dotnet/runtime:8.0
RUN apt-get update && apt-get install -y curl && \
curl -sSL crond.io/install | sh
COPY ./bin/Release/net8.0 /app/
ENTRYPOINT ["crond-agent", "wrap", "--name", "nightly-report", "--"]
CMD ["dotnet", "/app/ReportGenerator.dll"]

Pass CROND_PING_KEYvia the job's environment block (or Key Vault reference). The agent captures exit code and runtime — Container Apps jobs don't expose runtime in the portal by default, so this fills a real gap.

AKS CronJobs

For AKS, the same patterns from our Kubernetes integration apply directly — the crond-monitor Helm chart works on AKS without changes.

Azure VM crontabs

Standard Linux crontab on an Azure VM:

curl -sSL crond.io/install | sh
# crontab -e
30 1 * * * crond-agent wrap --name "disk-cleanup" -- /usr/local/bin/cleanup.sh

Networking

crond.io ingest at api.crond.io needs outbound HTTPS:

  • Default Azure VM and Container Apps egress works without configuration
  • VMs in private subnets behind NSGs need an outbound rule for 443 on the internet service tag
  • Function Apps with VNet integration need outbound 443 to Internet or to our static IPs (allowlist available on request)

Why monitor Azure Functions specifically

Azure Functions on Consumption plans suffer from cold-start delays on infrequently triggered timers — and occasional silent missed invocations during platform-level incidents. crond.io catches missed runs without relying on Application Insights, which only tells you about runs that started, not ones that never fired.