AWS S3의 설정 정보를 lambda(python + boto3)로 취득했을 때의 메모
소개
AWS S3의 설계서를 만들게 되어 화면을 보면서 설정값을 복사하고 있으면 의식이 없어져 좌절했으므로 lambda에서 취득한 json을 설계서라고 했습니다.
공식 자료에서는 어느 것이 어느 설정인지 알기 어렵고, qiita에도 없는 것 같기 때문에 스스로 때문에 1개 1개 조사했습니다
htps : // 보토 3. 아마조나 ws. 코 m/v1/도쿠멘들 온/아피/ㅁ st/레후 렌세/세 rゔ ㄱ세 s/s3. HTML #C
본문
설정 정보 취득에 이용한 메소드 리스트
모든 인수는 버킷 이름입니다.
예import boto3
client = boto3.client('s3')
client.method(
Backet='backet_name'
)
메소드 이름
화면의 해당 부분
get_bucket_versioning()
속성 > 버전 관리
get_bucket_logging()
속성 > 서버 액세스 로깅
get_bucket_website()
속성 > Static website hosting
get_bucket_location()
속성 > 객체 수준 로깅
get_bucket_encryption()
속성 > 기본 암호화
get_object_lock_configuration()
속성 > 객체 잠금
get_bucket_tagging()
속성 > Tags
get_bucket_accelerate_configuration()
속성 > Transfer acceleration
get_bucket_notification_configuration()
속성 > Events
get_bucket_request_payment()
속성 > 요청자 지불
get_public_access_block()
액세스 권한 > 공용 액세스 설정
get_bucket_acl()
액세스 권한 > 액세스 제어 목록
get_bucket_policy()
액세스 권한 > 버킷 정책
get_bucket_cors()
액세스 권한 > CORS 설정
get_bucket_lifecycle_configuration()
관리 > 라이프사이클
get_bucket_replication()
관리 > 복제
list_bucket_analytics_configurations()
관리 > 분석
list_bucket_metrics_configurations()
관리 > 지표
list_bucket_inventory_configurations()
관리 > 인벤토리
※개요는 보통의 파일이나 폴더이므로, 다른 것을 참고해 주세요.
코드
코코
show-S3-setting.py
# S3の設計書用の設定情報取得lambda
# bucketごとに情報を設定する
import json
import boto3
from datetime import date, datetime, timedelta
def lambda_handler(event, context):
client = boto3.client('s3')
#設定情報を取得するバケットリストを取得
buckets = client.list_buckets()
# 設定情報を代入するjson
json_buckets_setting = {}
json_buckets_setting['Owner'] = buckets['Owner']
json_buckets_setting['Buckets'] = []
for bucket in buckets['Buckets']:
setting_info = {}
# 引数が全てBucketなのでevalでメソッドを実行する
client_methods = [
'get_bucket_accelerate_configuration', 'get_bucket_acl', 'get_bucket_cors', 'get_bucket_encryption', 'get_bucket_lifecycle_configuration', 'get_bucket_location', 'get_bucket_logging', 'get_bucket_notification_configuration', 'get_bucket_policy_status', 'get_bucket_request_payment', 'get_bucket_tagging', 'get_bucket_versioning', 'get_bucket_website', 'get_object_lock_configuration', 'get_public_access_block', 'list_bucket_analytics_configurations', 'list_bucket_inventory_configurations', 'list_bucket_metrics_configurations'
]
for method_name in client_methods:
response = None
try:
response = eval("client." + method_name)(
Bucket=bucket['Name']
)
except:
pass
setting_info[method_name] = response
#メソッド毎に設定値を代入
bucket["s3_setting"] = setting_info
json_buckets_setting['Buckets'].append(bucket)
return json.dumps(json_buckets_setting, default=json_serial)
# 日付タイプの変換
def json_serial(obj):
if isinstance(obj, (datetime, date)):
# 時差の修正9時間
obj = obj - timedelta(hours=-9)
return obj.strftime('%Y/%m/%d %H:%M')
raise TypeError("Type %s not serializable" % type(obj))
결론
이제 설계 문서를 최신화하는 것이 매우 쉬워졌습니다
그리고 같은 S3 만드는 것도 이 값과 boto3의 메소드 사용해 만들 수 있을 것・・・
다음도 할 수 있으면 하고 싶은 예정
cloudfront의 설정 정보를 lambda(python + boto3)로 취득했을 때의 메모
lambda 설정 정보를 lambda (python + boto3)로 얻은 메모
API Gateway의 설정 정보를 lambda(python + boto3)로 취득했을 때의 메모
Reference
이 문제에 관하여(AWS S3의 설정 정보를 lambda(python + boto3)로 취득했을 때의 메모), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/lunar_sword3/items/5df4122dd797bb23da79
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
설정 정보 취득에 이용한 메소드 리스트
모든 인수는 버킷 이름입니다.
예
import boto3
client = boto3.client('s3')
client.method(
Backet='backet_name'
)
메소드 이름
화면의 해당 부분
get_bucket_versioning()
속성 > 버전 관리
get_bucket_logging()
속성 > 서버 액세스 로깅
get_bucket_website()
속성 > Static website hosting
get_bucket_location()
속성 > 객체 수준 로깅
get_bucket_encryption()
속성 > 기본 암호화
get_object_lock_configuration()
속성 > 객체 잠금
get_bucket_tagging()
속성 > Tags
get_bucket_accelerate_configuration()
속성 > Transfer acceleration
get_bucket_notification_configuration()
속성 > Events
get_bucket_request_payment()
속성 > 요청자 지불
get_public_access_block()
액세스 권한 > 공용 액세스 설정
get_bucket_acl()
액세스 권한 > 액세스 제어 목록
get_bucket_policy()
액세스 권한 > 버킷 정책
get_bucket_cors()
액세스 권한 > CORS 설정
get_bucket_lifecycle_configuration()
관리 > 라이프사이클
get_bucket_replication()
관리 > 복제
list_bucket_analytics_configurations()
관리 > 분석
list_bucket_metrics_configurations()
관리 > 지표
list_bucket_inventory_configurations()
관리 > 인벤토리
※개요는 보통의 파일이나 폴더이므로, 다른 것을 참고해 주세요.
코드
코코
show-S3-setting.py
# S3の設計書用の設定情報取得lambda
# bucketごとに情報を設定する
import json
import boto3
from datetime import date, datetime, timedelta
def lambda_handler(event, context):
client = boto3.client('s3')
#設定情報を取得するバケットリストを取得
buckets = client.list_buckets()
# 設定情報を代入するjson
json_buckets_setting = {}
json_buckets_setting['Owner'] = buckets['Owner']
json_buckets_setting['Buckets'] = []
for bucket in buckets['Buckets']:
setting_info = {}
# 引数が全てBucketなのでevalでメソッドを実行する
client_methods = [
'get_bucket_accelerate_configuration', 'get_bucket_acl', 'get_bucket_cors', 'get_bucket_encryption', 'get_bucket_lifecycle_configuration', 'get_bucket_location', 'get_bucket_logging', 'get_bucket_notification_configuration', 'get_bucket_policy_status', 'get_bucket_request_payment', 'get_bucket_tagging', 'get_bucket_versioning', 'get_bucket_website', 'get_object_lock_configuration', 'get_public_access_block', 'list_bucket_analytics_configurations', 'list_bucket_inventory_configurations', 'list_bucket_metrics_configurations'
]
for method_name in client_methods:
response = None
try:
response = eval("client." + method_name)(
Bucket=bucket['Name']
)
except:
pass
setting_info[method_name] = response
#メソッド毎に設定値を代入
bucket["s3_setting"] = setting_info
json_buckets_setting['Buckets'].append(bucket)
return json.dumps(json_buckets_setting, default=json_serial)
# 日付タイプの変換
def json_serial(obj):
if isinstance(obj, (datetime, date)):
# 時差の修正9時間
obj = obj - timedelta(hours=-9)
return obj.strftime('%Y/%m/%d %H:%M')
raise TypeError("Type %s not serializable" % type(obj))
결론
이제 설계 문서를 최신화하는 것이 매우 쉬워졌습니다
그리고 같은 S3 만드는 것도 이 값과 boto3의 메소드 사용해 만들 수 있을 것・・・
다음도 할 수 있으면 하고 싶은 예정
cloudfront의 설정 정보를 lambda(python + boto3)로 취득했을 때의 메모
lambda 설정 정보를 lambda (python + boto3)로 얻은 메모
API Gateway의 설정 정보를 lambda(python + boto3)로 취득했을 때의 메모
Reference
이 문제에 관하여(AWS S3의 설정 정보를 lambda(python + boto3)로 취득했을 때의 메모), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/lunar_sword3/items/5df4122dd797bb23da79
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(AWS S3의 설정 정보를 lambda(python + boto3)로 취득했을 때의 메모), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/lunar_sword3/items/5df4122dd797bb23da79텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)