Amazon Compute Optimizer · JSON Structure
Compute Optimizer Lambda Function Recommendation Structure
Describes an Lambda function recommendation.
Type: object
Properties: 13
Cost OptimizationFinOpsMachine LearningResource Recommendations
LambdaFunctionRecommendation is a JSON Structure definition published by Amazon Compute Optimizer, describing 13 properties. It conforms to the https://json-structure.org/meta/core/v0/# meta-schema.
Properties
functionArn
functionVersion
accountId
currentMemorySize
numberOfInvocations
utilizationMetrics
lookbackPeriodInDays
lastRefreshTimestamp
finding
findingReasonCodes
memorySizeRecommendationOptions
currentPerformanceRisk
tags
Meta-schema: https://json-structure.org/meta/core/v0/#
JSON Structure
{
"$schema": "https://json-structure.org/meta/core/v0/#",
"$id": "https://raw.githubusercontent.com/api-evangelist/amazon-compute-optimizer/refs/heads/main/json-structure/compute-optimizer-lambda-function-recommendation-structure.json",
"name": "LambdaFunctionRecommendation",
"description": "Describes an Lambda function recommendation.",
"type": "object",
"properties": {
"functionArn": {
"allOf": [
{
"$ref": "#/components/schemas/FunctionArn"
},
{
"description": "The Amazon Resource Name (ARN) of the current function."
}
]
},
"functionVersion": {
"allOf": [
{
"$ref": "#/components/schemas/FunctionVersion"
},
{
"description": "The version number of the current function."
}
]
},
"accountId": {
"allOf": [
{
"$ref": "#/components/schemas/AccountId"
},
{
"description": "The Amazon Web Services account ID of the function."
}
]
},
"currentMemorySize": {
"allOf": [
{
"$ref": "#/components/schemas/MemorySize"
},
{
"description": "The amount of memory, in MB, that's allocated to the current function."
}
]
},
"numberOfInvocations": {
"allOf": [
{
"$ref": "#/components/schemas/NumberOfInvocations"
},
{
"description": "The number of times your function code was applied during the look-back period."
}
]
},
"utilizationMetrics": {
"allOf": [
{
"$ref": "#/components/schemas/LambdaFunctionUtilizationMetrics"
},
{
"description": "An array of objects that describe the utilization metrics of the function."
}
]
},
"lookbackPeriodInDays": {
"allOf": [
{
"$ref": "#/components/schemas/LookBackPeriodInDays"
},
{
"description": "The number of days for which utilization metrics were analyzed for the function."
}
]
},
"lastRefreshTimestamp": {
"allOf": [
{
"$ref": "#/components/schemas/LastRefreshTimestamp"
},
{
"description": "The timestamp of when the function recommendation was last generated."
}
]
},
"finding": {
"allOf": [
{
"$ref": "#/components/schemas/LambdaFunctionRecommendationFinding"
},
{
"description": "<p>The finding classification of the function.</p> <p>Findings for functions include:</p> <ul> <li> <p> <b> <code>Optimized</code> </b> \u2014 The function is correctly provisioned to run your workload based on its current configuration and its utilization history. This finding classification does not include finding reason codes.</p> </li> <li> <p> <b> <code>NotOptimized</code> </b> \u2014 The function is performing at a higher level (over-provisioned) or at a lower level (under-provisioned) than required for your workload because its current configuration is not optimal. Over-provisioned resources might lead to unnecessary infrastructure cost, and under-provisioned resources might lead to poor application performance. This finding classification can include the <code>MemoryUnderprovisioned</code> and <code>MemoryUnderprovisioned</code> finding reason codes.</p> </li> <li> <p> <b> <code>Unavailable</code> </b> \u2014 Compute Optimizer was unable to generate a recommendation for the function. This could be because the function has not accumulated sufficient metric data, or the function does not qualify for a recommendation. This finding classification can include the <code>InsufficientData</code> and <code>Inconclusive</code> finding reason codes.</p> <note> <p>Functions with a finding of unavailable are not returned unless you specify the <code>filter</code> parameter with a value of <code>Unavailable</code> in your <code>GetLambdaFunctionRecommendations</code> request.</p> </note> </li> </ul>"
}
]
},
"findingReasonCodes": {
"allOf": [
{
"$ref": "#/components/schemas/LambdaFunctionRecommendationFindingReasonCodes"
},
{
"description": "<p>The reason for the finding classification of the function.</p> <note> <p>Functions that have a finding classification of <code>Optimized</code> don't have a finding reason code.</p> </note> <p>Finding reason codes for functions include:</p> <ul> <li> <p> <b> <code>MemoryOverprovisioned</code> </b> \u2014 The function is over-provisioned when its memory configuration can be sized down while still meeting the performance requirements of your workload. An over-provisioned function might lead to unnecessary infrastructure cost. This finding reason code is part of the <code>NotOptimized</code> finding classification.</p> </li> <li> <p> <b> <code>MemoryUnderprovisioned</code> </b> \u2014 The function is under-provisioned when its memory configuration doesn't meet the performance requirements of the workload. An under-provisioned function might lead to poor application performance. This finding reason code is part of the <code>NotOptimized</code> finding classification.</p> </li> <li> <p> <b> <code>InsufficientData</code> </b> \u2014 The function does not have sufficient metric data for Compute Optimizer to generate a recommendation. For more information, see the <a href=\"https://docs.aws.amazon.com/compute-optimizer/latest/ug/requirements.html\">Supported resources and requirements</a> in the <i>Compute Optimizer User Guide</i>. This finding reason code is part of the <code>Unavailable</code> finding classification.</p> </li> <li> <p> <b> <code>Inconclusive</code> </b> \u2014 The function does not qualify for a recommendation because Compute Optimizer cannot generate a recommendation with a high degree of confidence. This finding reason code is part of the <code>Unavailable</code> finding classification.</p> </li> </ul>"
}
]
},
"memorySizeRecommendationOptions": {
"allOf": [
{
"$ref": "#/components/schemas/LambdaFunctionMemoryRecommendationOptions"
},
{
"description": "An array of objects that describe the memory configuration recommendation options for the function."
}
]
},
"currentPerformanceRisk": {
"allOf": [
{
"$ref": "#/components/schemas/CurrentPerformanceRisk"
},
{
"description": "The risk of the current Lambda function not meeting the performance needs of its workloads. The higher the risk, the more likely the current Lambda function requires more memory."
}
]
},
"tags": {
"allOf": [
{
"$ref": "#/components/schemas/Tags"
},
{
"description": " A list of tags assigned to your Lambda function recommendations. "
}
]
}
}
}