เกี่ยวกับ Codelab นี้
1 บทนำ
การผสานรวม Magento กับแบ็กเอนด์ Cloud Spanner
Magento เป็นแพลตฟอร์มอีคอมเมิร์ซแบบโอเพนซอร์สที่ใช้ PHP ซึ่งได้รับความนิยมอย่างแพร่หลายและจัดเก็บข้อมูลไว้ใน MySQL
โค้ดแล็บนี้เป็น Proof of Concept เพื่อใช้ประโยชน์จาก Cloud Spanner แทน MySQL สําหรับโมดูลแคตตาล็อก ซึ่งจะเป็นประโยชน์สำหรับทุกคนที่สนใจในการผสานรวม ทดสอบ และการทำให้ Magento หรือแอปพลิเคชัน PHP อื่นๆ ใช้งานได้ด้วย Spanner
Spanner คือฐานข้อมูลที่สอดคล้องกันแบบกระจายและจัดการอย่างเต็มรูปแบบสำหรับองค์กรของ Google Cloud ซึ่งรวมข้อดีของโมเดลฐานข้อมูลเชิงสัมพันธ์เข้ากับการปรับขนาดในแนวนอนแบบไม่ใช่เชิงสัมพันธ์ แพลตฟอร์มนี้ออกแบบมาเพื่อรองรับการใช้งานการประมวลผลธุรกรรมออนไลน์ทั่วโลก ความหมายของ SQL การขยายขนาดแนวนอนที่พร้อมใช้งานสูง และความสอดคล้องของธุรกรรม Spanner สามารถจัดการข้อมูลปริมาณมากได้ การใช้งานไม่ได้จำกัดไว้เพียงแอปพลิเคชันขนาดใหญ่เท่านั้น แต่ยังช่วยให้ใช้เครื่องมือฐานข้อมูลที่มาตรฐานสำหรับเวิร์กโหลดทั้งหมดที่ต้องใช้ RDBMS ได้ Spanner ทำให้ระบบไม่มีช่วงพักสำหรับการบำรุงรักษาที่วางแผนไว้หรือความล้มเหลวในภูมิภาค โดยมี SLA ความพร้อมใช้งาน 99.999% รองรับแอปพลิเคชันสมัยใหม่เนื่องจากมีความพร้อมใช้งานและความสามารถในการปรับขนาดสูง
สิ่งที่คุณจะได้เรียนรู้
- วิธีติดตั้ง Magento ใน GCE
- วิธีตั้งค่าโปรแกรมจำลอง Spanner
- วิธีย้ายสคีมา MySQL ที่มีอยู่ไปยัง Spanner โดยใช้ HarbourBridge
- สิ่งที่คุณต้องเปลี่ยนแปลงเพื่อผสานรวมแอปพลิเคชัน PHP เช่น Magento ที่ใช้ MySQL สำหรับแบ็กเอนด์ฐานข้อมูลเพื่อทำงานร่วมกับ Spanner
สิ่งที่คุณจะสร้าง
Codelab นี้มุ่งเน้นไปที่การผสานรวม Magento กับ Spanner เรามีบล็อกโค้ดและวิธีการตั้งค่าให้คุณคัดลอกและวาง แต่ไม่ได้อธิบายอย่างละเอียด
ใน Codelab นี้ คุณจะเริ่มการผสานรวม Magento กับ Spanner สิ่งที่จะเกิดขึ้นกับคุณมีดังนี้
- ตั้งค่าอินสแตนซ์ GCE ที่มีการติดตั้ง Magento
- ติดตั้ง Spanner Emulator
- ติดตั้ง HarbourBridge Tool สำหรับการย้ายข้อมูลจาก MySQL ไปยัง Spanner
- แก้ไขคอลเล็กชัน Magento เพื่อโหลดแคตตาล็อกผลิตภัณฑ์จาก Spanner
สิ่งที่คุณต้องมี
- โปรเจ็กต์ Google Cloud ที่เชื่อมต่อกับบัญชีสำหรับการเรียกเก็บเงิน
- ความรู้เรื่อง PHP, Linux และการกำหนดค่า Apache จะสามารถทำได้
- ประสบการณ์ Magento จะมีประโยชน์ แต่ก็ไม่จำเป็น
2 การเตรียมอินสแตนซ์ GCE
สร้างอินสแตนซ์ GCE
สร้างอินสแตนซ์ Compute Engine ใน Google Cloud Platform โดยทำตามขั้นตอนที่ระบุไว้ที่นี่
เมื่อสร้างอินสแตนซ์ GCE ให้เปลี่ยนประเภทอินสแตนซ์เป็น e2-standard-2 และขนาดดิสก์เปิดเครื่องเป็น 20 GB คุณใช้ทุกอย่างเป็นค่าเริ่มต้นได้ แต่อย่าลืมเลือก "อนุญาตการเข้าชม HTTP" และ "อนุญาตการรับส่งข้อมูล HTTP" เนื่องจากเราจะใช้ประโยชน์จากอินเทอร์เฟซเว็บของ Magento
การดำเนินการนี้จะส่งผลให้ประเภทเครื่องเป็น e2-standard-2 ซึ่งไม่ใช่อินสแตนซ์แกนประมวลผลที่ใช้ร่วมกัน และมี vCPU 2 ตัว, RAM 8 GB และพื้นที่ดิสก์ 20 GB
ระบบปฏิบัติการคือ Debian 10 การสร้างอินสแตนซ์อาจใช้เวลา 1-2 นาที
เมื่อสร้างแล้ว ให้เข้าสู่ระบบโดยคลิก "SSH" ใน Cloud Console
ซึ่งจะเปิดหน้าต่างเบราว์เซอร์ใหม่และนำคุณไปยังเทอร์มินัล
ติดตั้งซอฟต์แวร์ที่จำเป็น
Magento จะต้องติดตั้งซอฟต์แวร์ที่จำเป็นเบื้องต้นบางอย่าง เราจึงจะเรียกใช้ Magento ได้ กล่าวคือ คุณจะต้องติดตั้ง PHP, Elastic, MySQL และ Apache ตามที่อธิบายไว้ด้านล่าง
- ติดตั้งแพ็กเกจที่จำเป็น
sudo apt update sudo apt -y install lsb-release apt-transport-https ca-certificates wget git screen composer google-cloud-sdk-spanner-emulator gcc
- ติดตั้งโมดูล PHP ที่จำเป็นสำหรับ Magento
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list sudo apt update sudo apt -y install php7.4-fpm php7.4-common php7.4-mysql php7.4-gmp php7.4-curl php7.4-intl php7.4-mbstring php7.4-xmlrpc php7.4-gd php7.4-xml php7.4-cli php7.4-zip php7.4-bcmath php7.4-soap php7.4-grpc
- ติดตั้ง Elasticsearch และเริ่มต้นบริการ
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list sudo apt update && sudo apt -y install elasticsearch echo "-Xms1g -Xmx1g" | sudo tee /etc/elasticsearch/jvm.options.d/jvm.options sudo systemctl start elasticsearch.service
- ติดตั้ง MySQL
คุณกำลังติดตั้ง MySQL เพื่อติดตั้งสคีมา Magento เริ่มต้น หลังจากนั้นคุณจะย้ายสคีมาไปยัง Spanner โดยใช้ HarbourBridge
wget https://dev.mysql.com/get/mysql-apt-config_0.8.13-1_all.deb sudo dpkg -i mysql-apt-config*
คำสั่ง dpkg ด้านบนจะแสดงพรอมต์แบบอินเทอร์แอกทีฟให้ติดตั้งเซิร์ฟเวอร์ MySQL 5.7 เลือกตัวเลือกต่อไปนี้
- เซิร์ฟเวอร์และคลัสเตอร์ MySQL
- mysql-5.7
- ตกลง
sudo apt update && sudo apt -y install mysql-server # You will be prompted to enter a root password
- ติดตั้ง Apache2
sudo apt -y install apache2 sudo a2enmod proxy_fcgi rewrite
ติดตั้งและกำหนดค่า Magento2
โปรเจ็กต์ Magento Commerce Cloud มีสคีมาฐานข้อมูลและบริการเพื่อเข้าถึงเว็บไซต์และร้านค้า Magento โดยสมบูรณ์
วิธีที่ง่ายที่สุดในการติดตั้งและใช้งานคือทำตามวิธีการของ Magento ในการติดตั้งโดยใช้ Composer
- ติดตั้ง Magento เวอร์ชัน 2.4.2 โดยใช้คอมโพสเซอร์ Magento 2 ต้องใช้คอมโพสเซอร์เวอร์ชัน 1.x คุณอาจเห็นคำเตือนบางอย่างเกี่ยวกับการเลิกใช้งานการสนับสนุนสำหรับเวอร์ชันนี้
composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition=2.4.2 magento2
- ตั้งค่าสิทธิ์ของโฟลเดอร์
cd magento2 find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} + find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} +
- กำหนดค่าโฮสต์เสมือน Magento โดยสร้าง /etc/apache2/sites-available/magento.conf ที่มีเนื้อหาด้านล่าง
sudo nano /etc/apache2/sites-available/magento.conf <VirtualHost *:80> ServerAdmin admin@local-magento.com DocumentRoot /var/www/html/magento/ <Directory /var/www/html/magento/> Options Indexes FollowSymlinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> <FilesMatch \.php$> SetHandler "proxy:unix:/run/php/php7.4-fpm.sock|fcgi://localhost" </FilesMatch> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
- สร้างลิงก์สัญลักษณ์และรีสตาร์ท apache2
cd ~/magento2 sudo ln -s $(pwd) /var/www/html/magento sudo ln -s /etc/apache2/sites-available/magento.conf /etc/apache2/sites-enabled/magento.conf sudo rm /etc/apache2/sites-enabled/000-default.conf sudo systemctl restart apache2
- สร้างฐานข้อมูลและผู้ใช้สำหรับ Magento ใน MySQL
export ROOT_PASSWORD="<root password from installation>" export GCE_INSTANCE_IP="<GCE instance IP>" mysql -uroot -p$ROOT_PASSWORD -e "create database magento" bin/magento sampledata:deploy bin/magento setup:install --base-url=http://$GCE_INSTANCE_IP/ --db-host=localhost \ --db-name=magento --db-user=root --db-password=$ROOT_PASSWORD --admin-firstname=admin \ --admin-lastname=demo --admin-email=good@example.com --admin-user=admin \ --admin-password=magento123 --language=en_US --currency=USD --timezone=America/Chicago \ --use-rewrites=1 sudo chown -R :www-data ~/magento2/.
- ยืนยันเวิร์กスペースในเครื่อง หากต้องการยืนยันว่าสภาพแวดล้อมในเครื่องโฮสต์เซิร์ฟเวอร์ ให้เข้าถึง Store โดยใช้ URL พื้นฐานที่คุณส่งในคำสั่งติดตั้ง ในตัวอย่างนี้ คุณสามารถเข้าถึงร้านค้า Magento ในพื้นที่ได้โดยใช้รูปแบบ URL ต่อไปนี้
- http://<GCEexternalIP>/
- http://<GCEexternalIP>/<adminuri>
คุณดู GCEexternalIP ได้ในคอนโซล Cloud
หากต้องการเปลี่ยน URI สําหรับแผงผู้ดูแลระบบ ให้ใช้คําสั่งนี้เพื่อค้นหา
php bin/magento info:adminuri
- ปิดใช้แคชทั้งหน้า หากต้องการพัฒนา คุณปิดใช้แคชทั้งหน้าของ Magento2 ได้ ซึ่งจะช่วยให้คุณแก้ไขข้อมูลใน Spanner และแสดงข้อมูลในเว็บไซต์ได้โดยไม่ได้รับผลกระทบจากค่าที่แคชไว้
php bin/magento cache:disable full_page
ตั้งค่า Spanner
ติดตั้งโปรแกรมจำลอง Spanner
Cloud SDK มีโปรแกรมจำลองแบบในหน่วยความจำภายในเครื่อง ซึ่งคุณสามารถใช้เพื่อพัฒนาและทดสอบแอปพลิเคชันของคุณได้ฟรีโดยไม่ต้องสร้างโปรเจ็กต์ GCP หรือบัญชีสำหรับการเรียกเก็บเงิน เนื่องจากโปรแกรมจำลองจัดเก็บข้อมูลไว้ในหน่วยความจำเท่านั้น สถานะทั้งหมด รวมถึงข้อมูล สคีมา และการกำหนดค่าจะหายไปเมื่อรีสตาร์ท โปรแกรมจำลองมี API เดียวกับบริการการผลิต Spanner และมีไว้เพื่อการพัฒนาและทดสอบในเครื่อง ไม่ใช่สำหรับการใช้งานจริง
โปรดใช้ลิงก์ด้านล่างเพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับการติดตั้ง การใช้งาน และการทำให้โปรแกรมจำลองใช้งานได้
# Set up a new configuration to use the emulator gcloud config configurations create emulator gcloud config set auth/disable_credentials true gcloud config set project magento gcloud config set api_endpoint_overrides/spanner http://localhost:9020/ # Start emulator in a screen session screen -S magento gcloud emulators spanner start & gcloud spanner instances create magento-instance --config=emulator-config --description='Magento Instance' --nodes=1 # Detach from screen ctrl+a+d export SPANNER_EMULATOR_HOST=localhost:9010
ย้ายข้อมูล Magento MySQL ไปยัง Spanner
ก่อนที่จะเจาะลึกในการผสานรวม Spanner เราจะใช้เครื่องมือชื่อ HarbourBridge เพื่อแปลงฐานข้อมูล MySQL ที่สร้างขึ้นเป็นส่วนหนึ่งของการติดตั้ง Magento ของเราด้านบนไปยัง Spanner
หัวใจหลักของ HarbourBridge คือเวิร์กโฟลว์อัตโนมัติสำหรับการโหลดเนื้อหาของฐานข้อมูล MySQL หรือ PostgreSQL ที่มีอยู่ไปยัง Spanner โดยไม่จำเป็นต้องกำหนดค่าใดๆ เลย โดยไม่ต้องเขียนไฟล์ Manifest หรือ Data Map แต่จะนำเข้าฐานข้อมูลต้นทาง สร้างสคีมา Spanner แทน สร้างฐานข้อมูล Spanner ใหม่ที่มีข้อมูลจากฐานข้อมูลต้นทาง และสร้างรายงานการประเมินโดยละเอียด HarbourBridge มีไว้เพื่อการโหลดฐานข้อมูลขนาดไม่เกิน 20-10 GB เพื่อวัตถุประสงค์ในการประเมิน ไม่ใช่การย้ายข้อมูลแบบเต็มขนาด
HarbourBridge เปิดใช้งานการย้ายข้อมูลในระยะเริ่มต้นไปยัง Spanner โดยใช้ฐานข้อมูลต้นทางของ MySQL หรือ PostgreSQL ที่มีอยู่เพื่อให้คุณเริ่มต้นใช้งาน Spanner ได้อย่างรวดเร็ว ซึ่งจะสร้างรายงานการประเมินที่มีคะแนนความแข็งแรงของการย้ายข้อมูลโดยรวมสำหรับ Spanner ซึ่งเป็นการวิเคราะห์การจับคู่ประเภทตารางต่อตารางและรายการฟีเจอร์ที่ใช้ในฐานข้อมูลต้นทางที่ Spanner ไม่รองรับ
HarbourBbridge สามารถใช้กับโปรแกรมจำลอง SPANer หรือใช้กับอินสแตนซ์ Spanner โดยตรง
README ของ HarbourBridge มีคู่มือการเริ่มต้นใช้งานฉบับย่อแบบทีละขั้นตอนสำหรับการใช้เครื่องมือกับอินสแตนซ์ Spanner
ติดตั้ง HarbourBridge
ดาวน์โหลดเครื่องมือลงในเครื่องแล้วติดตั้ง คุณต้องติดตั้ง golang เพื่อให้การดำเนินการนี้ทำงานได้ การติดตั้งโมดูลที่จำเป็นทั้งหมดในอินสแตนซ์ใหม่อาจใช้เวลาสักครู่โดยไม่ต้องตั้งค่าไว้ก่อนหน้านี้
# Install golang cd ~ wget https://golang.org/dl/go1.17.2.linux-amd64.tar.gz sudo tar -zxvf go1.17.2.linux-amd64.tar.gz -C /usr/local rm go1.17.2.linux-amd64.tar.gz echo 'export GOROOT=/usr/local/go' | sudo tee -a /etc/profile echo 'export PATH=/usr/local/go/bin:$HOME/go/bin:$PATH' | sudo tee -a /etc/profile source /etc/profile # Install harbourbridge git clone https://github.com/cloudspannerecosystem/harbourbridge cd harbourbridge go run github.com/cloudspannerecosystem/harbourbridge help
ย้ายข้อมูล
ใช้คำสั่งต่อไปนี้เพื่อย้ายข้อมูลฐานข้อมูล Magento ไปยัง Spanner
mysqldump --user='root' --password=$ROOT_PASSWORD magento | go run github.com/cloudspannerecosystem/harbourbridge -driver=mysqldump -dbname=magento
ตั้งค่าเครื่องมือ spanner-cli
go install github.com/cloudspannerecosystem/spanner-cli@latest
3 แปลง Magento ให้ทำงานร่วมกับ Spanner
ตอนนี้ Magento ทำงานอยู่ และอินสแตนซ์ Spanner ที่สร้างขึ้นด้วยฐานข้อมูล Magento ย้ายข้อมูลแล้ว เราจะแก้ไข Magento ให้ทำงานกับข้อมูลที่จัดเก็บไว้ใน Spanner
ระบบจะดำเนินการตามขั้นตอนต่อไปนี้เพื่อแปลงการติดตั้ง Magento
- โคลนโปรเจ็กต์ magento-spanner-port
- เปลี่ยนการเชื่อมต่อกับ Spanner
- ตรวจสอบว่ารายละเอียดแคตตาล็อกมาจาก Spanner
โคลนส้อมของโปรเจ็กต์ Magento
โคลนโค้ดแอปพลิเคชัน PHP สำหรับ Magento ซึ่งมีการปรับแต่งสำหรับโมดูลแคตตาล็อก รายการที่อยากได้ และรถเข็นจาก URL Git ที่ระบุไว้ด้านล่าง
cd ~ git clone https://github.com/searceinc/magento-spanner-port
ไดเรกทอรีหน้าแรกควรมีลักษณะดังนี้
$ ls go harbourbridge magento-spanner-port magento2
โดยที่ magento2 คือฐานของโค้ดที่เราจะแก้ไขโดยใช้โค้ดจาก magento-spanner-port
เปลี่ยนการเชื่อมต่อเป็น Spanner
หากต้องการตรวจสอบว่าการแก้ไขโค้ดแสดงใน UI หรือไม่ ให้ทำตามขั้นตอนด้านล่าง
ดูตัวอย่างการใช้งานได้ที่ลิงก์ GitHub https://github.com/searceinc/magento-spanner-port
- ต้องมีไลบรารีไคลเอ็นต์ PHP ของ google/cloud-spanner
- เพิ่มอะแดปเตอร์ Spanner เพื่อสร้างการเชื่อมต่อกับ Spanner
- กำหนดค่าอินสแตนซ์ Spanner และข้อมูลเซิร์ฟเวอร์
- เพิ่ม SpannerInterface และ Spanner ในอะแดปเตอร์เพื่อใช้การเชื่อมต่อกับ Spanner
ก่อนอื่น เราต้องติดตั้งไลบรารี PHP ของ Cloud Spanner โดยใช้ Composer ในไดเรกทอรี magento2 ให้เรียกใช้คำสั่งนี้
cd ~/magento2 composer require google/cloud-spanner
จากนั้นเพิ่มไฟล์อะแดปเตอร์ Spanner จาก magento-spanner-port ลงในโค้ดฐาน magento2 ดังนี้
~/magento2$ cp -r ../magento-spanner-port/lib/internal/Magento/Framework/DB/Adapter/Spanner vendor/magento/framework/DB/Adapter/. ~/magento2$ ls -l vendor/magento/framework/DB/Adapter/Spanner total 16 -rw-r--r-- 1 derekdowney derekdowney 10378 Nov 9 21:03 Spanner.php -rw-r--r-- 1 derekdowney derekdowney 2948 Nov 9 21:03 SpannerInterface.php
ตอนนี้ให้แก้ไขไฟล์ DB/Adapter/Spanner/Spanner.php เพื่อป้อนข้อมูลการเชื่อมต่อ Spanner สำหรับ $project_id, $instance และ $database
$ nano vendor/magento/framework/DB/Adapter/Spanner/Spanner.php class Spanner implements SpannerInterface { /** * Google cloud project id * @var string */ private $project_id = 'magento'; /** * Google cloud instance name * @var string */ private $instance = 'magento-instance'; /** * Cloud Spanner database name * @var string */ private $database = 'magento'; /** * Is Cloud Spanner emulator * @var bool */ private $is_emulator = true; ... /** * Set database connection adapter * * @param \Magento\Framework\DB\Adapter\AdapterInterface $conn * @return $this * @throws \Magento\Framework\Exception\LocalizedException */ public function setConnection(\Magento\Framework\DB\Adapter\AdapterInterface $conn) { $this->_conn = $conn; $this->_select = $this->_conn->select(); $this->_isOrdersRendered = false; return $this; } /** * Set Cloud Spanner database connection adapter * * @return void * @throws \Magento\Framework\Exception\LocalizedException */ private function setSpannerConnection() { $this->_spanner_conn = new Spanner(); }
แก้ไขคลาส AbstractDB ภายใน Magento ให้เชื่อมต่อกับ Spanner โดยใช้ฟังก์ชันการเชื่อมต่อที่สร้างขึ้นใหม่ภายในอะแดปเตอร์ Spanner เพิ่มเส้นสีเขียวต่อจากเส้นสีขาวในไฟล์ โปรดดูที่ vendor/magento/framework/Data/Collection/AbstractDb.php
$ nano vendor/magento/framework/Data/Collection/AbstractDb.php ... use Psr\Log\LoggerInterface as Logger; use Magento\Framework\DB\Adapter\Spanner\Spanner; ... protected $_conn; /** * Cloud Spanner connection * * @var \Magento\Framework\DB\Adapter\Spanner\SpannerAdapterInterface */ protected $_spanner_conn; ... if ($connection !== null) { $this->setConnection($connection); } $this->setSpannerConnection(); $this->_logger = $logger; ... /** * Retrieve connection object * * @return AdapterInterface */ public function getConnection() { return $this->_conn; } /** * Retrieve connection object * * @return SpannerAdapterInterface */ public function getSpannerConnection() { return $this->_spanner_conn; } ...
เมื่อเชื่อมต่อแล้ว เราต้องแก้ไขวิธีการดึงข้อมูลจากอะแดปเตอร์ MySQL เป็นอะแดปเตอร์ Spanner แก้ไขเมธอด _loadAttributes ใน AbstractCollection เพื่อเชื่อมต่อกับ Spanner และดึงข้อมูลจาก Spanner แทนที่เส้นสีแดงด้วยเส้นสีเขียว
โปรดดู /app/code/Magento/Eav/Model/Entity/Collection/AbstractCollection.php
$ nano ./vendor/magento/module-eav/Model/Entity/Collection/AbstractCollection.php use Magento\Framework\Exception\LocalizedException; use Google\Cloud\Spanner\SpannerClient; ... try { if (is_array($selects)) { $select = implode(' UNION ALL ', $selects); } else { $select = $selects; } $values = $this->getConnection()->fetchAll($select); $con = $this->getSpannerConnection(); /** * Cloud Spanner follows strict type so cast the columns in common type */ $select = $con->addCast($select, "`t_d`.`value`", 'string'); $select = $con->addCast($select, "`t_s`.`value`", 'string'); $select = $con->addCast($select, "IF(t_s.value_id IS NULL, t_d.value, t_s.value)", 'string'); $values = $con->fetchAll($select); ...
ตรวจสอบว่าระบบป้อนข้อมูลรายละเอียดแคตตาล็อกจาก Spanner
เท่านี้ก็เรียบร้อย ตอนนี้คุณสามารถไปที่การติดตั้ง Magento ในเบราว์เซอร์และตรวจสอบว่าข้อมูลกำลังโหลดอยู่
ตัวอย่างเช่น รายการต่อไปนี้คือรายการในแคตตาล็อกสำหรับนาฬิกา
แก้ไขข้อมูล Spanner ผ่านเทอร์มินัลสำหรับผลิตภัณฑ์รายการใดรายการหนึ่ง และค้นหาข้อมูลผ่านเทอร์มินัลเพื่อยืนยันการแก้ไขใน Spanner
$ spanner-cli -pmagento -i magento-instance -d magento spanner> SELECT * FROM catalog_product_entity_varchar WHERE value LIKE "Aim Analog%"; +----------+--------------+----------+-----------+--------------------+ | value_id | attribute_id | store_id | entity_id | value | +----------+--------------+----------+-----------+--------------------+ | 390 | 73 | 0 | 36 | Aim Analog Watch | +----------+--------------+----------+-----------+--------------------+ 1 rows in set (80.711542ms) spanner> UPDATE catalog_product_entity_varchar SET value = "Aim Analog Spanner" WHERE value_id=390; Query OK, 1 rows affected (0.19 sec) spanner> SELECT * FROM catalog_product_entity_varchar WHERE value_id=390; +----------+--------------+----------+-----------+--------------------+ | value_id | attribute_id | store_id | entity_id | value | +----------+--------------+----------+-----------+--------------------+ | 390 | 73 | 0 | 36 | Aim Analog Spanner | +----------+--------------+----------+-----------+--------------------+ 1 rows in set (80.711542ms)
ตอนนี้ ให้โหลดหน้าจออีกครั้งเพื่อยืนยันว่าชื่อนาฬิกาเปลี่ยนเป็น "Aim Analog Spanner" ตามที่ได้อัปเดตผ่านเทอร์มินัล Spanner แล้ว
4 ขอแสดงความยินดี
ยินดีด้วย คุณได้เชื่อมต่อโมดูลแคตตาล็อกของ Magento ให้ทำงานร่วมกับ Spanner เรียบร้อยแล้ว ซึ่งไม่ใช่การผสานรวมอย่างสมบูรณ์ แต่ตอนนี้คุณได้ทราบองค์ประกอบสำหรับรับแอปพลิเคชัน PHP เช่น Magento ที่เชื่อมต่อกับอินสแตนซ์ Spanner แล้ว
กำลังล้างข้อมูล
เมื่อการตั้งค่าและการตรวจสอบ POC เสร็จสมบูรณ์แล้ว คุณอาจต้องการลบทรัพยากร GCP ที่สร้างขึ้นในระหว่างกระบวนการ ซึ่งรวมถึงเครื่องเสมือน Compute Engine และอินสแตนซ์ Cloud Spanner ด้วยหากคุณตัดสินใจที่จะใช้เครื่องเสมือนแทนโปรแกรมจำลอง
ขั้นตอนถัดไปคือ
นี่เป็นเพียงโมเดลต้นแบบสำหรับ POC ของ Spanner
หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับการทำงานกับ Spanner และเทคโนโลยีที่เราใช้ประโยชน์ในโค้ดแล็บนี้ โปรดดูแหล่งข้อมูลเพิ่มเติมต่อไปนี้