Multi-Cloud Pricing Cost Impact Report avatar

Multi-Cloud Pricing Cost Impact Report

Pricing

from $6.00 / 1,000 multi-cloud price rows

Go to Apify Store
Multi-Cloud Pricing Cost Impact Report

Multi-Cloud Pricing Cost Impact Report

Compare official AWS public price-list and Azure Retail Prices data for explicitly normalized workload scenarios. Get source-linked cross-provider cost reports, price-change alerts, and exports without cloud credentials.

Pricing

from $6.00 / 1,000 multi-cloud price rows

Rating

0.0

(0)

Developer

naoki anzai

naoki anzai

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

FinOps and cloud architecture teams enter comparable workload scenarios with one bounded AWS public-price selector and one bounded Azure Retail Prices selector. The Actor maps each provider quantity to the same explicit normalized unit and returns a source-linked cross-provider cost comparison report. It also emits price-change alerts and optional exports; the first baseline and unchanged checks emit zero rows and zero charge.

Store Quickstart

Run the first check with baseline_only to save an isolated AWS/Azure baseline without delivery or charges. Use one exact product or meter selector per provider and keep the normalized workload assumptions explicit.

{
"scenarios": [
{
"id": "object-storage-monthly",
"workloadLabel": "Object storage monthly capacity",
"comparisonAssumptions": "Compare the first public storage tier for the same monthly capacity. Requests, retrieval, replication, egress, discounts, tax, support, credits, and free tiers are excluded.",
"normalizedUsage": { "unit": "storage-gb-month", "quantity": 1000 },
"aws": {
"serviceCode": "AmazonS3",
"region": "us-east-1",
"selectors": { "productFamily": "Storage", "unit": "GB-Mo", "descriptionIncludes": ["first 50 TB"], "attributes": { "storageClass": "General Purpose", "volumeType": "Standard" } },
"usage": { "quantity": 1000, "unit": "GB-Mo", "mappingNote": "One thousand GB-months maps to the normalized monthly storage capacity." }
},
"azure": {
"serviceName": "Storage",
"armRegionName": "eastus",
"selectors": { "meterName": "Hot LRS Data Stored", "productName": "Blob Storage", "priceType": "Consumption", "tierMinimumUnits": 0 },
"usage": { "quantity": 1000, "unit": "1 GB/Month", "mappingNote": "The Azure first storage tier maps to the same normalized monthly storage capacity." }
}
}
],
"monitorKey": "finops-api-compute",
"initialRunMode": "baseline_only",
"generateReport": true,
"emitRawRows": false,
"emitExport": false,
"emitUnchanged": false,
"maxChargeUsd": 25,
"dryRun": false
}

Run the next report

After the baseline, schedule the identical monitorKey and scenario selectors. A changed AWS or Azure price emits a source-linked alert and a comparison report. A run with no price change emits zero dataset rows and zero charges, even when emitUnchanged is true.

For a one-time current report, use initialRunMode: "emit_current". The report is delivered first, followed by change alerts, optional provider rows, and the export.

Input examples

Storage scenario with an explicit normalized unit

{
"scenarios": [
{
"id": "object-storage-monthly",
"workloadLabel": "Object storage monthly capacity",
"comparisonAssumptions": "Compare one normalized storage-capacity month. Requests, retrieval, replication, egress, discounts, tax, support, and free tiers are outside this scenario.",
"normalizedUsage": { "unit": "storage-gb-month", "quantity": 1000 },
"aws": {
"serviceCode": "AmazonS3",
"region": "us-east-1",
"selectors": { "productFamily": "Storage", "attributes": { "storageClass": "General Purpose" }, "unit": "GB-Mo" },
"usage": { "quantity": 1000, "unit": "GB-Mo", "mappingNote": "One thousand GB-months is the shared normalized storage quantity." }
},
"azure": {
"serviceName": "Storage",
"armRegionName": "eastus",
"selectors": { "meterName": "Hot LRS Data Stored", "productName": "Blob Storage", "priceType": "Consumption" },
"usage": { "quantity": 1000, "unit": "1 GB/Month", "mappingNote": "The selected Blob Storage meter maps to one thousand storage GB-months." }
}
}
],
"monitorKey": "storage-portfolio",
"initialRunMode": "baseline_only",
"maxChargeUsd": 25,
"dryRun": false
}

Current comparison with export

{
"scenarios": [
{
"id": "database-monthly",
"workloadLabel": "Managed database monthly compute",
"comparisonAssumptions": "Compare the stated monthly database compute quantity only. Storage, I/O, backup, high availability, discounts, tax, support, and egress are excluded.",
"normalizedUsage": { "unit": "database-compute-hour", "quantity": 730 },
"aws": {
"serviceCode": "AmazonRDS",
"region": "us-east-1",
"selectors": { "productFamily": "Database Instance", "usageType": "InstanceUsage", "unit": "Hrs" },
"usage": { "quantity": 730, "unit": "Hrs", "mappingNote": "730 provider hours represent the normalized database-compute-hour quantity." }
},
"azure": {
"serviceName": "SQL Database",
"armRegionName": "eastus",
"selectors": { "meterName": "vCore", "productName": "SQL Database", "priceType": "Consumption" },
"usage": { "quantity": 730, "unit": "1 Hour", "mappingNote": "730 Azure meter hours represent the same stated normalized database-compute-hour quantity." }
}
}
],
"monitorKey": "database-comparison",
"initialRunMode": "emit_current",
"generateReport": true,
"emitExport": true,
"maxChargeUsd": 25,
"dryRun": false
}

Output and pricing

The report is the buyer-facing primary result. It retains both provider source URLs, normalized unit and quantity, provider units and quantities, mapping notes, assumptions, current monthly estimates, and the difference between them.

EventPriceDelivered when
multi-cloud-price-row$0.006Optional normalized AWS or Azure public price row
multi-cloud-price-change-alert$0.20A selected AWS or Azure price row is added, changed, or removed
multi-cloud-cost-comparison-report$12.00A current comparison is reportable after baseline or a provider change
multi-cloud-pricing-export$8.00A source-linked JSON export is requested

There is no start charge. The Actor preflights every event and stops if maxChargeUsd would be exceeded. State is committed only after delivery succeeds. Unknown event names, missing chargedCount, event charge limits, invalid source data, and state-write failures fail closed.

Data source and safeguards

  • AWS source: AWS public price-list files, accessed from pricing.us-east-1.amazonaws.com without an AWS key.
  • Azure source: Azure Retail Prices API, accessed from prices.azure.com without an Azure subscription or key.
  • GCP is explicitly excluded because this Actor does not add a billing or credential dependency.
  • Oracle Cloud is explicitly excluded because no stable, verified machine-readable public retail-price API is used here.
  • AWS selectors and Azure selectors are exact and bounded; ambiguous multiple matches fail closed.
  • Public list prices are before discounts, tax, support, credits, free tiers, egress, and account-specific terms. No savings guarantee is made.
  • This Actor is not affiliated with or endorsed by AWS, Amazon, Microsoft, Azure, GCP, or Oracle.

See also

Development

npm test
npm start