Soy nuevo en AWS SDK y estoy tratando de seguir la documentación de AWS, pero da poco o nada sobre lo que necesito configurar exactamente.
Los documentos oficiales me dicen que agregue esto a appsettings.json:
{ "AWS": { "Profile": "local-test-profile", "Region": "us-west-2" } }Y luego crea el cliente:
var options = Configuration.GetAWSOptions(); IAmazonS3 client = options.CreateServiceClient<IAmazonS3>();Esto hace que se lance una excepción diciendo que no puede encontrar las credenciales. ¿Dónde pongo el ID y la clave de Api? ¿Qué es este perfil?
Por favor, tenga en cuenta que no tengo preferencias sobre cómo configurar esto. Solo intento seguir la documentación oficial de .NET Core y su único ejemplo no funciona. Los documentos parecen implicar que debo tener conocimiento previo de muchos de sus términos y configuraciones o que estoy migrando una aplicación existente y ya tengo todo configurado.
¿Puede alguien señalarme lo que falta en este ejemplo solo para que la API se conecte correctamente a AWS?
Tal vez sea demasiado tarde para usted, pero si está utilizando Docker o tiene algún otro entorno/configuración en el que no es posible/fácil de usar los perfiles de AWS, aún puede usar las variables de entorno. P.ej:
var awsOptions = Configuration.GetAWSOptions(); awsOptions.Credentials = new EnvironmentVariablesAWSCredentials(); services.AddDefaultAWSOptions(awsOptions); services.AddAWSService<IAmazonS3>();Luego configure AWS_ACCESS_KEY_ID & AWS_SECRET_ACCESS_KEY & AWS_REGION en su entorno.
Parece que Amazon ha hecho que esto sea más difícil de encontrar en los documentos de lo que debería ser.
Ejecutar en AWS de verdad está bien porque debería usar un rol, pero si usa Docker para desarrolladores, configurar un perfil en el contenedor es un PITA.
El archivo json es $"appsettings.{env.EnvironmentName}.json", por lo que debe llamarlo appsettings.Development.json y configurar la variable de entorno.
¿Definió su perfil de "perfil de prueba local" en el archivo de credenciales de AWS?
Debe estar en C:\Users\{NOMBRE DE USUARIO}\.aws\credentials
[local-test-profile] aws_access_key_id = your_access_key_id aws_secret_access_key = your_secret_access_keySi no lo desea en la ubicación predeterminada, puede configurar el archivo de configuración json 'ProfilesLocation'.
Esto ayuda a evitar obtener credenciales del entorno utilizando la configuración de la aplicación para fines de desarrollo.
var awsOption = Configuration.GetAWSOptions(); awsOption.Credentials = new BasicAWSCredentials(Configuration["AWS:AccessKey"], Configuration["AWS:SecretKey"]); services.AddDefaultAWSOptions(awsOption);