Mi archivo docker-compose:
version: '2' services: scraper: build: ./Scraper/ logging: driver: "awslogs" options: awslogs-region: "eu-west-1" awslogs-group: "doctors-logs" awslogs-stream: "scrapers-stream" volumes: - ./Scraper/spiders:/spidersAgregué mis credenciales de AWS a mi mac usando el comando aws configure y las credenciales se almacenan correctamente en ~/.aws/credentials
Cuando ejecuto docker-compose up me sale el siguiente error:
ERROR: para el raspador No se puede iniciar el raspador de servicios: no se pudo inicializar el controlador de registro: NoCredentialProviders: no hay proveedores válidos en la cadena.
Obsoleto. Para mensajes detallados, consulte aws.Config.CredentialsChainVerboseErrors
ERROR: se encontraron errores al abrir el proyecto.
Creo que esto se debe a que necesito configurar las credenciales de AWS en Docker Daemon, pero no puedo entender cómo se hace esto en macOs Sierra.
Me di cuenta de. Al implementar su propia instancia EC2 (sin usar soluciones automatizadas como Beanstalk), debe asignar un rol a su instancia EC2 para que pueda comunicarse con otros servicios de AWS.
La política es la que proporcionan los documentos de Docker en https://docs.docker.com/engine/admin/logging/awslogs/
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Effect": "Allow", "Resource": "*" } ] }entonces necesita adjuntar esta política a un rol
el rol es el primero llamado "Amazon EC2" que dice "Permite que las instancias EC2 llamen a los servicios de AWS en su nombre".
Como está limitando su acceso solo a CloudWatch, está listo para comenzar. Luego, en su lista de EC2, adjunte el rol a su instancia usando "Adjuntar/Reemplazar rol de IAM":
¡Usted debe ser bueno para ir!