スキルインスタンスのコンフィギュレーション
Skill
Skill
オブジェクトは、すべてのスキルロジックを統合したものです。このオブジェクトは、AttributesManager
やServiceClientFactory
などのSDKユーティリティを初期化し、リクエスト処理プロセスを開始します。
利用可能なメソッド
def invoke(self, request_envelope, context):
# type: (RequestEnvelope, Any) -> ResponseEnvelope
スキルビルダー
SDKには、Skill
インスタンスの作成、カスタムユーザーエージェントの設定、Lambda統合ハンドラーの作成を行うユーティリティメソッドを提供するSkillBuilder
が含まれています。構造は次のとおりです。
class SkillBuilder(object):
def __init__(self):
# リクエストコンポーネント、例外ハンドラー、インターセプターの
# 空のコレクションを初期化します。
def add_request_handler(self, handler):
# type: (AbstractRequestHandler) -> None
....
def add_exception_handler(self, handler):
# type: (AbstractExceptionHandler) -> None
....
def add_global_request_interceptor(self, interceptor):
# type: (AbstractRequestInterceptor) -> None
....
def add_global_response_interceptor(self, interceptor):
# type: (AbstractResponseInterceptor) -> None
....
@property
def skill_configuration(self):
# type: () -> SkillConfiguration
# 登録されたコンポーネントを使用してコンフィギュレーションオブジェクトを作成します
....
def create(self):
# type: () -> Skill
# スキルコンフィギュレーションを使用してスキルを作成します
....
def lambda_handler(self):
# type: () -> LambdaHandler
# AWS Lambdaハンドラーにタグ付けできるLambdaハンドラー関数を
# 作成します。
# スキルを呼び出す前にAlexaのリクエストを処理し、
# サービスに提供する前にAlexaの応答を処理します
....
def request_handler(self, can_handle_func):
# type: (Callable[[HandlerInput], bool]) -> None
# リクエストハンドラーのデコレーター
def exception_handler(self, can_handle_func):
# type: (Callable[[HandlerInput, Exception], bool]) -> None
# 例外ハンドラーのデコレーター
def global_request_interceptor(self):
# type: () -> None
# グローバルリクエストインターセプターのデコレーター
def global_response_interceptor(self):
# type: () -> None
# グローバル応答インターセプターのデコレーター
SkillBuilder
クラスには2つの拡張機能CustomSkillBuilder
およびStandardSkillBuilder
があります。
CustomSkillBuilderクラス
CustomSkillBuilder
は、ask-sdk-core
とask-sdk
パッケージの両方で使用できます。上の共通のヘルパー関数に加えて、CustomSkillBuilder
にもAbstractPersistentAdapter
とask_sdk_model.services.ApiClient
クラスのカスタム実装を登録できる関数があります。
class CustomSkillBuilder(SkillBuilder):
def __init__(self, persistence_adapter=None, api_client=None):
# type: (AbstractPersistenceAdapter, ApiClient) -> None
....
@property
def skill_configuration(self):
# 登録された永続アダプターとAPIクライアントを基に、
# スキルビルダーからスキルコンフィギュレーションを作成します
....
StandardSkillBuilderクラス
StandardSkillBuilder
はask-sdk
パッケージでのみ使用できます。これはpersistence_adapterをask_sdk_dynamo.adapter.DynamoDbPersistenceAdapter
として、api_clientをask_sdk_core.api_client.DefaultApiClient
として使用し、持続性機能およびサービスクライアント機能を提供するCustomSKillBuilderのラッパーです。また、Dynamo DBテーブルオプションを設定するオプションのパラメーターも提供します。
class StandardSkillBuilder(SkillBuilder):
def __init__(self,
table_name=None, auto_create_table=None,
partition_keygen=None, dynamodb_client=None):
# type: (str, bool, Callable[[RequestEnvelope], str], ServiceResource) -> None)
....
@property
def skill_configuration(self):
# 登録された永続アダプターとAPIクライアントを基に、
# および指定されたテーブルコンフィギュレーションオプションを基に、
# スキルビルダーからスキルコンフィギュレーションを作成します
....