[{"data":1,"prerenderedAt":516},["ShallowReactive",2],{"news-item-\u002Fvi\u002Fnews\u002Fgcp-webservice-laravel-1":3},{"id":4,"title":5,"body":6,"category":503,"created by":504,"date":505,"description":506,"extension":507,"meta":508,"navigation":509,"path":510,"sections":511,"seo":512,"stem":513,"thumbnail":514,"__hash__":515},"content_vi\u002Fvi\u002Fnews\u002Fgcp-webservice-laravel-1.md","ỨNG DỤNG LARAVEL TRONG GOOGLE CLOUD PLATFORM (GCP) - PHẦN 1",{"type":7,"value":8,"toc":495},"minimark",[9,14,18,22,25,29,38,49,59,65,69,75,79,85,88,117,121,133,135,182,189,194,199,212,219,224,229,242,255,259,281,291,295,307,321,326,336,347,360,364,372,375,379,402,406,412,416,419,422,425,432,436,447,451,461,465,468,472,475,479,482,486,489],[10,11,13],"h2",{"id":12},"i-gcp-là-gì","I. GCP là gì?",[15,16,17],"p",{},"Google Cloud Platform (GCP), được cung cấp bởi Google, là một bộ dịch vụ điện toán đám mây chạy trên cùng một cơ sở hạ tầng mà Google sử dụng nội bộ cho các sản phẩm của người dùng cuối, như Google Tìm kiếm, Gmail và YouTube. Bên cạnh một bộ công cụ quản lý, nó cung cấp một loạt các dịch vụ đám mây mô-đun bao gồm điện toán, lưu trữ dữ liệu, phân tích dữ liệu và học máy. Đăng ký yêu cầu một thẻ tín dụng hoặc chi tiết tài khoản ngân hàng. Google Cloud Platform cung cấp cơ sở hạ tầng dưới dạng dịch vụ, nền tảng là dịch vụ và môi trường máy tính không có máy chủ.",[10,19,21],{"id":20},"ii-laravel-framework","II. Laravel Framework.",[15,23,24],{},"Laravel là một framework web PHP mã nguồn mở, miễn phí, được tạo bởi Taylor Otwell và dành cho việc phát triển các ứng dụng web theo mô hình kiến trúc model–view–controller (MVC) của mô hình và dựa trên Symfony. Một số tính năng của Laravel là một hệ thống đóng gói mô-đun với trình quản lý phụ thuộc chuyên dụng, các cách khác nhau để truy cập cơ sở dữ liệu quan hệ, các tiện ích hỗ trợ triển khai và bảo trì ứng dụng và định hướng về đường cú pháp. Mã nguồn của Laravel được lưu trữ trên GitHub và được cấp phép theo các điều khoản của bản quyền MIT.",[10,26,28],{"id":27},"iii-cài-đặt-laravel-trên-gcp","III. Cài đặt Laravel trên GCP",[15,30,31,32],{},"Trước khi bạn chạy Laravel trên GAE, bạn cần tạo một dự án GCP mới. Đăng nhập vào bảng điều khiển GCP trong liên kết này  ",[33,34,35],"a",{"href":35,"rel":36},"https:\u002F\u002Fconsole.cloud.google.com\u002F",[37],"nofollow",[15,39,40,44,45,48],{},[41,42,43],"strong",{},"Bước 1",": Sau khi bạn đăng nhập vào GCP, tạo dự án trong Bảng điều khiển nền tảng đám mây của Google. Click vào “",[41,46,47],{},"CREATE PROJECT","”:  ",[50,51],"img",{"className":52,"alt":56,"src":57,"style":58},[53,54,55],"block","mx-auto","mb-4","","https:\u002F\u002Fhomepage-media.s3.ap-southeast-1.amazonaws.com\u002Fwp-content\u002Fuploads\u002F2020\u002F05\u002F25164017\u002FScreen-Shot-0032-03-17-at-15.44.33.png","width: 100%;",[15,60,61,64],{},[41,62,63],{},"Bước 2",": Tạo dự án GCP mới.",[50,66],{"className":67,"alt":56,"src":68,"style":58},[53,54,55],"https:\u002F\u002Fhomepage-media.s3.ap-southeast-1.amazonaws.com\u002Fwp-content\u002Fuploads\u002F2020\u002F05\u002F25164143\u002FScreen-Shot-0032-03-17-at-15.02.00.png",[15,70,71,74],{},[41,72,73],{},"Bước 3",": Bảng điều khiển trong dự án mới được tạo",[50,76],{"className":77,"alt":56,"src":78,"style":58},[53,54,55],"https:\u002F\u002Fhomepage-media.s3.ap-southeast-1.amazonaws.com\u002Fwp-content\u002Fuploads\u002F2020\u002F05\u002F25164617\u002FScreen-Shot-0032-03-17-at-15.07.03.png",[15,80,81,84],{},[41,82,83],{},"Bước 4",": Tạo một dự án mới với Laravel framework",[15,86,87],{},"Mở terminal của bạn và chạy dòng lệnh:",[89,90,91,99,105],"ul",{},[92,93,94,95],"li",{},"Tạo một dự án mới (gcp-webservice) bởi composer: ",[96,97,98],"code",{},"composer create-project --prefer-dist laravel\u002Flaravel gcp-webservices",[92,100,101,102],{},"Chuyển đến thư mục nguồn của Laravel:",[96,103,104],{},"cd gcp-webservices",[92,106,107,108,111,112],{},"Khởi động máy chủ localhost:",[96,109,110],{},"php artisan serve"," Trong trình duyệt của bạn, hãy truy cập liên kết URL: ",[33,113,116],{"href":114,"rel":115},"http:\u002F\u002Flocalhost:8000\u002F",[37],"http:\u002F\u002Flocalhost: 8000\u002F",[50,118],{"className":119,"alt":56,"src":120,"style":58},[53,54,55],"https:\u002F\u002Fhomepage-media.s3.ap-southeast-1.amazonaws.com\u002Fwp-content\u002Fuploads\u002F2020\u002F05\u002F25164641\u002FScreen-Shot-0032-03-17-at-15.20.17.png",[15,122,123,126,127,132],{},[41,124,125],{},"Bước 5",": Cài đặt và khởi chạy ",[33,128,131],{"href":129,"rel":130},"https:\u002F\u002Fdl.google.com\u002Fdl\u002Fcloudsdk\u002Fchannels\u002Frapid\u002Fdownloads\u002Fgoogle-cloud-sdk-283.0.0-darwin-x86_64.tar.gz",[37],"Google Cloud SDK"," (cho MAC OS 64bit)",[15,134,87],{},[89,136,137,143,149,167,173,179],{},[92,138,139,140],{},"cd đến thư mục đã tải xuống: ",[96,141,142],{},"cd google-cloud-sdk",[92,144,145,146],{},"Cài đặt Google Cloud SDK: ",[96,147,148],{},".\u002Finstall.sh",[92,150,151,152,155,156,159,160,163,164],{},"Đăng nhập vào GCP:",[96,153,154],{},"gcloud auth login",". Nếu dòng lệnh ",[96,157,158],{},"gcloud"," không tìm thấy. Vui lòng thêm 2 dòng lệnh dưới đây: ",[96,161,162],{},"source \"path\u002Fto\u002Fgoogle-cloud-sdk\u002Fcompletion.bash.inc\""," ",[96,165,166],{},"source \"path\u002Fto\u002Fgoogle-cloud-sdk\u002Fpath.bash.inc\"",[92,168,169,170],{},"Hiển thị danh sách dự án trong GCP:",[96,171,172],{},"gcloud projects list",[92,174,175,176],{},"Kết nối với dự án gcp-webservice:",[96,177,178],{},"gcloud config set project gcp-webservices",[92,180,181],{},"Triển khai:",[15,183,184,185,188],{},"1. Tạo file ",[41,186,187],{},"app.yaml"," với nội dung sau:",[15,190,191],{},[96,192,193],{},"runtime: php72 env_variables: ## Put production environment variables here. APP_KEY: YOUR_APP_KEY APP_STORAGE: \u002Ftmp VIEW_COMPILED_PATH: \u002Ftmp SESSION_DRIVER: cookie",[15,195,196,197],{},"2. Chuyển đến thư mục nguồn của Laravel: ",[96,198,104],{},[15,200,201,202,205,206,208,209],{},"3. Thay thế ",[41,203,204],{},"YOUR_APP_KEY"," trong ",[41,207,187],{}," bằng key bạn nhận được bằng lệnh sau: ",[96,210,211],{},"php artisan key:generate --show",[15,213,214,215,218],{},"4. Sửa đổi",[96,216,217],{},"bootstrap\u002Fapp.php"," bằng cách thêm đoạn code sau vào trước câu lệnh return. Điều này sẽ cho phép bạn đặt đường dẫn lưu trữ thành \u002Ftmp để lưu vào bộ đệm trong môi trường production.",[15,220,221],{},[96,222,223],{},"# [START] Add the following block to `bootstrap\u002Fapp.php` \u002F* |-------------------------------------------------------------------------- | Set Storage Path |-------------------------------------------------------------------------- | | This script allows you to override the default storage location used by | the  application.  You may set the APP_STORAGE environment variable | in your .env file,  if not set the default location will be used | *\u002F $app->useStoragePath(env('APP_STORAGE', base_path() . '\u002Fstorage')); # [END]",[15,225,226,227],{},"5. Chuyển đến thư mục nguồn của Laravel: ",[96,228,104],{},[15,230,231,232,235,236,163,239],{},"6. Loại bỏ phụ thuộc bằng cách chạy composer ",[96,233,234],{},"beyondcode\u002Flaravel-dump-server",". Đây là một sửa chữa cho một lỗi xảy ra do bộ nhớ đệm của Laravel trong",[96,237,238],{},"bootstrap\u002Fcache\u002Fservices.php",[96,240,241],{},"composer remove --dev beyondcode\u002Flaravel-dump-server",[15,243,244,245,248,249,254],{},"7. Kích hoạt ",[41,246,247],{},"Cloud Build API"," ",[33,250,253],{"href":251,"rel":252},"https:\u002F\u002Fconsole.developers.google.com\u002Fapis\u002Fapi\u002Fcloudbuild.googleapis.com\u002Foverview?project=gcp-webservices",[37],"tại đây",".",[50,256],{"className":257,"alt":56,"src":258,"style":58},[53,54,55],"https:\u002F\u002Fhomepage-media.s3.ap-southeast-1.amazonaws.com\u002Fwp-content\u002Fuploads\u002F2020\u002F05\u002F25164734\u002Fenable_cloud_build.png",[15,260,261,262,265,266,269,270,274,275,277,278,254],{},"8. Chạy lệnh sau để triển khai ứng dụng của bạn:",[96,263,264],{},"gcloud app deploy --version develop"," (“develop” là phiên bản đầu tiên để triển khai). ",[41,267,268],{},"Nhớ"," xóa file  ",[271,272,273],"em",{},"composer.lock"," ở lần triển khai đầu tiên. Sau đó, thêm ",[271,276,273],{}," vào file ",[271,279,280],{},".gcloudignore",[15,282,283,284,287,288],{},"9. Truy cập ",[96,285,286],{},"http:\u002F\u002FYOUR\\_PROJECT\\_ID.appspot.com"," để xem trang welcome của Laravel. Thay thế YOUR_PROJECT_ID bằng ID của dự án GCP của bạn, ví dụ ",[96,289,290],{},"https:\u002F\u002Fyour-gcp-service.appspot.com\u002F",[10,292,294],{"id":293},"iv-google-vision-api","IV. Google Vision API",[15,296,297,299,300,303,304],{},[41,298,43],{},": Cài đặt ",[41,301,302],{},"Google Vision API"," theo dòng lệnh: ",[96,305,306],{},"composer require wapnen\u002Fgoogle-cloud-vision-php",[15,308,309,311,312,315,316],{},[41,310,63],{},": Tạo ",[41,313,314],{},"service account key"," bằng cách sử dụng hướng dẫn này ",[33,317,320],{"href":318,"rel":319},"https:\u002F\u002Fcloud.google.com\u002Fvision\u002Fdocs\u002Fbefore-you-begin",[37],"https:\u002F\u002Fcloud.google.com\u002Fvision\u002Fdocs\u002Fb Before-you-begin",[50,322],{"className":323,"alt":56,"src":324,"style":325},[53,54,55],"https:\u002F\u002Fhomepage-media.s3.ap-southeast-1.amazonaws.com\u002Fwp-content\u002Fuploads\u002F2020\u002F05\u002F25165223\u002Fcreate_service_account_key.png","width: 50%;",[15,327,328,329,332,333,254],{},"Từ danh sách ",[41,330,331],{},"Service account",", chọn ",[41,334,335],{},"New service account",[15,337,338,339,342,343,346],{},"Trong trường ",[41,340,341],{},"Service account name",", nhập tên (trong ví dụ này là “",[41,344,345],{},"test","“)",[15,348,349,350,353,354,248,357],{},"Sau đó, bạn nhấp vào “",[41,351,352],{},"Create","” để tải xuống  1 file .json. ",[41,355,356],{},"Giữ",[41,358,359],{},"file này bảo mật tốt nhất có thể, nếu một người khác có nó, họ có thể sử dụng nó cho các dịch vụ riêng tư của họ, mà bạn sẽ trả tiền cho việc đó.",[10,361,363],{"id":362},"v-triển-khai-google-vision-api-để-nhận-dạng-văn-bản-từ-hình-ảnh","V. Triển khai Google Vision API để nhận dạng văn bản từ hình ảnh.",[15,365,366,367],{},"Bạn có thể tham khảo trang tài liệu Vision chính tại ",[33,368,371],{"href":369,"rel":370},"https:\u002F\u002Fcloud.google.com\u002Fvision\u002Fdocs\u002Focr#vision_text_detection-php",[37],"google-vision-php",[15,373,374],{},"Việc thực hiện rất dễ dàng với một số dòng code",[50,376],{"className":377,"alt":56,"src":378,"style":58},[53,54,55],"https:\u002F\u002Fhomepage-media.s3.ap-southeast-1.amazonaws.com\u002Fwp-content\u002Fuploads\u002F2020\u002F05\u002F25171955\u002Fvision_php.png",[15,380,381,382,385,386,389,390,393,394,397,398,401],{},"Với ",[41,383,384],{},"key_path",", bạn phải tạo file ",[41,387,388],{},".env"," làm biến môi trường trỏ đến đường dẫn của file key.json mà chúng tôi đã tạo từ bước ",[41,391,392],{},"IV",", trong ví dụ này, tôi sẽ lưu file ",[41,395,396],{},"key.json"," trong thư mục có tên “",[41,399,400],{},"google-credential","” và đặt nó trong thư mục gốc của dự án.",[50,403],{"className":404,"alt":56,"src":405,"style":58},[53,54,55],"https:\u002F\u002Fhomepage-media.s3.ap-southeast-1.amazonaws.com\u002Fwp-content\u002Fuploads\u002F2020\u002F05\u002F25165823\u002Fkey_path.png",[15,407,408,409,411],{},"và trong ",[41,410,388],{}," bao gồm dòng này",[50,413],{"className":414,"alt":56,"src":415,"style":58},[53,54,55],"https:\u002F\u002Fhomepage-media.s3.ap-southeast-1.amazonaws.com\u002Fwp-content\u002Fuploads\u002F2020\u002F05\u002F25165845\u002Fenv_exam.png",[15,417,418],{},"Bây giờ chúng ta sẽ tạo một controller để xử lý 2 thứ:",[15,420,421],{},"1. Nhận hình ảnh tải lên từ request",[15,423,424],{},"2. Sử dụng code trên để hiển thị văn bản nhận được từ Vision API",[15,426,427,428,431],{},"Tôi sẽ tạo một controller tên AnnotationController chỉ với 1 hàm ",[41,429,430],{},"annotateImage","() và chứa đoạn code dưới đây",[50,433],{"className":434,"alt":56,"src":435,"style":58},[53,54,55],"https:\u002F\u002Fhomepage-media.s3.ap-southeast-1.amazonaws.com\u002Fwp-content\u002Fuploads\u002F2020\u002F05\u002F25165923\u002Fvision_php_1-1.png",[15,437,438,439,442,443,446],{},"Tôi tạo một trang web rất đơn giản chỉ với 1 input file có tên là “",[41,440,441],{},"Upload image","” và một nút submit có tên là “",[41,444,445],{},"Convert","”",[50,448],{"className":449,"alt":56,"src":450,"style":58},[53,54,55],"https:\u002F\u002Fhomepage-media.s3.ap-southeast-1.amazonaws.com\u002Fwp-content\u002Fuploads\u002F2020\u002F05\u002F25170108\u002Fsample_template.png",[15,452,453,454,456,457,460],{},"Bây giờ tôi sẽ chọn hình ảnh trên để kiểm tra xem Vision có thể nhận ra các văn bản như “",[41,455,441],{},"“, “",[41,458,459],{},"Choose File","“, … hoặc không",[50,462],{"className":463,"alt":56,"src":464,"style":58},[53,54,55],"https:\u002F\u002Fhomepage-media.s3.ap-southeast-1.amazonaws.com\u002Fwp-content\u002Fuploads\u002F2020\u002F05\u002F25170134\u002Fchoose_file.png",[15,466,467],{},"Bây giờ hãy kiểm tra những gì chúng ta sẽ nhận được.",[50,469],{"className":470,"alt":56,"src":471,"style":58},[53,54,55],"https:\u002F\u002Fhomepage-media.s3.ap-southeast-1.amazonaws.com\u002Fwp-content\u002Fuploads\u002F2020\u002F05\u002F25170200\u002Fvision_result.png",[15,473,474],{},"Phải nhưng bây giờ chúng tôi sẽ thử với tiếng Nhật. Tôi thử với ảnh chụp màn hình một tin tức Nhật Bản.",[50,476],{"className":477,"alt":56,"src":478,"style":58},[53,54,55],"https:\u002F\u002Fhomepage-media.s3.ap-southeast-1.amazonaws.com\u002Fwp-content\u002Fuploads\u002F2020\u002F05\u002F25170237\u002Fjapanese_news.png",[15,480,481],{},"Bây giờ chúng ta sẽ có gì?",[50,483],{"className":484,"alt":56,"src":485,"style":58},[53,54,55],"https:\u002F\u002Fhomepage-media.s3.ap-southeast-1.amazonaws.com\u002Fwp-content\u002Fuploads\u002F2020\u002F05\u002F25170306\u002Fjapan_result.png",[15,487,488],{},"Thật tuyệt phải không?",[15,490,491],{},[33,492,494],{"href":493},"gcp-webservice-laravel-2","Phần tiếp theo sẽ được đăng vào tuần tới.",{"title":56,"searchDepth":496,"depth":496,"links":497},2,[498,499,500,501,502],{"id":12,"depth":496,"text":13},{"id":20,"depth":496,"text":21},{"id":27,"depth":496,"text":28},{"id":293,"depth":496,"text":294},{"id":362,"depth":496,"text":363},"tech talk","Briswell Vietnam Co Ltd","2020-05-29","I. GCP là gì? Google Cloud Platform (GCP), được cung cấp bởi Google, là một bộ dịch vụ điện toán đám mây chạy trên cùng một cơ sở hạ tầng mà Google sử dụng nội bộ cho các sản phẩm của người dùng cuối, như Google Tìm kiếm, Gmail và YouTube. Bên cạnh một bộ công cụ quản lý, nó cung cấp một loạt các dịch vụ đám mây mô-đun bao gồm điện toán, lưu trữ dữ liệu, phân tích dữ liệu và học máy. Đăng ký yêu cầu một thẻ tín dụng hoặc chi tiết tài khoản ngân hàng. Google Cloud Platform cung cấp cơ sở hạ tầng dưới dạng dịch vụ, nền tảng là dịch vụ và môi trường máy tính không có máy chủ.","md",{},true,"\u002Fvi\u002Fnews\u002Fgcp-webservice-laravel-1",null,{"title":5,"description":506},"vi\u002Fnews\u002Fgcp-webservice-laravel-1","https:\u002F\u002Fhomepage-media.s3.ap-southeast-1.amazonaws.com\u002Fwp-content\u002Fuploads\u002F2020\u002F05\u002F19163201\u002F0_brH9cM9rnSRx2I-S.png","mVrEL5SrU2bUwcQOA675o3MENBl9HtRaNOQXlu9oZD0",1785320524991]