

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

# AS2 メッセージの HTTP ヘッダーをカスタマイズする
<a name="as2-custom-http-headers"></a>

AS2 メッセージを取引相手に送信するときは、特定の要件を満たすように HTTP ヘッダーをカスタマイズするか、パートナーの AS2 サーバー設定との互換性を強化する必要がある場合があります。この CloudFormation テンプレートは、 を介して送信される AS2 メッセージ用にカスタマイズされた HTTP ヘッダーを有効にするインフラストラクチャを作成します AWS Transfer Family。プロキシとして機能するように Amazon API Gateway と Lambda 関数を設定し、取引相手の AS2 サーバーに必要なヘッダーを動的に変更できるようにします。

このテンプレートを使用して、以下を実行します。
+ アウトバウンド AS2 メッセージにカスタム HTTP ヘッダーを追加する
+ デフォルトのヘッダー値をカスタム値で上書きする
**重要**  
送信に失敗する可能性があるため、デフォルトのヘッダー値を上書きするときは注意してください。一部の AS2 ヘッダーが必要です。
+ 特定のヘッダー要件を持つ取引相手との互換性を確保する

## テンプレートの概要
<a name="template-overview"></a>

テンプレートは、次の主要コンポーネントを作成します。
+ AS2 メッセージを処理して転送する Lambda 関数
+ Lambda 関数を公開する Amazon API Gateway 
+ Lambda 関数の IAM ロールとアクセス許可
+ HTTPS サポートの条件付きリソース

テンプレートファイルは、[動的 HTTP ヘッダーテンプレート](https://s3.amazonaws.com/aws-transfer-resources/as2-templates/dynamic-http-headers.template.yml)から入手できます。

## 仕組み
<a name="how-it-works"></a>

1. Amazon API Gateway は、 から受信 AS2 メッセージを受信します AWS Transfer Family。

1. リクエストは Lambda 関数に転送されます。

1. Lambda 関数はリクエストを処理し、必要に応じてヘッダーを追加または変更します。

1. その後、変更されたリクエストはパートナーの AS2 サーバーに転送されます。

1. パートナーのサーバーからのレスポンスは、Lambda と Amazon API Gateway を介して に返されます AWS Transfer Family。

## 主な機能
<a name="key-features"></a>
+ *動的ヘッダー変更:* サブジェクトヘッダーのカスタマイズと、その他の必須ヘッダーの追加を許可します。
+ *プロトコルのサポート:* HTTP プロトコルと HTTPS プロトコルの両方で動作します。
+ *柔軟な設定:* パートナーホスト、ポート、パスの指定を許可します。

## 実装の詳細
<a name="implementation-details"></a>

テンプレートは、次の主要なコンポーネントを実装します。

### Lambda 関数
<a name="lambda-function"></a>

ソリューションの中核となるのは、以下の Node.js Lambda 関数です。
+ Amazon API Gateway からリクエストを受信する
+ 設定と受信リクエストデータに基づいてヘッダーを変更します
+ 変更されたリクエストをパートナーの AS2 サーバーに転送します
+ HTTP プロトコルと HTTPS プロトコルの両方を処理します
+ エラー処理とログ記録を含む

### Amazon API Gateway
<a name="api-gateway"></a>

HTTP API は次のように設定されます。
+ 受信 AS2 メッセージを受信する
+ Lambda 関数にリクエストをルーティングする
+ レスポンスを に返す AWS Transfer Family

### テンプレートパラメータ
<a name="as2-header-template-parameter-details"></a>

次のようにテンプレートパラメータの情報を入力します。これらのパラメータはすべて文字列であることに注意してください。
+ `Environment`: このパラメータは、テンプレートが作成するリソースに名前を付けるために使用されます。開発環境と本番環境のどちらを対象としているかを示します。有効な値は **dev** と **prod** です。
+ `PartnerHost`: AS2 パートナーサーバーの IP アドレスまたはホスト名。
+ `PartnerPort`: AS2 パートナーサーバーのポート番号。指定しない場合、デフォルトは HTTP の場合は 80、HTTPS の場合は 443 です。
+ `PartnerPath`: パートナーサーバーの AS2 エンドポイントへのパス
+ `ProtocolType`: AS2 通信に使用するプロトコル: 有効な値は **HTTP** と **HTTPS** です。

### 条件付きリソース
<a name="conditional-resources"></a>

HTTPS サポートの場合、テンプレートは条件付きで以下を作成します。
+ CA 証明書用の Lambda レイヤー
+ Lambda 関数の HTTPS 固有の設定

## デプロイと使用
<a name="deployment-and-usage"></a>

**CloudFormation テンプレートを使用して AS2 HTTP ヘッダーをカスタマイズするには**

1. [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/) で CloudFormation コンソールを開きます。

1. 左のナビゲーションペインで **[Stacks]** (スタック) をクリックします。

1. [**スタックの作成**] を選択し、[**With new resources (standard) 新しいリソースを使用 (標準)**] を選択します。

1. **「前提条件 - テンプレートを準備する**」セクションで、**「既存のテンプレートを選択する**」を選択します。

1. このリンク、[動的 HTTP ヘッダーテンプレート](https://s3.amazonaws.com/aws-transfer-resources/as2-templates/dynamic-http-headers.template.yml)をコピーし、**Amazon S3 URL **フィールドに貼り付けます。

1. [**次へ**] を選択します。

1. パラメータの詳細に情報を入力します。詳細については、「」を参照してください[テンプレートパラメータ](#as2-header-template-parameter-details)。

1. [**次へ**] を選択します。[**スタックオプションの設定**] ページで、[**次へ**] を選択します。

1. 作成しようとするスタックの詳細を確認してから [**スタックの作成**] を選択します。
**注記**  
ページの下部の**「機能**」で、 が AWS Identity and Access Management (IAM) リソースを作成する CloudFormation 可能性があることを承認する必要があります。

この CloudFormation スタックをデプロイした後:

1. スタック出力で提供されている Amazon API Gateway エンドポイント URL を書き留めます。

1. 既存の AWS Transfer Family Connector を更新して、この新しい Amazon API Gateway エンドポイントを使用します。

1. これで、ソリューションは AS2 メッセージを処理し、設定に従ってヘッダーを追加または変更します。

**警告**  
サブジェクトヘッダーを変更するか、パートナーが明示的に期待するヘッダーのみを追加します。他のヘッダーを変更すると、転送が失敗する可能性があります。