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 และเทคโนโลยีที่เราใช้ประโยชน์ในโค้ดแล็บนี้ โปรดดูแหล่งข้อมูลเพิ่มเติมต่อไปนี้