From f20382674b06e9369475600d2da7c190ab18fbc1 Mon Sep 17 00:00:00 2001 From: Jason Wong Date: Wed, 20 Jul 2022 14:41:44 +0900 Subject: [PATCH] Adds JP translation for processBeforeResponse & AWS guide (#1524) Co-authored-by: Kazuhiro Sera --- docs/_deployments/aws-lambda.md | 6 ++-- docs/_deployments/ja_aws-lambda.md | 44 ++++++++++++++++-------------- docs/_tutorials/ja_reference.md | 6 ++-- 3 files changed, 29 insertions(+), 27 deletions(-) diff --git a/docs/_deployments/aws-lambda.md b/docs/_deployments/aws-lambda.md index 99df595fb..803cdd6ab 100644 --- a/docs/_deployments/aws-lambda.md +++ b/docs/_deployments/aws-lambda.md @@ -68,7 +68,7 @@ The [Serverless Framework][serverless-framework] includes tools that let you eas **1. Install the Serverless Framework CLI** -The Serverless tools are available as a Command Line Interface (CLI) and can be [installed on macOS, Windows, or Linux](https://www.serverless.com/framework/docs/getting-started/). Check out the [Serverless Getting Started documentation](https://www.serverless.com/framework/docs/getting-started/) for instructions on how to install. +The Serverless tools are available as a Command Line Interface (CLI) and can be installed on macOS, Windows, or Linux. Check out the [Serverless Getting Started documentation](https://www.serverless.com/framework/docs/getting-started/) for instructions on how to install. Once the installation is complete, test the Serverless CLI by displaying the commands available to you: @@ -139,7 +139,7 @@ const app = new App({ // When using the AwsLambdaReceiver, processBeforeResponse can be omitted. // If you use other Receivers, such as ExpressReceiver for OAuth flow support // then processBeforeResponse: true is required. This option will defer sending back - // the acknowledgement until after your handler has run to ensure your function + // the acknowledgement until after your handler has run to ensure your handler // isn't terminated early by responding to the HTTP request that triggered it. // processBeforeResponse: true @@ -186,7 +186,7 @@ plugins: ``` > 💡 `SLACK_SIGNING_SECRET` and `SLACK_BOT_TOKEN` must be enviornment variables on your local machine. -> You can [learn how to export Slack environment variables](/bolt-js/tutorial/getting-started#setting-up-your-local-project) in our Getting Started guide. +> You can [learn how to export Slack environment variables](/bolt-js/tutorial/getting-started#setting-up-your-project) in our Getting Started guide. **3. Install Serverless Offline** diff --git a/docs/_deployments/ja_aws-lambda.md b/docs/_deployments/ja_aws-lambda.md index d866e4199..676426e0e 100644 --- a/docs/_deployments/ja_aws-lambda.md +++ b/docs/_deployments/ja_aws-lambda.md @@ -64,22 +64,16 @@ aws configure ### Serverless Framework をセットアップする -[Serverless Framework](https://www.serverless.com/open-source/) では、AWS Lambda 向けのアプリの設定、デバッグ、デプロイを簡単に行うためのツールが用意されています。 +[Serverless Framework][serverless-framework] では、AWS Lambda 向けのアプリの設定、デバッグ、デプロイを簡単に行うためのツールが用意されています。 **1. Serverless Framework CLI をインストールする** -Serverless でも [macOS、Windows、Linux](https://www.serverless.com/framework/docs/getting-started/) にインストールして利用できるコマンドラインインターフェイス(CLI)のツールが用意されています。インストールには npm を使用します。次のコマンドを実行してください。 - -```shell -npm install --save-dev serverless -``` - -> 💡 [Serverless CLI をグローバルにインストールする](https://www.serverless.com/framework/docs/getting-started/)こともできます。その場合は`npm install -g serverless` というコマンドを実行します。 +Serverless でも macOS、Windows、Linux にインストールして利用できるコマンドラインインターフェイス(CLI)のツールが用意されています。インストールするには Serverless の[入門ガイド(英語)](https://www.serverless.com/framework/docs/getting-started/) をお読みください。 インストールが完了したら Serverless CLI をテストするため、利用可能なコマンドを表示してみましょう。 ```shell -npx serverless help +serverless help ``` Serverless のツールのセットアップが完了しました。次に、AWS Lambda 関数として実行する Bolt アプリの準備へと進みましょう。 @@ -139,13 +133,16 @@ const awsLambdaReceiver = new AwsLambdaReceiver({ // ボットトークンと、AWS Lambda に対応させたレシーバーを使ってアプリを初期化します。 const app = new App({ - token: process.env.SLACK_BOT_TOKEN, - receiver: awsLambdaReceiver, - // `processBeforeResponse` オプションは、あらゆる FaaS 環境で必須です。 - // このオプションにより、Bolt フレームワークが `ack()` などでリクエストへの応答を返す前に - // `app.message` などのメソッドが Slack からのリクエストを処理できるようになります。FaaS では - // 応答を返した後にハンドラーがただちに終了してしまうため、このオプションの指定が重要になります。 - processBeforeResponse: true + token: process.env.SLACK_BOT_TOKEN, + receiver: awsLambdaReceiver, + + // AwsLambdaReceiver を利用する場合は `processBeforeResponse` は省略可能です。 + // OAuth フローに対応した ExpressReceiver など、他のレシーバーを使用する場合、 + // `processBeforeResponse: true` が必要になります。 + // このオプションは、ハンドラーの実行が完了するまで応答を返すのを遅延させます。 + // これによってハンドラーがトリガーとなった HTTP リクエストに応答を返すことでただちに終了されることを防ぐことができます。 + + //processBeforeResponse: true }); ``` @@ -187,7 +184,7 @@ plugins: - serverless-offline ``` -> 💡 `SLACK_SIGNING_SECRET` と `SLACK_BOT_TOKEN` の環境変数は、ローカルマシンで設定しておく必要があります。[Slack の環境変数をエクスポートする方法](/bolt-js/tutorial/getting-started#setting-up-your-local-project)を入門ガイドで参照してください。 +> 💡 `SLACK_SIGNING_SECRET` と `SLACK_BOT_TOKEN` の環境変数は、ローカルマシンで設定しておく必要があります。[Slack の環境変数をエクスポートする方法](/bolt-js/tutorial/getting-started#setting-up-your-project)を入門ガイドで参照してください。 **3. serverless-offline モジュールをインストールする** @@ -209,11 +206,12 @@ npm install --save-dev serverless-offline **1. ローカルのサーバーを起動する** -まず、AWS Lambda 関数のイベントをリッスンするため、`serverless offline` コマンドを実行します。 +まず、アプリの起動と AWS Lambda 関数のイベントをリッスンするため、`serverless offline` コマンドを実行します。 ```zsh -npx serverless offline --noPrependStageInUrl +serverless offline --noPrependStageInUrl ``` +> 🏌️ Pro-tip: 別のターミナルで上記のコマンドを実行しておくことで、ターミナル上でアプリのコードを変更することができます。コードの変更を保存する度、アプリは自動的にリロードされます。 次に、ngrok を使って Slack のイベントをローカルマシンに転送します。 @@ -252,6 +250,8 @@ Slack アプリをテストします。今作った Bolt アプリを Slack の ### アプリをデプロイする +今までローカルでアプリを実行し、 Slack ワークスペースでテストをしてきました。さて、動作するアプリができたので、デプロイしてみましょう! + AWS Lambda 向けのアプリのプロビジョニング、パッケージング、デプロイには、Serverless Framework のツールが利用できます。アプリのデプロイが完了したら、アプリのリクエスト URL を更新して、「hello」と入力した時にアプリが応答できるようにします。✨ **1. AWS Lambda にアプリをデプロイする** @@ -259,7 +259,7 @@ AWS Lambda 向けのアプリのプロビジョニング、パッケージング 次のコマンドを使って AWS Lambda にアプリをデプロイします。 ```shell -npx serverless deploy +serverless deploy # Serverless:Packaging service... # ... # endpoints: @@ -309,11 +309,13 @@ app.message('goodbye', async ({ message, say }) => { 先ほどと同じコマンドを使って更新をデプロイします。 ```shell -npx serverless deploy +serverless deploy ``` デプロイが完了したら、アプリを参加させた Slack チャンネルを開いて、半角の小文字で「goodbye」と入力してみましょう。Slack アプリに「See you later」と表示されるはずです。 +> ⛳️ 一つの関数に小さな変更を加える場合、その関数だけをデプロイするためにより高速な `serverless deploy function -f my-function` を実行することができます。より詳細なヘルプを見るには `serverless help deploy function` を実行してください。 + --- ### 次のステップ diff --git a/docs/_tutorials/ja_reference.md b/docs/_tutorials/ja_reference.md index 591264c3c..59ede122f 100644 --- a/docs/_tutorials/ja_reference.md +++ b/docs/_tutorials/ja_reference.md @@ -88,8 +88,8 @@ Bolt には、アプリをカスタマイズするためのさまざまな初期 | :---: | :--- | | `signingSecret` | アプリの設定の「Basic Information」から取得した 文字列。受信イベントが Slack から送信されたものであることを検証するために使用されます。 | | `endpoints` | レシーバーが Slack からの受信リクエストをリッスンするエンドポイントを指定する文字列または `オブジェクト`。現在、オブジェクトに指定できるキーはラベルとしての任意の文字列のみで、値にはカスタムのエンドポイントを指定します(例 : `/myapp/events`)。**デフォルトでは `/slack/events` というエンドポイントにすべてのイベントが送信されます。** | -| `processBeforeResponse` | イベントに対して即座に確認の応答を返すどうかを指定する真偽値。これは、主に FaaS プラットフォームでアプリを実行する場合に有用な設定です。 `true` に設定することでイベントのリスナーが予期せず終了することを防ぎます。デフォルトは `false` です。 | -| `clientId` | アプリの設定で指定した、クライアントの ID を示す 文字列。[OAuth の設定を行うために必要です](/bolt-js/concepts#authenticating-oauth)。 | +| `processBeforeResponse` | イベントに対して即座に確認の応答を返すかどうかを指定する真偽値。リクエストへの応答が完了するとリスナーはただちに終了してしまうため、FaaS プラットフォームでアプリを実行する場合に有用な設定です。 `true` に設定すると早期終了を防ぐためにハンドラーが実行されるまで応答を返すのを遅らせます。デフォルトは `false` です。 | +| `clientId` | アプリの設定で指定した、クライアントの ID を示す文字列。[OAuth の設定を行うために必要です](/bolt-js/concepts#authenticating-oauth)。 | | `clientSecret` | アプリの設定で指定した、クライアントのシークレットキーを示す 文字列。[OAuth の設定を行うために必要です](/bolt-js/concepts#authenticating-oauth)。 | | `stateSecret` | CSRF 攻撃を防ぐために [OAuth の設定時](/bolt-js/concepts#authenticating-oauth)に渡すことができる、推奨のパラメーター(文字列)。 | | `installationStore` | [OAuth の設定時](/bolt-js/ja-jp/concepts#authenticating-oauth)に、インストールデータの保存・取得・削除の手段を定義します。`fetchInstallation` 、`storeInstallation`、`deleteInstallation` という 3 つのメソッドが含まれます。デフォルトの `installationStore` はインメモリストアです。 | @@ -102,7 +102,7 @@ Bolt には、アプリをカスタマイズするためのさまざまな初期 | `signatureVerification` | Bolt が Slack からの受信リクエストの署名を検証するかどうかを指定する真偽値。 デフォルトは `true` です。 | ### App オプション -App オプションは、`App` のコンストラクターに渡します。 +App オプションは、`App` のコンストラクターに渡します。`receiver` 引数が設定されない場合 `App` コンストラクターは上記の[ `receiver` オプション](#レシーバーオプション)を受け取り、それを用いて `socketMode` の値に応じて `HttpReceiver` または `SocketModeReceiver` を初期化します。 | オプション | 説明 | | :---: | :--- |