'Given a bucket and key of a valid Lambda-zip, a function name and a handler, register that Lambda function.'

def create_lambda_function(self, bucket, s3_key, function_name, handler, description='Zappa    Deployment', timeout=30, memory_size=512, publish=True, vpc_config=None, dead_letter_config=None, runtime='python2.7', aws_environment_variables=None, aws_kms_key_arn=None):

    if (not vpc_config):
        vpc_config = {}
    if (not dead_letter_config):
        dead_letter_config = {}
    if (not self.credentials_arn):
        self.get_credentials_arn()
    if (not aws_environment_variables):
        aws_environment_variables = {}
    if (not aws_kms_key_arn):
        aws_kms_key_arn = ''
    response = self.lambda_client.create_function(FunctionName=function_name, Runtime=runtime, Role=self.credentials_arn, Handler=handler, Code={'S3Bucket': bucket, 'S3Key': s3_key}, Description=description, Timeout=timeout, MemorySize=memory_size, Publish=publish, VpcConfig=vpc_config, DeadLetterConfig=dead_letter_config, Environment={'Variables': aws_environment_variables}, KMSKeyArn=aws_kms_key_arn)
    return response['FunctionArn']
