Cuando el usuario selecciona un servicio de Amazon (s3, CloudFront, etc.) de un menú desplegable, me gustaría mostrar solo las regiones/ubicaciones disponibles para el servicio seleccionado.
¿Cómo puedo determinar esta información? ¿Hay alguna forma de consultar la tabla de regiones de la infraestructura global de Amazon mediante RestAPI o dotNet?
AWS Systems Manager puede ayudar con esto. Tiene SDK para varios idiomas, así como una API de descanso.
Por ejemplo, para obtener todas las regiones de AWS Athena, puede utilizar GetParametersByPath con la ruta /aws/service/global-infrastructure/services/athena/regions
Después de la respuesta de @adi-dembak, estos son mis pasos para lograr esta tarea en .net
Agregue la siguiente política administrada de SSM en aws y asigne la política al usuario.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "rule1", "Effect": "Allow", "Action": [ "ssm:PutParameter", "ssm:GetParametersByPath" ], "Resource": "*" } ]}Instalar AWSSDK.SimpleSystemsManagement
string accessKey = "123##"; string secretKey = "321##"; HashSet<string> hash = new HashSet<string>(); AmazonSimpleSystemsManagementClient amazonSimpleSystemsManagementClient = new AmazonSimpleSystemsManagementClient(accessKey, secretKey, Amazon.RegionEndpoint.USEast1); GetParametersByPathRequest getParametersByPathRequest = new GetParametersByPathRequest(); getParametersByPathRequest.Path = "/aws/service/global-infrastructure/services/s3/regions/"; getParametersByPathRequest.Recursive = true; GetParametersByPathResponse getParametersByPathResponse; do { getParametersByPathResponse = await amazonSimpleSystemsManagementClient.GetParametersByPathAsync(getParametersByPathRequest); foreach (Parameter item in getParametersByPathResponse.Parameters) { hash.Add(item.Value); } getParametersByPathRequest.NextToken = getParametersByPathResponse.NextToken; } while ((getParametersByPathResponse.NextToken != null) && !string.IsNullOrEmpty(getParametersByPathResponse.NextToken.ToString())); //Print HashSet foreach (string item in hash) { Console.WriteLine(item); }GetParametersByPath es una operación paginada . Después de cada llamada, debe recuperar NextToken del objeto de resultado, y si no es nulo ni está vacío, debe realizar otra llamada y agregarlo a la solicitud.