הגדרת אימות ABAP SDK באמצעות אסימונים ל-SAP שמתארחים במכונה וירטואלית ב-Compute Engine והפעלה של API לאימות כתובות

1. מבוא

בשיעור ה-Codelab הזה מבצעים את השלבים להגדרת אימות לצורך גישה לממשקי ה-API של Google Cloud באמצעות אסימונים כשמערכת SAP מתארחת במכונה וירטואלית של Compute Engine.

רשימת השירותים שבהם נעשה שימוש:

  • Compute Engine
  • שירותי רשת
  • Cloud Shell

מה תפַתחו

הפעולה הזו תבצע את הפעולות הבאות:

  • הגדרת ABAP SDK שמותקן במערכת SAP להתחברות ל-Google APIs.
  • אפשר ליצור תוכנית דוחות לדוגמה כדי להפעיל את Address Validation 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. לפני שמתחילים

6757b2fb50ddcc2d.png

  • חשוב לוודא שכל ממשקי ה-API הנדרשים (IAM Service Account Credentials API ו-Address Validation 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

4. יצירת חשבון שירות והגדרת התפקיד 'יצירת אסימונים בחשבון שירות'

כדי ליצור חשבון שירות עם התפקיד הנדרש, מבצעים את השלבים הבאים:

  1. מריצים את הפקודה הבאה כדי ליצור חשבון שירות: (אם כבר קיים חשבון שירות, צריך לדלג על השלב הזה)
gcloud iam service-accounts create abap-sdk-dev \
    --description="ABAP SDK Dev Account" \
    --display-name="ABAP SDK Dev Account"
  1. מריצים את הפקודה הבאה כדי להגדיר את התפקיד יצירת אסימונים בחשבון שירות:
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 ופועלים לפי השלבים הבאים כדי להגדיר את מפתח הלקוח:

  1. ב-SAP GUI, מזינים את קוד העסקה SPRO.
  2. לוחצים על SAP Reference JPG.
  3. לוחצים על ABAP SDK for Google Cloud > הגדרות בסיסיות > הגדרת מפתח לקוח
  4. לוחצים על רשומות חדשות.
  5. צריך להזין ערכים בשדות הבאים:

שדה

תיאור

שם המפתח ב-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.

משאירים את שאר השדות ריקים

c72e71da6fd75b29.png

6. יצירת יעד RFC

יצירת יעד RFC עבור ממשק ה-API של פרטי כניסה ואימות כתובת ב-IAM.

שם יעד RFC

מארח היעד (נקודת קצה ל-API)

הערות

ZGOOG_IAMCREDENTIALS

Host (מארח): iamcredentials.googleapis.comPath: Prefix: /v1/Port: 443SSL: פעיל

יעד ה-RFC הזה מטרגט ל-API של IAM.

ZGOOG_ADDRESSVALIDATION_V1

Host (מארח): address verification.googleapis.comPort (יציאה): 443SSL: Active

יעד ה-RFC הזה משתמש בממשק ה-API לאימות כתובת

  • בכרטיסייה הגדרות טכניות, מזינים את הפרטים הבאים עבור היעד ZGOOG_IAMCREDENTIALS.

e670c6a91acba40f.png

  • בכרטיסייה הגדרות טכניות, מזינים את הפרטים הבאים עבור היעד ZGOOG_ADDRESSווהATION_V1.

fcf92530ece612ea.png

  • בשדה אישור SSL, צריך לוודא שהאפשרות DEFAULT SSL (Standard) מסומנת בשני יעדי ה-RFC.

b6370d12bd332318.png

7. הגדרה של מיפוי שירותים

כדי להגדיר את טבלת מיפוי השירותים עבור IAM API ו- Address Validation API, מבצעים את השלבים הבאים:

  1. ב-SAP GUI, מזינים את קוד העסקה SPRO.
  2. לוחצים על SAP Reference JPG.
  3. לוחצים על ABAP SDK for Google Cloud > הגדרות בסיסיות > הגדרת מיפוי שירותים.
  4. לוחצים על רשומות חדשות בממשק ה-API לאימות של פרטי כניסה וכתובת ב-IAM שמקושר ליעדי ה-RFC.

e227316b0f249823.png

8. אימות ההגדרות האישיות

כדי לבדוק את הגדרות האימות, מבצעים את השלבים הבאים:

  1. ב-SAP GUI, מזינים את קוד העסקה SPRO.
  2. לוחצים על SAP Reference JPG.
  3. לוחצים על ABAP SDK for Google Cloud > כלי ניהול > מאמתים את הגדרות האימות.
  4. צריך להזין את שם מפתח הלקוח בתור ABAP_SDK_DEMO.
  5. לוחצים על Execute כדי לבדוק אם התהליך הכולל הוגדר בהצלחה.
  6. סימן וי ירוק בעמודה 'תוצאות' מציין שכל שלבי ההגדרה הושלמו בהצלחה.

d7285e64e22c25b6.png

9. יצירת תוכנית דיווח כדי להפעיל את השירות לאימות כתובת

  1. מתחברים למערכת SAP.
  2. עוברים אל קוד העסקה SE38 ויוצרים תוכנית דיווח בשם ZDEMO_ADDRESS_INVALIDATION.
  3. בחלון הקופץ שנפתח, מזינים את הפרטים כפי שמוצג למטה ולוחצים על שמירה.

d8aac0f9e0bc5f9d.png

  1. בחלון הקופץ הבא, בוחרים באפשרות אובייקט מקומי או מספקים שם חבילה מתאים.
  2. בעורך 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.
  1. שומרים את הדוח ומפעילים אותו.
  2. הרצת הדוח (F8).

לאחר ביצוע מוצלח, פלט הדוח אמור להופיע באופן הבא:

8b0aed97320f4ef.png

10. מזל טוב

מעולה! הגדרת בהצלחה את ABAP SDK להפעיל את שירות אימות הכתובת.

עכשיו תוכלו להתחיל לעבוד עם מעבדות הקוד של ABAP SDK האחרות כדי להמשיך בתהליך הלמידה של השימוש ב-ABAP SDK ל-Google Cloud ולקבל גישה לשירותים שונים של Google Cloud.

11. הסרת המשאבים

לא רוצה להמשיך עם ה-Codelabs הנוספים שקשורים ל-ABAP SDK ל-Google Cloud? אפשר להמשיך בניקוי.

מחיקת הפרויקט

  • מוחקים את הפרויקט ב-Google Cloud:
gcloud projects delete abap-sdk-poc

איך מוחקים משאבים ספציפיים

  1. כדי למחוק את הרשומות של תצורת מפתח הלקוח, נכנסים אל JPG > Google Cloud > הגדרות בסיסיות > הגדרת מפתח לקוח.
  2. כדי למחוק את רשומות התצורה של מיפוי השירות, נכנסים אל JPG > Google Cloud > הגדרות בסיסיות > הגדרת מפתח לקוח.
  3. מוחקים את יעדי RFC ZGOOG_IAMCREDENTIALS ו-ZGOOG_ADDRESS כספיםATION_V1.
  4. מוחקים את חשבון השירות:
gcloud iam service-accounts delete \
    abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com