メニュー
AWS Lambda
開発者ガイド

ステップ 2.1: デプロイパッケージを作成する

注記

現時点では、Lambda 関数のコード例は Python のみで示されています。

Python

次の例の Python コードでは、VPC に作成した MySQL RDSインスタンスの Employee テーブルに対して SELECT クエリを実行します。コードでは ExampleDB データベースにテーブルを作成し、サンプルレコードを追加して、これらのレコードを取得します。

  1. テキストエディターを開き、次のコードをコピーします。

    Copy
    import sys import logging import rds_config import pymysql #rds settings rds_host = "rds-instance-endpoint" name = rds_config.db_username password = rds_config.db_password db_name = rds_config.db_name logger = logging.getLogger() logger.setLevel(logging.INFO) try: conn = pymysql.connect(rds_host, user=name, passwd=password, db=db_name, connect_timeout=5) except: logger.error("ERROR: Unexpected error: Could not connect to MySql instance.") sys.exit() logger.info("SUCCESS: Connection to RDS mysql instance succeeded") def handler(event, context): """ This function fetches content from mysql RDS instance """ item_count = 0 with conn.cursor() as cur: cur.execute("create table Employee3 ( EmpID int NOT NULL, Name varchar(255) NOT NULL, PRIMARY KEY (EmpID))") cur.execute('insert into Employee3 (EmpID, Name) values(1, "Joe")') cur.execute('insert into Employee3 (EmpID, Name) values(2, "Bob")') cur.execute('insert into Employee3 (EmpID, Name) values(3, "Mary")') conn.commit() cur.execute("select * from Employee3") for row in cur: item_count += 1 logger.info(row) #print(row) return "Added %d items from RDS MySQL table" %(item_count)

    注記

    パフォーマンス向上のために、ここに示されているように pymysql.connect() はハンドラー外で実行することをお勧めします。

  2. このファイルを app.py という名前で保存します。

  3. pip を使用して、次に示すライブラリ依存関係をインストールします。

    • pymysql – Lambda 関数のコードでは、MySQL インスタンスにアクセスするためにこのライブラリが使用されます (「PyMySQL」を参照してください)。

  4. 次の情報が含まれる設定ファイルを作成し、rds_config.py という名前で保存します。

    Copy
    #config file containing credentials for rds mysql instance db_username = "username" db_password = "password" db_name = "databasename"

  5. これらのファイルをすべて app.zip という名前のファイルに ZIP 圧縮し、デプロイパッケージを作成します。手順については、「デプロイパッケージの作成 (Python)」を参照してください。

次のステップ

ステップ 2.2: 実行ロール (IAM ロール) を作成する

このページの内容: