code: @Override
      public final void handleRequest(InputStream input, OutputStream output, Context context) throws IOException {
          byte[] inputBytes = IOUtils.toByteArray(input);
          for (AlexaSkill skill : skills) {
              SkillResponse response = skill.execute(new BaseSkillRequest(inputBytes), context);
              if (response != null) {
                  if (response.isPresent()) {
                      response.writeTo(output);
                  }
                  return;
              }
          }
          throw new AskSdkException("Could not find a skill to handle the incoming request");
      }
docs: This method is the primary entry point when executing your Lambda function. The configured
  {@code SkillStreamHandler} determines the type of request and passes the request to
  the configured {@code Skill}.
  
  <p>
  Any errors that occur in either the {@code Skill} or the {@code SkillStreamHandler}
  are converted into a {@code RuntimeException}, causing the Lambda call to fail. Details on
  the failure are then available in the Lambda console logs within CloudWatch. {@inheritDoc}