Переводчик не авторизован на роль
Когда я ввожу пример кода отсюда https://docs.aws.amazon.com/de_de/translate/latest/dg/async.html
$ aws translate start-text-translation-job --job-name batch-test \
--source-language-code en \
--target-language-codes fr \
--input-data-config S3Uri=s3://input-bucket-name/folder,ContentType=text/plain \
--output-data-config S3Uri=s3://output-bucket-name/ \
--data-access-role-arn arn:aws:iam::012345678901:role/service-role/AmazonTranslateInputOutputAccess
Тогда выдается следующая ошибка:
Произошла ошибка (InvalidRequestException) при вызове операции StartTextTranslationJob: Translate не авторизован для принятия роли: arn:aws:iam::012345678901:role/service-role/AmazonTranslateInputOutputAccess. Обновите политику доверия роли.
Роль AmazonTranslateInputOutputAccess уже создана, но в любом случае это должно повлиять на возникшую ошибку.
2 ответа
Можно исправить, добавив политику доверия:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": "translate.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
Добавление этого решит проблему.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowTranslation",
"Effect": "Allow",
"Resource": "*",
"Action": "translate:*"
}
]
}
Если вы хотите автоматически определять исходный язык и переводить текст, вам также необходимо добавить действие понимания в свою роль Iam.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowTranslation",
"Effect": "Allow",
"Resource": "*",
"Action": [ "translate:*", "comprehend:*" ]
}
]
}