lambda에서 Aurora 중지

3485 단어 RDS람다오로라AWS

하고 싶은 일



lambda에서 Aurora를 중지하고 싶습니다!

그러나 지난번 비슷한 절차를 수행하려고 하면 오류가 발생합니다.
오류는 다음과 같습니다.
'RDS' object has no attribute 'stop_db_cluster'

조사하면 다음이 걸립니다.
htps : // 기주 b. 코 m / 보토 / 보토 3 / 이스에 s / 1723
lambda가 기본적으로 사용하는 boto3에는 아직 stop_db_cluster가 구현되어 있지 않다는 것입니다.

그래서 기본적으로는 지난번 와 같은 순서를 밟습니다만, lambda 함수를 배치하는 부분만 변경합니다.

준비



배포를 위한 디렉터리를 만듭니다.
$ mkdir stop-aurora

위의 디렉토리에 다음 파이썬 파일을 둡니다.

stop-aurora.py

import boto3


def lambda_handler(event, context):
    dbcluster = 'testdb'
    client = boto3.client('rds')
    response = client.stop_db_cluster(DBInstanceIdentifier=dbcluster)
    print(response)
    return 0                          

배포 패키지 만들기



다음 문서에 따라 패키지를 만듭니다.
htps : // / cs. 아 ws. 아마존. 이 m/그럼 _jp/ぁmb다/ぁ해서 st/dg/ぁmb다-py 텐-호 w-와-c 레테-에서 pぉy 멘 t 빠카케. HTML

1. 최신 boto3 다운로드
$ pip3 install boto3 -t ./stop-aurora

2.zip 압축
$ cd stop-aurora
$ zip -r stop-aurora .

여기서 주의하고 싶은 것은, 문서에도 있는 이하의 내용입니다.

디렉터리 자체가 아닌 디렉터리에 포함된 디렉터리의 내용을 압축합니다. ZIP 파일의 내용은 Lambda 함수의 현재 작업 디렉토리로 사용할 수 있습니다(예:/project-dir/codefile.py/lib/yourlibraries). 이 경우/project-dir에 포함된 내용을 압축합니다.

디렉토리 자체를 압축하면 lambda 실행시 다음 오류가 발생합니다.
"errorMessage": "Bad handler 'lambda_handler'"

3.aws cli로 함수 만들기

다음 명령으로 작성할 수 있습니다.
$ aws lambda create-function \
--function-name stop-aurora \
--runtime python3.6 \
--role <lambda作成用ロール> \
--handler stop-aurora.lambda_handler \
--zip-file fileb://stop-aurora.zip



기능이 있습니다! 했어!

나머지는 지난번 와 같은 순서로 실행할 수 있습니다.

좋은 웹페이지 즐겨찾기