Контейнер задач ECS Fargate отсутствует AWS_CONTAINER_CREDENTIALS_RELATIVE_URI - PullRequest
0 голосов
/ 22 апреля 2020

Мое определение задачи связано с ролью IAM, которая безупречно работает в официальной AWS среде тестирования . Однако в производственной среде я получаю эту ошибку:

CredentialsError: Missing credentials in config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1

Я запускаю настройку Fargate, используя несколько предопределенных официальных шаблонов AWS, и определение моей задачи выглядит следующим образом (формат yml) ):

TaskDefinition: Type: AWS::ECS::TaskDefinition Properties: Family: !Ref 'ServiceName' Cpu: !Ref 'ContainerCpu' Memory: !Ref 'ContainerMemory' NetworkMode: awsvpc RequiresCompatibilities: - FARGATE ExecutionRoleArn: 'arn:aws:iam::835985753999:role/ecsTaskExecutionRole' ContainerDefinitions: - Name: !Ref 'ServiceName' Cpu: !Ref 'ContainerCpu' Memory: !Ref 'ContainerMemory' Image: !Ref 'ImageUrl' PortMappings: - ContainerPort: !Ref 'ContainerPort' LogConfiguration: LogDriver: 'awslogs' Options: awslogs-group: 'sharingmonsterlog' awslogs-region: 'eu-west-3' awslogs-stream-prefix: 'test'

Я добавил несколько nodejs строк отладки, где я консолью печатаю переменные среды в рабочей среде, которые выглядят так:

{ PATH: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', HOSTNAME: 'ip-10-0-0-209.eu-west-3.compute.internal', AWS_DEFAULT_REGION: 'eu-west-3', AWS_EXECUTION_ENV: 'AWS_ECS_FARGATE', AWS_REGION: 'eu-west-3', ECS_CONTAINER_METADATA_URI: 'http://169.254.170.2/v3/8e0739ad-dd47-4672-8eed-d63debdb2fea', VERSION: 'v9.11.1', NPM_VERSION: '5', YARN_VERSION: 'latest', CONFIG_FLAGS: '--fully-static --without-npm', DEL_PKGS: 'libstdc++', RM_DIRS: '/usr/include', HOME: '/root' }

Агент ECS должен заполнить AWS_CONTAINER_CREDENTIALS_RELATIVE_URI, но, как вы видите, он отсутствует.

Есть идеи, пожалуйста? Я буквально отчаялся, пытался решить эту проблему в течение нескольких недель.

Спасибо.

1 Ответ

1 голос
/ 24 апреля 2020

Я думаю, вам не хватает свойства "TaskRoleArn: String" . У вас есть роль выполнения задачи, которая используется для извлечения изображений и журналов pu sh, в то время как Task Role выполняет вызовы API для других служб aws и заполняет AWS_CONTAINER_CREDENTIALS_RELATIVE_URI.

...