В AWS boto3 API-интерфейс route53 для python: update_health_check завершился неудачно, параметр 'Disabled' не найден - PullRequest
1 голос
/ 26 марта 2019

Я столкнулся с этой проблемой сегодня, когда я пытаюсь создать лямбда-функцию aws, которая может отключить проверку работоспособности route53 после успешного восстановления после сбоя.

Функция в основном ожидает аварийного переключения при сбое в route53 и выполняет update_health_check(HealthCheckId=healthcheck_id, Disabled=True)API был найден в модуле route53 AWS boto3 из route53 API для boto3 .Как вы можете видеть, параметр «Отключено» четко определен в документе.

Функция отлично работала локально.Я также запускаю boto3 == 1.9.66 локально.

Однако, когда я загружаю свою лямбда-функцию в AWS.Я столкнулся с вопросами ниже.Похоже, что параметр «Disabled» как-то не определен в boto3 в самом AWS?

File "/var/runtime/botocore/client.py", line 314, in _api_call
return self._make_api_call(operation_name, kwargs)
File "/var/runtime/botocore/client.py", line 586, in _make_api_call
api_params, operation_model, context=request_context)
File "/var/runtime/botocore/client.py", line 621, in _convert_to_request_dict
api_params, operation_model)
File "/var/runtime/botocore/validate.py", line 291, in serialize_to_request
raise ParamValidationError(report=report.generate_report())
botocore.exceptions.ParamValidationError: Parameter validation failed:
Unknown parameter in input: "Disabled", must be one of: HealthCheckId, HealthCheckVersion, IPAddress, Port, ResourcePath, FullyQualifiedDomainName, SearchString, FailureThreshold, Inverted, HealthThreshold, ChildHealthChecks, EnableSNI, Regions, AlarmIdentifier, InsufficientDataHealthStatus, ResetElements

Одна из работ, о которой я могу подумать, - это загрузить свой локальный модуль boto3 в AWS.Есть ли лучшее решение?

1 Ответ

1 голос
/ 27 марта 2019

Вам необходимо либо связать boto3 с вашим кодом, либо дождаться обновления среды выполнения Lambda *1002*.

Объединение boto3 и botocore с вашим кодом является лучшей практикой :

Контроль зависимостей в пакете развертывания вашей функции. Среда исполнения AWS Lambda содержит ряд таких библиотек как AWS SDK для сред выполнения Node.js и Python (полный список может быть находится здесь: среда выполнения лямбда и доступные библиотеки). к включить последний набор функций и обновлений безопасности, Lambda будет периодически обновлять эти библиотеки. Эти обновления могут ввести тонкие изменения в поведении вашей лямбда-функции. иметь полный контроль зависимостей, которые использует ваша функция, мы рекомендуем упаковывать все ваши зависимости с вашим пакетом развертывания.

Если вы используете Лямбда-слои для зависимости от boto3, вы можете легко обновить несколько функций, обновив слой после тестирования с новой версией boto3.

* * * * * * * * * * * * * * * * * * * * * * * * * * * *.

...