Crée une stratégie de mise à l'échelle élastique pour une application.
Description de l'opération
Avant de commencer
Vous pouvez créer jusqu'à 5 stratégies de mise à l'échelle automatique pour une seule application.
Vous pouvez créer jusqu'à 20 points de déclenchement dans une seule journée pour une seule stratégie élastique programmée.
Lorsqu'une stratégie élastique automatique est activée, n'effectuez pas manuellement d'opérations de gestion du cycle de vie de l'application, telles que la mise à l'échelle de l'application, le déploiement de l'application, la modification des spécifications, le redémarrage de l'application ou l'arrêt de l'application. Si vous devez effectuer ces opérations, désactivez d'abord la stratégie élastique automatique.
Si l'application est actuellement en cours de mise à l'échelle, de déploiement (en un seul lot, en plusieurs lots ou en déploiement canari), de modification de ses spécifications, de redémarrage ou d'arrêt, vous ne pouvez pas ajouter ou démarrer de stratégie élastique automatique pour l'application.
Si une seule application doit être mise à l'échelle vers le haut à plus de 50 instances, contactez le support technique de Serverless App Engine (SAE) et demandez une liste blanche. Pour plus d'informations, consultez Nous contacter.
Testez maintenant
Testez cette API dans OpenAPI Explorer, sans signature manuelle. Les appels réussis génèrent automatiquement du code SDK correspondant à vos paramètres. Téléchargez-le avec une sécurité intégrée des identifiants pour une utilisation locale. Testez cette API dans OpenAPI Explorer, sans signature manuelle. Les appels réussis génèrent automatiquement du code SDK correspondant à vos paramètres. Téléchargez-le avec une sécurité intégrée des identifiants pour une utilisation locale.
Test
Autorisation RAM
|
sae:CreateApplicationScalingRule |
create |
*Toutes les ressources.
|
Aucune | Aucune |
Syntaxe de la requête
POST /pop/v1/sam/scale/applicationScalingRule HTTP/1.1
Paramètres de requête
|
Paramètre |
Type |
Requis |
Description |
Exemple |
| AppId |
string |
Oui |
L'identifiant de l'application. |
7171a6ca-d1cd-4928-8642-7d5cfe69**** |
| ScalingRuleName |
string |
Oui |
Le nom personnalisé de la stratégie de mise à l'échelle élastique. Le nom de la stratégie doit être unique au sein de l'application, commencer par une lettre minuscule et contenir uniquement des lettres minuscules, des chiffres et des traits d'union (-). Il peut comporter jusqu'à 32 caractères. Remarque
Une fois la stratégie de mise à l'échelle élastique créée, le nom de la stratégie ne peut pas être modifié. |
timer-0800-2100 |
| ScalingRuleType |
string |
Oui |
Le type de la stratégie de mise à l'échelle élastique. Valeurs valides :
Remarque
|
timing |
| ScalingRuleTimer |
string |
Non |
La configuration de la stratégie élastique programmée. Ce paramètre est requis lorsque vous sélectionnez une stratégie élastique programmée ou utilisez un SDK pour la configuration. Description des métriques :
|
{"beginDate":null,"endDate":null,"period":"* * *","schedules":[{"atTime":"08:00","targetReplicas":10},{"atTime":"20:00","targetReplicas":3}]} |
| ScalingRuleMetric |
string |
Non |
La configuration de la stratégie élastique basée sur les métriques de surveillance. Ce paramètre est requis lorsque vous sélectionnez les paramètres de la stratégie élastique basée sur les métriques de surveillance. Description des métriques :
Remarque
Vous pouvez configurer une ou plusieurs métriques de surveillance. Si plusieurs métriques de surveillance sont configurées, l'application est mise à l'échelle vers le haut tant qu'une métrique est supérieure ou égale à la valeur cible. Le nombre d'instances après la mise à l'échelle vers le haut ne dépasse pas le nombre maximum d'instances pour l'application. Si toutes les métriques sont inférieures à la valeur cible, l'application est mise à l'échelle vers le bas. Le nombre d'instances après la mise à l'échelle vers le bas n'est pas inférieur au nombre minimum d'instances pour l'application. |
{"maxReplicas":3,"minReplicas":1,"metrics":[{"metricType":"CPU","metricTargetAverageUtilization":20},{"metricType":"MEMORY","metricTargetAverageUtilization":30},{"metricType":"tcpActiveConn","metricTargetAverageUtilization":20},{"metricType":"SLB_QPS","MetricTargetAverageUtilization":25,"slbId":"lb-xxx","slbProject":"aliyun-fc-cn-hangzhou-d95881d9-5d3c-5f26-a6b8-************","slbLogstore":"function-log","vport":"80"},{"metricType":"SLB_RT","MetricTargetAverageUtilization":35,"slbId":"lb-xxx","slbProject":"aliyun-fc-cn-hangzhou-d95881d9-5d3c-5f26-a6b8-************","slbLogstore":"function-log","vport":"80"}],"scaleUpRules":{"step":"100","disabled":false,"stabilizationWindowSeconds":0},"scaleDownRules":{"step":"100","disabled":false,"stabilizationWindowSeconds":300}} |
| MinReadyInstances |
integer |
Non |
Le nombre minimum d'instances survivantes. Valeurs valides :
Remarque
Nous vous recommandons de définir le nombre minimum d'instances survivantes pour chaque déploiement progressif sur une valeur supérieure ou égale à 1 afin de garantir la continuité du service. |
3 |
| MinReadyInstanceRatio |
integer |
Non |
Le pourcentage du nombre minimum d'instances survivantes. Valeurs valides :
Remarque
Lorsque MinReadyInstances et MinReadyInstanceRatio sont tous deux spécifiés et que la valeur de MinReadyInstanceRatio n'est pas -1, le paramètre MinReadyInstanceRatio prévaut. Par exemple, si MinReadyInstances est défini sur 5 et MinReadyInstanceRatio sur 50, la valeur 50 est utilisée pour calculer le nombre minimum d'instances survivantes. |
-1 |
| ScalingRuleEnable |
boolean |
Non |
Indique si la stratégie de mise à l'échelle élastique doit être activée. Valeurs valides :
|
true |
| EnableIdle |
boolean |
Non |
Indique si le mode inactif doit être activé. |
Éléments de réponse
|
Élément |
Type |
Description |
Exemple |
|
object |
Les informations de réponse. |
||
| RequestId |
string |
L'identifiant de la requête. |
91F93257-7A4A-4BD3-9A7E-2F6EAE6D**** |
| TraceId |
string |
L'identifiant de trace, qui est utilisé pour interroger avec précision les informations d'appel. |
0a98a02315955564772843261e**** |
| Data |
object |
Le résultat renvoyé. |
|
| Timer |
object |
La configuration de la mise à l'échelle élastique programmée. |
|
| EndDate |
string |
La date de fin à court terme de la stratégie de mise à l'échelle élastique programmée.
|
2021-04-25 |
| BeginDate |
string |
La date de début à court terme de la stratégie de mise à l'échelle élastique programmée.
|
2021-03-25 |
| Schedules |
array<object> |
Les points temporels de déclenchement dans une seule journée. |
|
|
object |
Les données du point temporel. |
||
| AtTime |
string |
Le point temporel. Format : HH:mm. |
08:00 |
| TargetReplicas |
integer |
Le nombre cible d'instances. |
3 |
| MaxReplicas |
integer |
Le nombre maximum d'instances. |
10 |
| MinReplicas |
integer |
Le nombre minimum d'instances. |
5 |
| Period |
string |
La période d'exécution de la stratégie de mise à l'échelle élastique programmée. Valeurs valides :
|
* * * |
| UpdateTime |
integer |
L'heure de mise à jour de la stratégie de mise à l'échelle élastique. Unité : millisecondes. |
1616642248938 |
| AppId |
string |
L'identifiant de l'application. |
7171a6ca-d1cd-4928-8642-7d5cfe69**** |
| CreateTime |
integer |
L'heure de création de la stratégie de mise à l'échelle élastique. Unité : millisecondes. |
1616642248938 |
| LastDisableTime |
integer |
L'heure à laquelle la stratégie de mise à l'échelle élastique a été désactivée pour la dernière fois. |
1641882854484 |
| ScaleRuleEnabled |
boolean |
Indique si la stratégie de mise à l'échelle élastique est activée. Valeurs valides :
|
true |
| ScaleRuleType |
string |
Le type de la stratégie de mise à l'échelle élastique. Valeurs valides :
|
timing |
| Metric |
object |
La configuration de la mise à l'échelle élastique basée sur les métriques de surveillance. |
|
| Metrics |
array<object> |
La liste des configurations de mise à l'échelle élastique basée sur les métriques de surveillance. |
|
|
object |
Les données de la métrique de surveillance. |
||
| MetricTargetAverageUtilization |
integer |
La valeur cible de la métrique de surveillance.
|
20 |
| MetricType |
string |
La condition de déclenchement pour la métrique de surveillance. Valeurs valides :
|
CPU |
| SlbProject |
string |
Le projet Simple Log Service pour les journaux d'accès SLB. |
test |
| SlbLogstore |
string |
Le Logstore Simple Log Service pour les journaux d'accès SLB. |
test |
| Vport |
string |
Le port du SLB. |
80 |
| SlbId |
string |
L'identifiant de l'instance SLB. |
lb-xxx |
| MaxReplicas |
integer |
Le nombre maximum d'instances. |
3 |
| MinReplicas |
integer |
Le nombre minimum d'instances. |
1 |
| ScaleRuleName |
string |
Le nom de la stratégie de mise à l'échelle élastique. |
test |
| EnableIdle |
boolean |
Indique si le mode inactif est activé. |
|
| Message |
string |
Les informations supplémentaires. Valeurs valides :
|
success |
| ErrorCode |
string |
Le code d'erreur. Valeurs valides :
|
InstanceExist.ScalingRuleName |
| Code |
string |
Le code d'état de l'API ou le code d'erreur POP. Valeurs valides :
|
200 |
| Success |
boolean |
Indique si l'instance d'application a été redémarrée avec succès. Valeurs valides :
|
true |
Exemples
JSON format
{
"RequestId": "91F93257-7A4A-4BD3-9A7E-2F6EAE6D****",
"TraceId": "0a98a02315955564772843261e****",
"Data": {
"Timer": {
"EndDate": "2021-04-25",
"BeginDate": "2021-03-25",
"Schedules": [
{
"AtTime": "08:00",
"TargetReplicas": 3,
"MaxReplicas": 10,
"MinReplicas": 5
}
],
"Period": "* * *"
},
"UpdateTime": 1616642248938,
"AppId": "7171a6ca-d1cd-4928-8642-7d5cfe69****",
"CreateTime": 1616642248938,
"LastDisableTime": 1641882854484,
"ScaleRuleEnabled": true,
"ScaleRuleType": "timing",
"Metric": {
"Metrics": [
{
"MetricTargetAverageUtilization": 20,
"MetricType": "CPU",
"SlbProject": "test",
"SlbLogstore": "test",
"Vport": "80",
"SlbId": "lb-xxx"
}
],
"MaxReplicas": 3,
"MinReplicas": 1
},
"ScaleRuleName": "test",
"EnableIdle": false
},
"Message": "success",
"ErrorCode": "InstanceExist.ScalingRuleName",
"Code": "200",
"Success": true
}
Codes d'erreur
|
Code de statut HTTP |
Code d'erreur |
Message d'erreur |
Description |
|---|---|---|---|
| 400 | InstanceExist.ScalingRuleName | The specified ScalingRuleName already exists. | Le nom de stratégie élastique spécifié existe déjà. |
| 400 | InvalidScalingRuleDate.BeginAfterEnd | The specified beginning time is later than the ending time. | L'heure de début spécifiée est postérieure à l'heure de fin. |
| 400 | InvalidScalingRuleDate.Format | The specified date is invalid. | La date spécifiée n'est pas valide. Le format valide est yyyy-MM-dd. |
| 400 | InvalidScalingRuleName.NotFound | The specified ScalingRuleName does not exist. | Le ScalingRuleName spécifié n'existe pas. |
| 400 | InvalidScalingRuleTime.Conflict | The specified scaling rule time is invalid. Another schedule has been set for the specified time range. Please set a different time. | L'heure spécifiée pour la stratégie élastique n'est pas valide. Une stratégie planifiée a déjà été configurée pour cette période. Sélectionnez une heure différente. |
| 400 | InvalidScalingRuleTime.Format | The specified time is invalid. | L'heure spécifiée n'est pas valide. Le format valide est HH:mm. |
| 400 | QuotaExceeded.ScalingRule | The maximum number of application scaling rules is exceeded. | Le nombre de configurations de stratégie élastique pour l'application a atteint la limite supérieure. |
| 400 | QuotaExceeded.ScalingRuleTime | The maximum number of scaling policy trigger time is exceeded. | Le nombre de déclenchements pour la stratégie élastique a atteint la limite supérieure. |
| 400 | NoComputeResourceQuota.App.Exceed | You can create %s instances for each application. Please submit a ticket to raise the quota. | Chaque application peut avoir un maximum de %s instances. Rejoignez le groupe DingTalk 32874633 pour consulter un expert technique du produit. |
| 400 | NoComputeResourceQuota.Exceed | Your compute resource is insufficient. Please contact us to raise the quota. | |
| 400 | NoComputeResourceQuota.User.Exceed | Your account is limited to create %s instances. Please submit a ticket to raise the quota. | Votre compte dispose d'un quota de %s instances. Rejoignez le groupe DingTalk 32874633 pour consulter un expert technique du produit. |
| 400 | System.Upgrading | The system is being upgraded. Please try again later. | Le système est en cours de mise à niveau. Réessayez plus tard. |
| 400 | OperationDenied.SDKNotSupported | Metrics is not supported in SDK | Le SDK ne prend pas en charge les règles de mise à l'échelle élastique basées sur des métriques. |
| 400 | MinReadyInstances.Not.Smaller.Replicas | The minimum number of available instances must be less than the number of application instances. | Le nombre minimum d'instances disponibles doit être inférieur au nombre total d'instances d'application. |
| 400 | MinReadyInstanceRatio.Invalid | The ratio of minimum available instances must be between 0 and 100. | Le ratio minimum d'instances survivantes doit être compris entre 0 et 100. |
Consultez Codes d'erreur pour la liste complète.
Notes de version
Consultez Notes de version pour la liste complète.