Boto3 игнорирует AWS_CONTAINER_CREDENTIALS_RELATIVE_URI - PullRequest
0 голосов
/ 19 июня 2020

Я участвую в задаче ECS и хочу использовать определенные службы AWS. Я назначил задаче соответствующую роль, и переменная среды AWS_CONTAINER_CREDENTIALS_RELATIVE_URI видна. Когда я запрашиваю его вручную и устанавливаю учетные данные в качестве переменных среды (id, key, token, region), я могу работать с AWS API.

Я предполагал, что boto3 может прозрачно обрабатывать аутентификацию? Но когда я делаю следующее

client = boto3.client('ecs')

, я получаю сообщение об ошибке, что требуется регион. И когда я добавляю регион через env, запрос не выполняется, потому что токен недействителен.

Что мне не хватает?

1 Ответ

1 голос
/ 19 июня 2020

Ладно, заработало. Вместо boto3.client('ecs') я должен сначала создать сеанс, а затем использовать его для получения клиента:

import boto3
session = boto3.session.Session()
print(session.get_credentials().get_frozen_credentials())
ecs_client = session.client("ecs")

Как будто скрипт будет работать в рамках задачи ECS.

...