AttributeError: у объекта 'ElasticLoadBalancingv2' нет атрибута 'set_desired_capacity' - PullRequest
1 голос
/ 03 октября 2019
import boto3
import json
import time
client = boto3.client('elbv2')
desired_capacity=8
client.set_desired_capacity(
    AutoScalingGroupName='Test-Web',
    DesiredCapacity=desired_capacity,
    HonorCooldown=True)

и boto3 == 1.7.1

Когда я запускаю этот скрипт, я получаю

  File "deploy_staging_web.py", line 6, in <module>
    client.set_desired_capacity(
  File "/usr/local/lib/python2.7/dist-packages/botocore/client.py", line 601, in __getattr__
    self.__class__.__name__, item)
AttributeError: 'ElasticLoadBalancingv2' object has no attribute 'set_desired_capacity'

Я намеревался использовать python для масштабирования экземпляров aws вверх и вниз.

Я сейчас не нахожусь ни в одной виртуальной среде.

почему его бросают и как мне с этим справиться? Здесь даже упоминается официальная документация: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/autoscaling.html#AutoScaling.Client.set_desired_capacity

enter image description here

Ответы [ 2 ]

0 голосов
/ 12 ноября 2019

Проблема оказывается глупой.
boto3 перемещается по различным функциям.

set_desired_capacity больше не является частью 'elbv2'.
Это часть 'автоматического масштабирования'https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/autoscaling.html#AutoScaling.Client.set_desired_capacity

Хотя «description_target_health» все еще является частью прежнего https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/elbv2.html?highlight=elb#ElasticLoadBalancingv2.Client.describe_target_health.

Обновление

client = boto3.client ('elbv2')

до

client = boto3.client ('autoscaling')

решил мою проблему.

0 голосов
/ 05 октября 2019

Официальный документ предназначен для последней версии, а не для вашей слишком старой версии. Обновите пакет boto3 до последней версии. Самая последняя версия 1.9.243.

...