AWS’de yeni olduğunuzu belirttiğinizden beri, tanımlayıcı olarak cevaplayacağım.
DynamoDB tablonuz için 'Aktarım etkin' ayarını 'Evet' olarak ayarladığınızı ve bunu lambda işlevinize bir olay kaynağı olarak ayarladığınızı varsayıyorum. Temelde
def lambda_handler(event, context):
print(json.dumps(event, indent=2)) # Shows what's in the event object
for record in event['Records']:
ddbARN = record['eventSourceARN']
ddbTable = ddbARN.split(':')[5].split('/')[1]
print("DynamoDB table name: " + ddbTable)
return 'Successfully processed records.'
, o belirli lambda sorumluydu belli DynamoDB akışla ilgili tüm bilgileri içerir event
nesne -
Bu
benim lambda fonksiyonu çağrılan akışından tablo adını neden oluyor işlevi çağırır,
eventSourceARN
parametresini içerir. Bu
eventSourceARN
,
event
'un gerçekleştiği DynamoDB tablonuzu benzersiz olarak tanımlayan ARN'dir (Amazon Kaynak Numarası).
Bu
eventSourceARN
için örnek bir değer -
arn: aws: dynamodb: us-doğu-1: 111111111111: Tablo/Test /stream/2020-10-10T08:18:22.385
Yukarıdaki kalın yazıya dikkat edin - testi; Bu, aradığınız tablo adı tablosudur. Yukarıdaki I ile tüm ARN bölünmüş çalıştık hattı ddbTable = ddbARN.split(':')[5].split('/')[1]
olarak
':', önce ve sonra tarafından '/' değeri
testi elde etmek için. Bu değere sahip olduğunuzda, aynı ada sahip S3'te bir dosyaya yazmak için S3 API'lerini çağırabilirsiniz.
Bu yardımcı olur umarım.
O yardımcı olur. Teşekkürler. – AIR
@AIR Cool! Sorunu çözdüğünü düşünüyorsanız, lütfen cevap olarak işaretleyebilir misiniz? Teşekkürler. – rk2
record.eventSourceARN.split ('/') [1] –