Boto3 kinesis video stream: ошибка при вызове операции GetMedia

Под документами boto3: https://boto3.readthedocs.io/en/latest/reference/services/kinesis-video-media.html

он говорит, что мне нужно запустить GetDataEndpoint Сначала API, чтобы получить конечную точку перед запуском GetMedia но там не сказано, как ввести эту конечную точку в?

Итак, я попытался запустить:

import boto3

kinesis_media = boto3.client('kinesis-video-media' region_name='region')

stream = kinesis_media.get_media(StreamARN='my-arn',
         StartSelector={'StartSelectorType': 'EARLIEST'}) # this is not the endpoint

и это возвращает:

ClientError: An error occurred (403) when calling the GetMedia operation: <AccessDeniedException>
  <Message>Unable to determine service/operation name to be authorized</Message>
</AccessDeniedException>

Я предполагаю, что причина не была указана, но клиенты типа kinesis-video-media не имеют get_data_endpoint метод, который требуется для получения URL-адреса конечной точки?

1 ответ

Решение

Во-первых, используйте kinesisvideo клиент для получения конечной точки:

import boto3

kinesis_client = boto3.client('kinesisvideo',region_name='us-west-2')

response = kinesis_client.get_data_endpoint(StreamARN='...ARN...',APIName='GET_MEDIA')

response переменная содержит:

{'ResponseMetadata': {'RetryAttempts': 0, 'HTTPStatusCode': 200, 'RequestId': '...', 'HTTPHeaders': {'x-amzn-requestid': '...', 'date': 'Tue, 10 Apr 2018 08:22:59 GMT', 'content-length': '74', 'content-type': 'application/json'}}, u'DataEndpoint': u'https://s-4010cf70.kinesisvideo.us-west-2.amazonaws.com'}

Затем позвоните kinesis-video-media клиент с заданной конечной точкой:

video_client = boto3.client('kinesis-video-media',endpoint_url='https://s-4010cf70.kinesisvideo.us-west-2.amazonaws.com',region_name='us-west-2')

stream = video_client.get_media(StreamARN='arn:aws:kinesisvideo:us-west-2:...',StartSelector={'StartSelectorType': 'NOW'})

stream переменная содержит:

{u'ContentType': 'video/webm', u'Payload': <botocore.response.StreamingBody object at 0x7f1fab294850>, 'ResponseMetadata': {'RetryAttempts': 0, 'HTTPStatusCode': 200, 'RequestId': '...', 'HTTPHeaders': {'x-amzn-requestid': '...', 'transfer-encoding': 'chunked', 'content-type': 'video/webm', 'date': 'Tue, 10 Apr 2018 08:27:19 GMT'}}}
Другие вопросы по тегам