* @param serviceName The name of the service to talk to.
* @param regionName The name of the region to talk to.
*/
public static Signer getSigner(String serviceName, String regionName) {
InternalConfig config = InternalConfig.Factory.getInternalConfig();
SignerConfig signerConfig = config.getSignerConfig(serviceName, regionName);
String signerType = signerConfig.getSignerType();
Class<? extends Signer> signerClass = SIGNERS.get(signerType);
if (signerClass == null) {
throw new IllegalStateException(