Мое определение задачи связано с ролью 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, но, как вы видите, он отсутствует.
Есть идеи, пожалуйста? Я буквально отчаялся, пытался решить эту проблему в течение нескольких недель.
Спасибо.