翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
の開始方法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 システムが 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、またはその他のクラウドにある場合は、次の手順を使用して、シークレットアクセスキーを使用した認証用の接続を確立します。
-
IAM ユーザーを作成します。詳細については、「IAM ユーザーの作成 (コンソール)」を参照してください。
-
IAM ユーザーの名前として SapDemoSID を使用します。SID は、SAP システムのシステム ID です。
-
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 エディションのインストール」を参照してください。
SDK を設定する前に、必要な認可があることを確認してください。詳細については、「SAP 認可」を参照してください。
設定手順については、次のタブを参照してください。
- SDK for SAP ABAP
-
/AWS1/IMG トランザクションを実行して、 SDK for SAP ABAP の実装ガイドを開きます。このトランザクションを実行するには、SAP システムのコマンドバーに /n/AWS1/IMG と入力し、[Enter] を選択します。
次の設定を完了します。
-
[技術的前提条件] に移動します。
-
[グローバル設定] → [シナリオの設定] に移動します。
-
[グローバル設定] → [技術設定] に移動します。
-
[ランタイム設定] → [ログとトレース] に移動します。
-
[新規エントリ] を選択します。
-
[保存] を選択します。
-
[ランタイム設定] → [アクティブシナリオ] に移動します。
オンプレミスシステムの前提条件
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
-
[保存] を選択します。
-
作成したエントリを強調表示し、[認証と設定] ツリーブランチをクリックします。
-
[IAM ロールマッピング] ツリーブランチをクリックします。
- SDK for SAP ABAP - BTP edition
-
SAP 認証情報ストアを使用して認証を設定します。詳細については、「SAP 認証情報ストアの使用」を参照してください。
ウェブブラウザで ABAP 環境を開き、カスタムビジネス設定アプリケーションに移動します。
ステップ 5: SAP ユーザーを承認する
SAP ユーザーには、デフォルトでAWS機能を使用する権限がありません。ユーザーは SAP 認証を使用して明示的に認証を受ける必要があります。詳細については、次のタブを参照してください。
- SDK for SAP ABAP
-
PFCG ロールを作成する
PFCG ロールを SAP ユーザーに割り当てる
ZAWS_SDK_DEMO_TESTUSER ロールが割り当てられているユーザーには、AWSSDK プロファイルで設定された設定で DEMO SDK 関数を使用する権限が付与されます。また、承認されたユーザーは、そのプロファイルの TESTUSER 論理 IAM ロールにマップされた IAM ロールも引き受けます。
- 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
-
-
トランザクション 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
-
-
ABAP クラスを作成する必要があるパッケージを右クリックし、新規 > ABAP クラスを選択します。
-
クラス名ZCL_DEMO_XL8_SIMPLEに を入力し、クラスの説明を追加します。[次へ] を選択してください。
-
トランスポートリクエストを作成または選択します。完了 を選択します。
次のコードを追加します。
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 権限と信頼設定を確認してください。