1. Введение
В этой лаборатории кода вы выполните действия по настройке аутентификации для доступа к Google Cloud API с использованием токенов, когда ваша система SAP размещена на экземпляре виртуальной машины Compute Engine.
Список используемых услуг:
- Вычислительный двигатель
- Сетевые службы
- Облачная оболочка
Что ты построишь
Вы выполните следующее:
- Настройте ABAP SDK, установленный в системе SAP, для подключения к API Google.
- Создайте пример программы отчета для вызова API проверки адреса.
2. Требования
- Браузер, например Chrome или Firefox .
- Проект Google Cloud с включенной оплатой или создайте 90-дневную бесплатную пробную учетную запись для Google Cloud Platform.
- SAP GUI (Windows или Java), установленный в вашей системе. Если графический интерфейс SAP уже установлен в вашей системе, подключитесь к SAP, используя внешний IP-адрес виртуальной машины в качестве IP-адреса сервера приложений. Если вы используете Mac, вы также можете установить графический интерфейс SAP для Java, доступный по этой ссылке.
3. Прежде чем начать
- В Google Cloud Console на странице выбора проекта выберите или создайте проект Google Cloud (например,
abap-sdk-poc).
- Убедитесь, что для вашего облачного проекта включена оплата. Узнайте, как проверить, включена ли оплата в проекте . Пропустите этот шаг, если вы используете 90-дневную бесплатную пробную учетную запись .
- Вы будете использовать Cloud Shell , среду командной строки, работающую в Google Cloud. В Cloud Console нажмите «Активировать Cloud Shell» в правом верхнем углу:
- Убедитесь, что все необходимые 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.
- Вы можете обратиться к кодовой лаборатории « Установить пробную версию платформы ABAP 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 введите код транзакции SPRO .
- Щелкните Справочное IMG SAP .
- Нажмите ABAP SDK для Google Cloud > Основные настройки > Настроить ключ клиента .
- Нажмите «Новые записи» .
- Введите значения в следующие поля:
Поле | Описание |
Имя облачного ключа Google | ABAP_SDK_DEMO |
Имя учетной записи облачной службы Google | abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com |
Облачная область Google | https://www.googleapis.com/auth/cloud-platform |
Идентификатор облачного проекта Google | abap-sdk-poc |
Класс авторизации | /GOOG/CL_AUTH_GOOGLE. |
Остальные поля оставьте пустыми
6. Создайте назначение RFC
Создайте назначение RFC для учетных данных IAM и API проверки адреса.
Имя назначения RFC | Целевой хост (конечная точка API) | Примечания |
ZGOOG_IAMCREDENTIALS | Хост : iamcredentials.googleapis.com Путь : Префикс: /v1/ Порт : 443 SSL : Активный | Это назначение RFC предназначено для API IAM. |
ZGOOG_ADDRESSVALIDATION_V1 | Хост : адресvalidation.googleapis.com Порт : 443 SSL : активный | Это назначение RFC предназначено для API проверки адреса. |
- На вкладке «Технические настройки» введите следующие данные для пункта назначения ZGOOG_IAMCREDENTIALS.
- На вкладке «Технические настройки» введите следующие данные для места назначения ZGOOG_ADDRESSVALIDATION_V1.
- В поле «Сертификат SSL» убедитесь, что для обоих пунктов назначения RFC выбран параметр «Клиент SSL по умолчанию» (стандартный) .
7. Настройте сопоставление сервисов
Чтобы настроить таблицу сопоставления служб для API IAM и API проверки адреса, выполните следующие действия:
- В графическом интерфейсе SAP введите код транзакции SPRO .
- Щелкните Справочное IMG SAP .
- Нажмите ABAP SDK для Google Cloud > Основные настройки > Настроить сопоставление сервисов .
- Нажмите «Новые записи» для API проверки учетных данных IAM и адреса, связанных с пунктами назначения RFC.
8. Проверка конфигурации
Чтобы проверить конфигурацию аутентификации, выполните следующие шаги:
- В графическом интерфейсе SAP введите код транзакции SPRO .
- Щелкните Справочное IMG SAP .
- Нажмите ABAP SDK для Google Cloud > Утилиты > Проверка конфигурации аутентификации .
- Введите имя ключа клиента как
ABAP_SDK_DEMO
. - Нажмите «Выполнить» , чтобы проверить, успешно ли настроен весь поток.
- Зеленая галочка в столбце «Результат» означает, что все этапы настройки выполнены успешно.
9. Создайте программу-отчет для вызова службы проверки адреса.
- Войдите в свою систему SAP.
- Перейдите к коду транзакции SE38 и создайте программу отчета с именем ZDEMO_ADDRESS_VALIDATION.
- В открывшемся всплывающем окне укажите сведения, как показано ниже, и нажмите «Сохранить» .
- В следующем всплывающем окне выберите «Локальный объект» или укажите имя пакета, если это необходимо.
- В редакторе 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 , чтобы продолжить обучение использованию ABAP SDK для Google Cloud для доступа к различным облачным службам Google.
11. Очистка
Если вы не хотите продолжать работу с дополнительными лабораториями кода, связанными с 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