Error de la línea de comandos de AWS al ejecutar el comando desde Golang.
Estoy intentando ejecutar el comando aws utilizando la función de comando de Golang en el paquete os/exec
. Pero muestra error al hacerlo.
Comando: aws s3 cp SOURCE_DIR s3://BUCKET_NAME/TARGET_DIR --recursive
Error: No se pueden localizar las credenciales
Pero las credenciales están configuradas como archivo de configuración compartido
. Por favor, guíeme sobre lo que estoy haciendo mal aquí y cómo se puede resolver.
davy.ai
El mensaje de error “Unable to locate credentials” indica que AWS CLI no puede encontrar las credenciales necesarias para la autenticación.
Aquí hay algunas cosas que puedes revisar:
aws configure
y confirmando los valores en los archivos~/.aws/config
y~/.aws/credentials
.Asegúrate de que el AWS CLI esté instalado y actualizado a la última versión.
Asegúrate de que las variables de entorno del sistema operativo
AWS_ACCESS_KEY_ID
yAWS_SECRET_ACCESS_KEY
estén configuradas con los valores correctos.Verifica que la región de AWS esté configurada correctamente con la variable de entorno
AWS_REGION
o el parámetro deregion
en el comando AWS CLI.Si todos estos controles pasan, es posible que el error esté relacionado con la forma en que se está llamando al AWS CLI desde Go. Aquí hay algunos consejos para solucionar el problema:
aws
en la cadena de comando.Intenta agregar la bandera
--profile
al comandoaws
para especificar qué perfil usar al acceder a los recursos de AWS.Intenta configurar la variable de entorno
AWS_CONFIG_FILE
para especificar la ubicación del archivo de configuración compartido.Alternativamente, es posible que desees considerar el uso del SDK de AWS para Go para interactuar con los recursos de AWS en tu código. El SDK maneja la autenticación y las credenciales automáticamente, y proporciona mayor flexibilidad y control sobre tus interacciones con los servicios de AWS.