src.aws_resources.lambda_function package

Submodules

src.aws_resources.lambda_function.request module

class src.aws_resources.lambda_function.request.Request(event)

Bases: object

Lambda関数のリクエストイベントを解析するクラス。

API Gatewayから受取ったイベントを解析し、インスタンスIDやドライランフラグを取出す。

Parameters:

event (dict) – API Gatewayから受取ったイベント。

property dry_run

ドライランモードの場合は真を表す真偽値。

Type:

bool

extract(event)

イベントからボディを取出す。

Parameters:

event (dict) – API Gatewayから受取ったイベント。

Returns:

取出したボディ。ボディが空の場合は空のdict。

Return type:

dict

property instance_id

EC2インスタンスID。

Type:

str

property state

リクエストの現在の状態。

リクエストの現在の状態を表す。 本クラスの各種メソッドを呼出すタイミングによって自動的に変化する。

Type:

State

class src.aws_resources.lambda_function.request.State(*values)

Bases: Enum

リクエストの状態を表す列挙子。

BODY_HAS_NOT_INSTANCE_ID = 4

ボディにinstance_idが含まれない状態。

Type:

int

BODY_IS_EMPTY = 2

ボディが空の状態。

Type:

int

BODY_IS_NOT_JSON = 3

ボディがJSON形式でない状態。

Type:

int

BODY_IS_VALID = 5

ボディが正常に解析できた状態。

Type:

int

UNDEFINED = 1

初期状態。

Type:

int

src.aws_resources.lambda_function.response module

class src.aws_resources.lambda_function.response.AcceptedState

Bases: State

EC2インスタンスの起動を受付けた状態 (202: Accepted)。

EC2インスタンスの起動リクエストを正常に受付けた場合に返す。

property body_message

レスポンスボディに設定する文字列。

Type:

str

property status_code

HTTPステータスコード。

Type:

int

class src.aws_resources.lambda_function.response.BodyHasNotInstanceIdState

Bases: State

リクエストボディにinstance_idが含まれない状態 (400: Bad Request)。

受取ったリクエストボディのJSONにinstance_idキーが存在しない場合に返す。

property body_message

レスポンスボディに設定する文字列。

Type:

str

property status_code

HTTPステータスコード。

Type:

int

class src.aws_resources.lambda_function.response.BodyIsEmptyState

Bases: State

リクエストボディが空の状態 (400: Bad Request)。

受取ったリクエストにボディが存在しない場合に返す。

property body_message

レスポンスボディに設定する文字列。

Type:

str

property status_code

HTTPステータスコード。

Type:

int

class src.aws_resources.lambda_function.response.BodyIsNotJsonState

Bases: State

リクエストボディがJSON形式でない状態 (400: Bad Request)。

受取ったリクエストボディのパースに失敗した場合に返す。

property body_message

レスポンスボディに設定する文字列。

Type:

str

property status_code

HTTPステータスコード。

Type:

int

class src.aws_resources.lambda_function.response.EC2InstanceIdIsInvalidState

Bases: State

EC2インスタンスIDが無効な状態 (400: Bad Request)。

インスタンスIDが文字列でない、または対象のEC2インスタンスが存在しない場合に返す。

property body_message

レスポンスボディに設定する文字列。

Type:

str

property status_code

HTTPステータスコード。

Type:

int

class src.aws_resources.lambda_function.response.EC2InstanceIsAlreadyRunningState

Bases: State

EC2インスタンスが既に起動中の状態 (409: Conflict)。

起動リクエスト時にEC2インスタンスが既に起動中だった場合に返す。

property body_message

レスポンスボディに設定する文字列。

Type:

str

property status_code

HTTPステータスコード。

Type:

int

class src.aws_resources.lambda_function.response.IgnoreState

Bases: State

ドライランモードで実行した状態 (200: OK)。

ドライランモードで実行したため、実際の起動を行わなかった場合に返す。

property body_message

レスポンスボディに設定する文字列。

Type:

str

property status_code

HTTPステータスコード。

Type:

int

class src.aws_resources.lambda_function.response.InsufficientCapacityState

Bases: State

EC2インスタンスのキャパシティが不足している状態 (503: Service Unavailable)。

EC2インスタンスの起動時にインスタンスタイプのキャパシティ不足が発生した場合に返す。

property body_message

レスポンスボディに設定する文字列。

Type:

str

property status_code

HTTPステータスコード。

Type:

int

class src.aws_resources.lambda_function.response.NoneState

Bases: State

状態未設定時のデフォルト状態 (500: Internal Server Error)。

予期しないエラーとなった場合に返す可能性がある。

property body_message

レスポンスボディに設定する文字列。

Type:

str

property status_code

HTTPステータスコード。

Type:

int

class src.aws_resources.lambda_function.response.Response

Bases: object

Lambda関数のレスポンスを生成するクラス。

設定された状態に基づき、HTTPステータスコードとボディを含むレスポンスを生成する。

property body

JSONシリアライズしたレスポンスボディ。

Type:

str

create_response()

Lambdaレスポンスを生成する。

Returns:

HTTPステータスコードとボディを含むレスポンス。
{

“statusCode”: int, “body”: str

}

Return type:

dict

property state

レスポンスの現在の状態。初期値はNoneState。

Type:

State

property status_code

HTTPステータスコード。

Type:

int

class src.aws_resources.lambda_function.response.StartedEC2InstanceIsFailedState

Bases: State

EC2インスタンスの起動に失敗した状態 (500: Internal Server Error)。

EC2インスタンスの起動処理中に予期しないエラーが発生した場合に返す。

property body_message

レスポンスボディに設定する文字列。

Type:

str

property status_code

HTTPステータスコード。

Type:

int

class src.aws_resources.lambda_function.response.State

Bases: object

レスポンスの状態を表す基底クラス。

具象クラスは status_code と body_message を必ずオーバーライドする必要がある。 オブジェクト生成時に上記がオーバーライドされているか確認する。

Raises:

NotImplementedError – 実装必須プロパティが実装されていない場合。

property body_message

レスポンスボディに設定する文字列。

Type:

str

check()

実装必須メソッドが正常に実装されているかチェックする。

Raises:

NotImplementedError – 実装必須プロパティが実装されていない場合。

property status_code

HTTPステータスコード。

Type:

int

Module contents

class src.aws_resources.lambda_function.LambdaFunction(event, context)

Bases: object

Lambda関数のイベント処理とレスポンス生成を管理するクラス。

API Gatewayから受取ったイベントを解析し、実行結果をレスポンスとして返す。

Parameters:
  • event (dict) – API Gatewayから受取ったイベント。

  • context (dict) – Lambda実行コンテキスト。

create_response()

イベントを解析してレスポンスを生成する。

Returns:

HTTPステータスコードとボディを含むレスポンス。

Return type:

dict