Gonzalez signed with the Giants for $3 million on Wednesday, Ben Badler of Baseball America reports.