Мой шаблон CloudFormation (AWS::EC2::Instance
) вызывает скрипт Python из раздела пользовательских данных. Этот скрипт пытается обновить открытый ключ конечной точки разработки клея. Вот соответствующая часть кода:
glue_client = boto3.client('glue',
endpoint_url=endpoint or GLUE_CONF.get('endpoint_url'),
region_name=GLUE_CONF.get('region_name'))
glue_client.update_dev_endpoint(EndpointName=endpoint_name, PublicKey=public_key)
Первая строка работает нормально, если запускать вручную после завершения создания экземпляра EC2, но не удается со следующей ошибкой , если вызывается как часть сценария пользовательских данных :
Traceback (most recent call last):
File "/home/ec2-user/setup_notebook_server.py", line 448, in <module>
key_pw=args.keypw, endpoint=args.endpoint)
File "/home/ec2-user/setup_notebook_server.py", line 326, in automated_main
generate_keypair_and_update_dev_endpoint(endpoint=endpoint)
File "/home/ec2-user/setup_notebook_server.py", line 268, in generate_keypair_and_update_dev_endpoint
update_dev_endpoint_and_wait(get_dev_endpoint_name(), public_key, endpoint)
File "/home/ec2-user/setup_notebook_server.py", line 213, in update_dev_endpoint_and_wait
region_name=GLUE_CONF.get('region_name'))
File "/usr/local/lib/python2.7/site-packages/boto3/__init__.py", line 91, in client
return _get_default_session().client(*args, **kwargs)
File "/usr/local/lib/python2.7/site-packages/boto3/session.py", line 263, in client
aws_session_token=aws_session_token, config=config)
File "/usr/local/lib/python2.7/site-packages/botocore/session.py", line 838, in create_client
client_config=config, api_version=api_version)
File "/usr/local/lib/python2.7/site-packages/botocore/client.py", line 80, in create_client
cls = self._create_client_class(service_name, service_model)
File "/usr/local/lib/python2.7/site-packages/botocore/client.py", line 106, in _create_client_class
service_id = service_model.service_id.hyphenize()
File "/usr/local/lib/python2.7/site-packages/botocore/utils.py", line 730, in __get__
computed_value = self._fget(obj)
File "/usr/local/lib/python2.7/site-packages/botocore/model.py", line 307, in service_id
service_name=self._service_name
botocore.exceptions.MissingServiceIdError: The model being used for the service glue is missing the serviceId metadata property, which is required.
Что означает это исключение и как его исправить?