View a markdown version of this page

の開始方法AWS SDK for SAP ABAP - AWSSDK for SAP ABAP

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

の開始方法AWS SDK for SAP ABAP

このセクションでは、 SDK の使用を開始する方法について説明します。SDK のインストール、基本設定の実行、フレーズをある言語から別の言語に翻訳する Hello World コード例の作成に関する情報が含まれています。AWSSDK を初めて使用する場合は、サンドボックス環境でこれらのステップを実行することをお勧めします。

にサインアップするAWS アカウント

の使用を開始するにはAWS、 が必要ですAWS アカウント。の作成の詳細についてはAWS アカウント、「 AWS アカウント管理リファレンスガイド」の「 の開始方法AWS アカウント」を参照してください。

ステップ 1: AWSアカウントを準備する

SDK for SAP ABAP の使用を開始するには、アクティブな AWS アカウント が必要です。SAP システムがオンプレミス、SAP Business Technology Platform (BTP)、または別のクラウドプロバイダーでホストされているAWS アカウント場合でも、 が必要です。

SAP システムが AWSクラウドで実行されている場合、 のサービスをAWS呼び出しますAWS アカウント。

SAP ユーザーの IAM ロール

  • AWS Identity and Access Management ユーザーガイド」に記載されている手順に従って IAM ロールを作成します。詳細については、「 AWSサービスにアクセス許可を委任するロールの作成」を参照してください。後で使用できるように IAM ロールの Amazon リソースネーム (ARN) をメモします。

  • ユースケースとして Amazon EC2 を選択します。

  • ロールの名前として SapDemoTranslate を使用します。

  • TranslateReadOnly プロファイルをロールにアタッチします。

  • SAP システムがロールを引き受けることができるように、ロールには次のエンティティが必要です。"111122223333" を、使用する AWS アカウント番号で置き換えます。

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sts:AssumeRole" ], "Principal": { "AWS": "111122223333" } } ] }

    この例では、 のすべてのプリンシパルがAWS アカウントロールを引き受け"111122223333"ることができることを示しています。これは概念実証に適した幅広いアクセス許可です。本番稼働環境には、以下の例のように、より絞り込んだプリンシパルを使用できます。

    • 特定のユーザー – SAP システムが次のいずれかを使用している場合。

      • オンプレミス SAP システムから SSF で暗号化された認証情報

      • SAP BTP、ABAP 環境の SAP Credential Store サービスからの認証情報

    • 特定のロール — SAP システムが Amazon EC2 にあり、インスタンスプロファイルがある場合。

    • Amazon EC2 – SAP システムが Amazon EC2 にあり、インスタンスプロファイルがない場合。

詳細については、「IAM セキュリティのベストプラクティス」を参照してください。

認証

認証は SAP システムがホストされている場所によって異なります。

AWSクラウド上

SAP システムが実行されている EC2 インスタンスに、以下の権限を持つインスタンスプロファイルがあることを確認してください。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::111122223333:role/SapDemoTranslate" } ] }

以前のステップで書き留めた ARN を追加します。

この権限により、SAP システムが ABAP ユーザに代わって SapDemoTranslate ロールを引き受けることができます。

オンプレミス、SAP BTP、またはその他のクラウド

SAP システムがオンプレミス、SAP BTP、またはその他のクラウドにある場合は、次の手順を使用して、シークレットアクセスキーを使用した認証用の接続を確立します。

  1. IAM ユーザーを作成します。詳細については、「IAM ユーザーの作成 (コンソール)」を参照してください。

  2. IAM ユーザーの名前として SapDemoSID を使用します。SID は、SAP システムのシステム ID です。

  3. SapDemoTranslate ロールをこのユーザーに割り当てます。

access_key と を保持しますsecret_access_key。これらの認証情報は SAP システムで設定する必要があります。

注記

SAP システムがオンプレミス、SAP BTP、またはその他のクラウドにある場合は、次のいずれかのオプションを使用して認証できます。

ステップ 2: SDK をインストールする

インストール手順については、次のタブを参照してください。

SDK for SAP ABAP

SDK for SAP ABAP のトランスポートを SAP システムにインポートします。トランスポートは任意のクライアントにインポートできます。詳細については、「 SDK for SAP ABAP のインストール」を参照してください。

SDK for SAP ABAP - BTP edition

Deploy Product アプリケーションを使用して SDK for SAP ABAP - BTP Edition をインストールします。詳細については、「 SDK for SAP ABAP - BTP エディションのインストール」を参照してください。

ステップ 3: SDK を設定する

SDK を設定する前に、必要な認可があることを確認してください。詳細については、「SAP 認可」を参照してください。

設定手順については、次のタブを参照してください。

SDK for SAP ABAP

/AWS1/IMG トランザクションを実行して、 SDK for SAP ABAP の実装ガイドを開きます。このトランザクションを実行するには、SAP システムのコマンドバーに /n/AWS1/IMG と入力し、[Enter] を選択します。

次の設定を完了します。

  • [技術的前提条件] に移動します。

  • [グローバル設定][シナリオの設定] に移動します。

    • グローバル設定の推奨事項に従って設定を変更します。

  • [グローバル設定][技術設定] に移動します。

    • グローバル設定の推奨事項に従って設定を変更します。

  • [ランタイム設定][ログとトレース] に移動します。

    • [新規エントリ] を選択します。

      • トレースレベル: トレースなし。

      • 最大ダンプ行: 100

      • オプトイン: enh telemetry: 空欄のままにしてください。

    • [保存] を選択します。

  • [ランタイム設定][アクティブシナリオ] に移動します。

    • [新規シナリオ]DEFAULT を選択します。

    • [シナリオ変更をコミット] を選択します。

    • プロンプトを受け入れます。

オンプレミスシステムの前提条件

SAP システムがオンプレミスまたは別のクラウドで実行されている場合、認証情報は SAP データベースに保存する必要があります。認証情報は SAP SSF を使用して暗号化されるため、SAP の CommonCryptoLib などの設定済みの暗号化ライブラリが必要です。

SDK for SAP ABAP 用に SSF を設定する手順は、/AWS1/IMG トランザクションで説明されています。

注記

SAP システムが Amazon EC2 で実行されている場合、前述の前提条件は適用されません。Amazon EC2 で実行されている SAP システムは、Amazon EC2 インスタンスのメタデータから有効期間が短く、自動的に更新される認証情報を取得します。

SDK for SAP ABAP - BTP edition

ウェブブラウザで ABAP 環境を開き、カスタムビジネス設定アプリケーションに移動します。

次の設定を完了します。

  • 「シナリオの設定」を参照してください。

    • グローバル設定の推奨事項に従って設定を変更します。

  • 「技術設定」に移動します。

    • グローバル設定の推奨事項に従って設定を変更します。

ステップ 4: 機能のセットアップ

セットアップ手順については、次のタブを参照してください。

SDK for SAP ABAP

トランザクション (コマンドバー/n/AWS1/IMG/AWS1/IMG 「」と入力し、「Enter」を選択します) を実行して AWSSDK の実装ガイドを開きます。

  • [アプリケーション設定][SDK プロファイル] に移動します。

    • [新規エントリ] を選択します。

      • プロファイル: DEMO

      • 説明: Demo profile

      • [保存] を選択します。

  • 作成したエントリを強調表示し、[認証と設定] ツリーブランチをクリックします。

    • [新規エントリ] を選択します。

      • SID: 現在使用している SAP システムのシステム ID。

      • クライアント: 現在使用している SAP システムのクライアント。

      • シナリオ ID: Basis 管理者が作成したデフォルトシナリオが表示されるドロップダウンリスト。

      • AWSリージョン: 呼び出し先のAWSリージョンを入力します。SAP システムが実行中の場合はAWS、実行中のAWSリージョンを入力します。

      • 認証方法:

        • SAP システムが Amazon EC2 で実行されている場合は、[メタデータを介したインスタンスロール] を選択します。

        • SAP システムがオンプレミスまたは他のクラウドで実行されている場合は、[SSF ストレージからの認証情報] を選択します。

          • [認証情報の設定] を選択します。

          • 前のステップで作成したアクセスキー ID とシークレットアクセスキーを入力します。

    • [IAM ロールを無効にする] は空白のままにしておきます。

    • [保存] を選択します。

  • [IAM ロールマッピング] ツリーブランチをクリックします。

    • [新規エントリ] を選択します。

      • [シーケンス番号] に 010 と入力します。

      • [論理 IAM ロール] に TESTUSER と入力します。

      • [IAM ロール ARN] に、前のステップで作成した TranslateReadOnly ポリシーを含む IAM ロールの arn:aws: を入力します。

SDK for SAP ABAP - BTP edition

SAP 認証情報ストアを使用して認証を設定します。詳細については、「SAP 認証情報ストアの使用」を参照してください。

ウェブブラウザで ABAP 環境を開き、カスタムビジネス設定アプリケーションに移動します。

  • SDK プロファイルに移動します。

    • 編集を選択して新しいプロファイルを作成します。

      • プロファイル: DEMO

      • 説明: Demo profile

  • 作成したエントリの横にある右矢印キーを選択して、認証と設定タブに移動します。

    [新規エントリ] を選択します。

    • SID: 現在使用している SAP システムのシステム ID。

    • クライアント: 現在使用している SAP システムのクライアント。

    • シナリオ ID: Basis 管理者が作成したデフォルトシナリオが表示されるドロップダウンリスト。

    • AWSリージョン: 呼び出し先のAWSリージョンを入力します。SAP システムが実行中の場合はAWS、実行中のAWSリージョンを入力します。

    • 認証方法: SAP 認証情報ストアから認証情報を選択します。

    • SAP 認証情報ストアに保存されている認証情報の名前空間キー名を入力します。

    • SDK for SAP ABAP - BTP エディションと SAP 認証情報ストア間の通信を確立するために作成された通信配置の名前を入力します。

    • [IAM ロールを無効にする] は空白のままにしておきます。

  • 作成したエントリの横にある右矢印キーを右クリックして、IAM ロールマッピングタブに移動します。

    [新規エントリ] を選択します。

    • [シーケンス番号] に 010 と入力します。

    • [論理 IAM ロール] に TESTUSER と入力します。

    • [IAM ロール ARN] に、前のステップで作成した TranslateReadOnly ポリシーを含む IAM ロールの arn:aws: を入力します。

ステップ 5: SAP ユーザーを承認する

SAP ユーザーには、デフォルトでAWS機能を使用する権限がありません。ユーザーは SAP 認証を使用して明示的に認証を受ける必要があります。詳細については、次のタブを参照してください。

SDK for SAP ABAP

PFCG ロールを作成する

  • トランザクション PFCG に移動します

  • ロール名 ZAWS_SDK_DEMO_TESTUSER を入力し、[単一ロールを作成] を選択します。

    • 説明: Role for demo AWS SDK functionality

    • [認証] タブに移動します。

    • 承認データの変更を選択し、情報ポップアップを受け入れます。

    • [テンプレートを選択] ポップアップで、[テンプレートを選択しない] を選択します。

    • ツールバーから [手動で追加] を選択します。

    • 以下の認可オブジェクトを追加します。

      • /AWS1/LROL

      • /AWS1/SESS

    • 認可ツリーに次のように入力します。

      • AWS API にアクセスするためのプロファイル: DEMO

      • 論理 IAM ロール: TESTUSER

    • [保存] を選択します。

    • [生成] を選択します。

    • [戻る] を選択します。

    • [保存] を選択してロールを保存します。

PFCG ロールを SAP ユーザーに割り当てる

ZAWS_SDK_DEMO_TESTUSER ロールが割り当てられているユーザーには、AWSSDK プロファイルで設定された設定で DEMO SDK 関数を使用する権限が付与されます。また、承認されたユーザーは、そのプロファイルの TESTUSER 論理 IAM ロールにマップされた IAM ロールも引き受けます。

  • トランザクション SU01 を実行します。

    • AWSSDK 機能をテストする SAP ユーザーのユーザー ID を入力します。

    • [変更] を選択します。

    • [ロール] タブに移動し、ユーザーに ZAWS_SDK_DEMO_TESTUSER ロールを割り当てます。

    • [保存] を選択します。

SDK for SAP ABAP - BTP edition

ビジネスロールを作成する

  • ウェブブラウザで ABAP 環境を開き、ビジネスロールの維持アプリケーションに移動します。

  • テンプレートから作成を選択し、次の詳細を入力します。

    • テンプレート – を選択します/AWS1/RT_BTP_ENDUSER

    • 新しいビジネスロール ID – ID を入力します。

    • 新しいビジネスロールの説明 – 説明を入力します。

  • OK を選択すると、ビジネスロールのページが表示されます。

  • 一般ロールの詳細タブで、アクセスカテゴリに移動し、書き込み、読み取り、値ヘルプフィールドを制限付きに設定します。

  • 制限の維持を選択し、左側のナビゲーションペインから割り当てられた制限タイプを展開します。「制限と値」セクションの次のフィールドを更新します。

    • SDK セッションの選択で、SDK プロファイルの横にある鉛筆アイコンを選択し、範囲タブに移動します。と入力しDEMO追加を選択します。

    • 「論理 IAM ロールの選択」で、論理 IAM ロールの横にある鉛筆アイコンを選択し、範囲タブに移動します。 と入力しTESTUSER追加を選択します。

      SDK プロファイルの横にある鉛筆アイコンを選択し、範囲タブに移動します。を入力しDEMO追加 を選択します。

  • ビジネスロールテンプレートに戻り、ビジネスユーザータブを開きます。追加 を選択して、SDK 機能をテストする SAP ビジネスユーザーに新しく作成されたビジネスロールを割り当てます。[保存] を選択します。

作成されたビジネスロールに割り当てられたビジネスユーザーは、AWSSDK プロファイルで設定された設定で DEMO SDK 関数を使用する権限が付与されます。また、承認されたユーザーは、そのプロファイルの TESTUSER 論理 IAM ロールにマップされた IAM ロールも引き受けます。

ステップ 6: コードを記述する

詳細については、次のタブを参照してください。

SDK for SAP ABAP
  1. トランザクション SE38 を開きます。

    • プログラム名として ZDEMO_TRANSLATE_HELLO_WORLD を入力します。

    • Create を選択します。

    • タイトルとして AWS SDK Hello World In Any Language を入力します。

    • タイプ: [実行プログラム] を選択します。

    • ステータス: [テストプログラム] を選択します。

    • [保存] を選択します。

    • プログラムをローカルオブジェクトとして保存します。

次のコードを追加します

*&---------------------------------------------------------------------* *& Report  ZAWS1_DEMO_XL8_SIMPLE *& *&---------------------------------------------------------------------* *& A simple demo of language translation with AWS Translate *& *&---------------------------------------------------------------------* REPORT zaws1_demo_xl8_simple. START-OF-SELECTION.   PARAMETERS pv_text TYPE /aws1/xl8boundedlengthstring DEFAULT 'Hello, World' OBLIGATORY.   PARAMETERS pv_lang1 TYPE languageiso DEFAULT 'EN' OBLIGATORY.   PARAMETERS pv_lang2 TYPE languageiso DEFAULT 'ES' OBLIGATORY.   TRY.       DATA(go_session) = /aws1/cl_rt_session_aws=>create( 'DEMO' ).       DATA(go_xl8)     = /aws1/cl_xl8_factory=>create( go_session ).       DATA(lo_output) = go_xl8->translatetext(            iv_text               = pv_text            iv_sourcelanguagecode = CONV /aws1/xl8languagecodestring( pv_lang1 )            iv_targetlanguagecode = CONV /aws1/xl8languagecodestring( pv_lang2 )       ).       WRITE: / 'Source Phrase: ', pv_text.       WRITE: / 'Target Phrase: ', lo_output->get_translatedtext( ).     CATCH /aws1/cx_xl8unsuppedlanguage00 INTO DATA(lo_lang).       WRITE: / 'ERROR' COLOR COL_NEGATIVE,                'Cannot translate from',                lo_lang->sourcelanguagecode,                'to',                lo_lang->targetlanguagecode.     CATCH cx_root INTO DATA(lo_root).       WRITE: / 'ERROR' COLOR COL_NEGATIVE, lo_root->get_text( ).   ENDTRY.
SDK for SAP ABAP - BTP edition
  1. ABAP クラスを作成する必要があるパッケージを右クリックし、新規 > ABAP クラスを選択します。

  2. クラス名ZCL_DEMO_XL8_SIMPLEに を入力し、クラスの説明を追加します。[次へ] を選択してください。

  3. トランスポートリクエストを作成または選択します。完了 を選択します。

次のコードを追加します

CLASS zcl_demo_xl8_simple DEFINITION PUBLIC FINAL CREATE PUBLIC . PUBLIC SECTION. INTERFACES if_oo_adt_classrun. PROTECTED SECTION. PRIVATE SECTION. ENDCLASS. CLASS zcl_demo_xl8_simple IMPLEMENTATION. METHOD if_oo_adt_classrun~main. TRY. " input parameters DATA(pv_text) = |Hello, World|. DATA(pv_lang1) = |EN|. DATA(pv_lang2) = |ES|. DATA(go_session) = /aws1/cl_rt_session_aws=>create( 'DEMO' ). DATA(go_xl8) = /aws1/cl_xl8_factory=>create( go_session ). DATA(lo_output) = go_xl8->translatetext( iv_text = pv_text iv_sourcelanguagecode = pv_lang1 iv_targetlanguagecode = pv_lang2 ). out->write( |Source Phrase: { pv_text }| ). out->write( |Target Phrase: { lo_output->get_translatedtext( ) }| ). CATCH /aws1/cx_xl8unsuppedlanguage00 INTO DATA(lo_lang). out->write( |ERROR - Cannot translate from { lo_lang->sourcelanguagecode } to { lo_lang->targetlanguagecode }| ). CATCH cx_root INTO DATA(lo_root). out->write( |ERROR - { lo_root->get_text( ) }| ). ENDTRY. ENDMETHOD. ENDCLASS.

SDK を使用する ABAP コードを記述する方法の詳細については、「 AWS SDK for SAP ABAPの使用」を参照してください。

ステップ 7: アプリケーションを実行する

詳細については、次のタブを参照してください。

SDK for SAP ABAP

SE38 でアプリケーションを実行します。成功すると、次のような出力が表示されます。

Source Phrase: Hello, World Target Phrase: Hola, mundo

認証、設定、または Basis の前提条件を満たしていない場合、エラーメッセージが表示されることがあります。次の例を参照してください。

ERROR Could not find configuration under profile DEMO with scenario DEFAULT for SBX:001

SAP ロールで SDK プロファイルの使用と論理 IAM ロールへのマッピングが許可されているのに、SAP システムが IAM ロールを引き受けるように IAM 権限が設定されていない場合、次のような出力になります。

ERROR Could not assume role arn:aws:iam::111122223333:role/SapDemoTranslate

この場合は、ステップ 1: AWSアカウントを準備する で定義されている IAM ロール、ユーザー、またはその両方で IAM 権限と信頼設定を確認してください。

SDK for SAP ABAP - BTP edition

Eclipse > Run As > ABAP Application (コンソール) でアプリケーションを実行します。成功すると、次のような出力が表示されます。

Source Phrase: Hello, World Target Phrase: Hola, mundo

認証、設定、または Basis の前提条件を満たしていない場合、エラーメッセージが表示されることがあります。次の例を参照してください。

ERROR Could not find configuration under profile DEMO with scenario DEFAULT for SBX:001

SAP ロールで SDK プロファイルの使用と論理 IAM ロールへのマッピングが許可されているのに、SAP システムが IAM ロールを引き受けるように IAM 権限が設定されていない場合、次のような出力になります。

ERROR Could not assume role arn:aws:iam::111122223333:role/SapDemoTranslate

この場合は、ステップ 1: AWSアカウントを準備する で定義されている IAM ロール、ユーザー、またはその両方で IAM 権限と信頼設定を確認してください。