1. บทนำ
ใน Codelab นี้ คุณจะต้องทำตามขั้นตอนในการตั้งค่าการตรวจสอบสิทธิ์เพื่อเข้าถึง Google Cloud API โดยใช้โทเค็นเมื่อระบบโฮสต์ระบบ SAP บนอินสแตนซ์ VM ของ Compute Engine
บริการที่ใช้มีดังนี้
- Compute Engine
- บริการเครือข่าย
- Cloud Shell
สิ่งที่คุณจะสร้าง
คุณจะดำเนินการต่อไปนี้
- กำหนดค่า ABAP SDK ที่ติดตั้งในระบบ SAP เพื่อเชื่อมต่อกับ Google APIs
- สร้างโปรแกรมรายงานตัวอย่างเพื่อเรียกใช้ API การตรวจสอบที่อยู่
2. ข้อกำหนด
- เบราว์เซอร์ เช่น Chrome หรือ Firefox
- โปรเจ็กต์ Google Cloud ที่เปิดใช้การเรียกเก็บเงินหรือสร้างบัญชีทดลองใช้ฟรี 90 วันสำหรับ Google Cloud Platform
- ติดตั้ง SAP GUI (Windows หรือ Java) ในระบบแล้ว หากติดตั้ง SAP GUI ไว้ในระบบแล้ว ให้เชื่อมต่อกับ SAP โดยใช้ที่อยู่ IP ภายนอกของ VM เป็น IP ของแอปพลิเคชัน หากคุณใช้ Mac คุณสามารถติดตั้ง SAP GUI สำหรับ Java ที่มีอยู่ในลิงก์นี้
3. ก่อนเริ่มต้น
- ในคอนโซล Google Cloud ในหน้าตัวเลือกโปรเจ็กต์ ให้เลือกหรือสร้างโปรเจ็กต์ Google Cloud (เช่น
abap-sdk-poc).
- ตรวจสอบว่าเปิดใช้การเรียกเก็บเงินสำหรับโปรเจ็กต์ที่อยู่ในระบบคลาวด์แล้ว ดูวิธีตรวจสอบว่าเปิดใช้การเรียกเก็บเงินในโปรเจ็กต์แล้ว โปรดข้ามขั้นตอนนี้หากคุณใช้บัญชีทดลองใช้ฟรี 90 วัน
- คุณจะใช้ Cloud Shell ซึ่งเป็นสภาพแวดล้อมบรรทัดคำสั่งที่ทำงานใน Google Cloud คลิกเปิดใช้งาน Cloud Shell ที่มุมขวาบนจาก Cloud Console:
- ตรวจสอบว่าเปิดใช้ API ที่จำเป็นทั้งหมด (API ข้อมูลเข้าสู่ระบบของบัญชีบริการ IAM และ API การตรวจสอบที่อยู่) แล้ว
- เรียกใช้คำสั่งต่อไปนี้เพื่อตรวจสอบสิทธิ์สำหรับบัญชีของคุณและตั้งค่าโปรเจ็กต์เริ่มต้นเป็น
abap-sdk-poc
ระบบใช้โซนus-west4-b
เป็นตัวอย่าง หากจำเป็น โปรดเปลี่ยนโปรเจ็กต์และโซนในคำสั่งด้านล่างตามความต้องการ
gcloud auth login
gcloud config set project abap-sdk-poc
gcloud config set compute/zone us-west4-b
PROJECT_NAME=abap-sdk-poc
REGION=us-west4
ZONE=us-west4-b
- โปรดตรวจสอบว่าคุณมีสิทธิ์เข้าถึงระบบ SAP ที่ติดตั้ง ABAP SDK สำหรับ Google Cloud แล้ว
- คุณสามารถดูที่ Codelab " ติดตั้ง ABAP Platform แบบทดลองใช้ปี 2022 บน Google Cloud Platform และติดตั้ง ABAP SDK" เพื่อตั้งค่าระบบใหม่
4. สร้างบัญชีบริการและกำหนดบทบาทผู้สร้างโทเค็นบัญชีบริการ
หากต้องการสร้างบัญชีบริการที่มีบทบาทที่จำเป็น ให้ทำตามขั้นตอนต่อไปนี้
- เรียกใช้คำสั่งต่อไปนี้เพื่อสร้างบัญชีบริการ (โปรดข้ามขั้นตอนนี้หากมีบัญชีบริการอยู่แล้ว)
gcloud iam service-accounts create abap-sdk-dev \
--description="ABAP SDK Dev Account" \
--display-name="ABAP SDK Dev Account"
- เรียกใช้คำสั่งต่อไปนี้เพื่อกำหนดบทบาทผู้สร้างโทเค็นบัญชีบริการ
gcloud projects add-iam-policy-binding $PROJECT_NAME \
--member=serviceAccount:abap-sdk-dev@$PROJECT_NAME.iam.gserviceaccount.com \
--role=roles/iam.serviceAccountTokenCreator
5. กำหนดค่าคีย์ไคลเอ็นต์
เข้าสู่ระบบระบบ SAP ด้วยชื่อผู้ใช้ DEVELOPER
และรหัสผ่าน Htods70334
และทำตามขั้นตอนเหล่านี้เพื่อกำหนดค่าคีย์ไคลเอ็นต์
- ใน SAP GUI ให้ป้อนรหัสธุรกรรม SPRO
- คลิก SAP หมายเลขอ้างอิง IMG
- คลิก ABAP SDK สําหรับ Google Cloud > การตั้งค่าพื้นฐาน > กำหนดค่าคีย์ไคลเอ็นต์
- คลิกข้อมูลใหม่
- ป้อนค่าในช่องต่อไปนี้
ช่อง | คำอธิบาย |
ชื่อคีย์ Google Cloud | ABAP_SDK_DEMO |
ชื่อบัญชีบริการ Google Cloud | abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com |
ขอบเขตของ Google Cloud | https://www.googleapis.com/auth/cloud-platform |
ตัวระบุโปรเจ็กต์ Google Cloud | abap-sdk-poc |
คลาสการให้สิทธิ์ | /GOOG/CL_AUTH_GOOGLE |
เว้นช่องอื่นๆ ว่างไว้
6. สร้างปลายทาง RFC
สร้างปลายทาง RFC สำหรับข้อมูลเข้าสู่ระบบ IAM และ Address Validation API
ชื่อปลายทาง RFC | โฮสต์เป้าหมาย (ปลายทาง API) | หมายเหตุ |
ZGOOG_IAMCREDENTIALS | โฮสต์: iamcredentials.googleapis.comเส้นทาง: คำนำหน้า: /v1/Port: 443SSL: ใช้งานอยู่ | ปลายทาง RFC นี้กำหนดเป้าหมาย IAM API |
ZGOOG_ADDRESSVALIDATION_V1 | โฮสต์: addressValidation.googleapis.comPort: 443SSL: ใช้งานอยู่ | ปลายทาง RFC นี้กำหนดเป้าหมาย API การตรวจสอบที่อยู่ |
- ในแท็บการตั้งค่าทางเทคนิค ให้ป้อนรายละเอียดต่อไปนี้สำหรับปลายทาง ZGOOG_IAMCREDENTIALS
- ในแท็บการตั้งค่าทางเทคนิค ให้ป้อนรายละเอียดต่อไปนี้สำหรับปลายทาง ZGOOG_ADDRESSVALIDATION_V1
- สำหรับช่องใบรับรอง SSL โปรดตรวจสอบว่าได้เลือกตัวเลือกไคลเอ็นต์ SSL เริ่มต้น (มาตรฐาน) สำหรับทั้งปลายทาง RFC
7. กำหนดค่าการแมปบริการ
ทำตามขั้นตอนต่อไปนี้เพื่อกำหนดค่าตารางการแมปบริการสำหรับ IAM API และ Address Validation API
- ใน SAP GUI ให้ป้อนรหัสธุรกรรม SPRO
- คลิก SAP หมายเลขอ้างอิง IMG
- คลิก ABAP SDK สําหรับ Google Cloud > การตั้งค่าพื้นฐาน > กำหนดค่าการจับคู่บริการ
- คลิกข้อมูลใหม่สำหรับ API การตรวจสอบข้อมูลเข้าสู่ระบบ IAM และที่อยู่ที่ลิงก์กับปลายทาง RFC
8. ตรวจสอบการกำหนดค่า
โปรดทำตามขั้นตอนต่อไปนี้เพื่อตรวจสอบการกำหนดค่าการตรวจสอบสิทธิ์
- ใน SAP GUI ให้ป้อนรหัสธุรกรรม SPRO
- คลิก SAP หมายเลขอ้างอิง IMG
- คลิก ABAP SDK สําหรับ Google Cloud > ยูทิลิตี > ตรวจสอบการกำหนดค่าการตรวจสอบสิทธิ์
- ป้อนชื่อคีย์ไคลเอ็นต์เป็น
ABAP_SDK_DEMO
- คลิกดำเนินการเพื่อตรวจสอบว่ากำหนดค่าขั้นตอนโดยรวมสำเร็จแล้วหรือไม่
- เครื่องหมายถูกสีเขียวในคอลัมน์ "ผลลัพธ์" แสดงว่าขั้นตอนการกำหนดค่าทั้งหมดเสร็จสมบูรณ์แล้ว
9. สร้างโปรแกรมรายงานเพื่อเรียกใช้บริการตรวจสอบที่อยู่
- ลงชื่อเข้าสู่ระบบ SAP
- ไปที่รหัสธุรกรรม SE38 และสร้างโปรแกรมรายงานชื่อ ZDEMO_ADDRESS_VALIDATION
- ในป๊อปอัปที่เปิดขึ้น ให้ระบุรายละเอียดดังที่แสดงด้านล่าง แล้วคลิกบันทึก
- ในป๊อปอัปถัดไป ให้เลือก Local Object หรือระบุชื่อแพ็กเกจตามความเหมาะสม
- ในตัวแก้ไข ABAP ให้เพิ่มโค้ดต่อไปนี้
" data declarations
DATA lv_ret_code TYPE i.
DATA lv_err_text TYPE string.
DATA ls_input TYPE /goog/cl_addrvaldn_v1=>ty_012.
DATA ls_output TYPE /goog/cl_addrvaldn_v1=>ty_013.
DATA ls_err_resp TYPE /goog/err_resp.
DATA lo_exception TYPE REF TO /goog/cx_sdk.
DATA lo_address_validator TYPE REF TO /goog/cl_addrvaldn_v1.
" instantiate api client stub
TRY.
lo_address_validator = NEW #( iv_key_name = 'ABAP_SDK_DEV' ).
" Pass the address to be validated and corrected.
" Mountain misspelled as Moutain
" Amphitheatre misspelled as Amphithetre
ls_input-address-region_code = 'US'.
ls_input-address-locality = 'Moutain View'.
APPEND '1600, Amphithetre, Parkway' TO ls_input-address-address_lines.
" call the api method to validate address
lo_address_validator->validate_address( EXPORTING is_input = ls_input
IMPORTING es_output = ls_output
ev_ret_code = lv_ret_code
ev_err_text = lv_err_text
es_err_resp = ls_err_resp ).
IF lo_address_validator->is_success( lv_ret_code ) = abap_true
AND ls_output-result-verdict-address_complete = abap_true.
cl_demo_output=>new(
)->begin_section( `Original Address`
)->write_data( ls_input-address-region_code
)->write_data( ls_input-address-locality
)->write_data( ls_input-address-address_lines
)->next_section( `Validated & Corrected Address`
)->begin_section( `Elementary Object`
)->write_data( ls_output-result-address-formatted_address
)->display( ).
ENDIF.
CATCH /goog/cx_sdk INTO lo_exception.
" write code here to handle exceptions
cl_demo_output=>display( lo_exception->get_text( ) ).
ENDTRY.
- บันทึกและเปิดใช้งานรายงาน
- เรียกใช้รายงาน (F8)
เมื่อดําเนินการสำเร็จ คุณควรเห็นผลลัพธ์รายงานดังที่แสดงด้านล่าง
10. ขอแสดงความยินดี
ยินดีด้วย คุณกำหนดค่า ABAP SDK เพื่อเรียกใช้บริการการตรวจสอบที่อยู่เรียบร้อยแล้ว
คุณสามารถศึกษาเพิ่มเติมเกี่ยวกับ ABAP SDK Codelab เพื่อศึกษาเส้นทางการเรียนรู้ในการใช้ ABAP SDK สำหรับ Google Cloud เพื่อเข้าถึงบริการต่างๆ ของ Google Cloud ต่อไปได้
11. ล้างข้อมูล
หากไม่ต้องการใช้งาน Codelab เพิ่มเติมที่เกี่ยวข้องกับ ABAP SDK สำหรับ Google Cloud ต่อ โปรดทําการล้างข้อมูลต่อ
ลบโปรเจ็กต์
- ลบโปรเจ็กต์ Google Cloud โดยทำดังนี้
gcloud projects delete abap-sdk-poc
ลบทรัพยากรแต่ละรายการ
- ลบรายการการกำหนดค่าคีย์ไคลเอ็นต์โดยไปที่ IMG > Google Cloud > การตั้งค่าพื้นฐาน > กำหนดค่าคีย์ไคลเอ็นต์
- ลบรายการการกำหนดค่าการจับคู่บริการโดยไปที่ IMG > Google Cloud > การตั้งค่าพื้นฐาน > กำหนดค่าคีย์ไคลเอ็นต์
- ลบปลายทาง RFC ZGOOG_IAMCREDENTIALS และ ZGOOG_ADDRESSVALIDATION_V1
- ลบบัญชีบริการ
gcloud iam service-accounts delete \
abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com