DynamoDBローダへのCSV
25804 ワード
Menos de 5 minutosコンクラウド開発キット(CDK)におけるダイナミズム
ギタブhttps://github.com/elizabethfuentes12/AWS_CDK_playground
<研究ノート>ヘーヴ・デ・ヴィラヴスのCSVについてPor esto se me ocurriciは、nのServerlessなUtilizando CDK Lista Pia Estas Statisacionesを無視します.SIS proyectosにおける比較のために
エヌエステチュートリアルvamosは、como crear una aplicaciを引きます.COMO SE ve en la siguiente imagen , cada vez que se sube un archivo al bucket , unevento invoca una oci n nλ(λda 1 ) que se encarga de leer el archivoCSVデルバケツ、envは、Cada Lを起こします.エスタコーラティエンotro desencadenador que invocaオトラは、私のnラムダ(λ2)que toma el mensaje yロスescribe como un tem tem de una tablaダイナモです.
Los Servicios Involucradosエヌesta soluci
アマゾンS 3 (単純記憶サービス)
S3 第一次公務員としての罪について
AWSランドバ
AWSLambda <研究ノート>行政機関としての労働者に対する刑事責任論
アマゾンSQS (単純な待ち行列サービス)
SQS エヌ- ServicioデColasデMensajesは、管理しますque permoplar y AjustarラEscalaデMicroservicios、シスメメ配布物y Aplicaciones Serverless.
アマゾンダイナモ
アマゾンDynamoDB esの国連ServicioデベースデDatosデNoSQLは、管理していますUsence Unsuempeのo o o r r o pido yを宣言します.<研究ノート>ラオス・ガスガス行政に関する一考察
クラウド開発キット
フランス語教育における言語習得の現状と問題点
Nuna Vaz lo conozcas問答無用品をめぐって
コノスM ' s s ACCDK
デスプルゲー
パラクレアの詩について
Installar CDK
ロスRealsos、debes instalar y figalar la cli(コマンドラインインターフェース)デCDK、en este caso estamos利用のcdk con python.
Instalación y configuración de CDK
Documentación CDK para Python
2 . Clonamos el repo y vamos la carpeta de nuestro proyecto
git clone https://github.com/elizabethfuentes12/AWS_CDK_playground
cd AWS_CDK_playground/s3_to_dynamo
3 .仮想的な仮想空間
python3 -m venv .venv
source .venv/bin/activate
エステアンビエンは、仮想(Venv)NOS permiteアイスララスversionesデルパイナップルVamosを利用します.コンesto podemos tener varios proyectos con distintas構成要素四・五・五・五の試み
エヌエルGitthubエスタエルcは、dioのLegoパラシュートで降下します.
エルLa Carpeta y la palabra chen stack al finalについてs3_to_dynamo_stack.py
エヌesta archivo seは、despregar por ejaugo elバケットS 3をロス再帰的に定義します
バケット
リファレンスリファレンスaws_cdk.aws_s3
デレモス・アグレ-ル-
import aws_s3 as s3
bucket = s3.Bucket(self,"s3-dynamodb",
versioned=False, removal_policy=core.RemovalPolicy.DESTROY)
コラドパラクレーエルエルバケットcon susの政治家(en cicional)、en este caso usaremos removalchenポリシー=破壊パルクエルバケツse Melimine Cuando Eliemos ELスタック.エサデエスタAPIBucket
クレアSQS que recibirは、ルンメンサエデデLamda 1:
リファレンスリファレンスaws_cdk.aws_sqs
import aws_sqs as sqs
#Primero creamos la Queue de mensajes fallidos, ya que las otras dos le hacen mención.
queue_fail_SQS = sqs.Queue(self, "SQS-FAIL-", visibility_timeout=core.Duration.seconds(30))
#A continuación creamos la Queue DeadLetterQueue, para donde se iran todos los mensajes fallidos de la Queue principal o "cola"
dead_letter_SQS = sqs.DeadLetterQueue(max_receive_count=10, queue=queue_fail_SQS)
#Por último, creamos la Queue (o cola), la nombramos "SQS-INI" visibility_timeout de 30 segundos y le indicamos que los mensajes sin procesar deben irse a la dead_letter_queue creada anteriormente.
queue_SQS = sqs.Queue(self, "SQS-INI-", visibility_timeout=core.Duration.seconds(30), dead_letter_queue=dead_letter_SQS)
パラun mejor manejoデロスmensaje、利用可能なUzzaremos Nunaコーラプリンシパルy unaコーラque almacene los mensajes fallidos.API SQSQueue
APIDeadLetterQueue
Luego de esto Creamos la una a functionλi es gatillada al cargar un archivo nuevo en el bucket a env her a la linea que li a a una cola sqs :
ファンクション
APIaws_lambda
import aws_lambda
lambda_1 = aws_lambda.Function(
self, "lambda-1",
runtime=aws_lambda.Runtime.PYTHON_3_8,
handler="lambda_function.lambda_handler",
timeout=core.Duration.seconds(20),
memory_size=256, description= "Lambda que lee bucket y envia a SQS",code=aws_lambda.Code.asset("./lambda_1"),
environment={'ENV_SQS_QUEUE': queue_SQS.queue_url,
'ENV_REGION_NAME': REGION_NAME})
クレアモスララムダコンAPIFunction
Elaas Lambdas se Gatillan Con Eventos、Por Lo Cual Dedeemos Agregar La Librerは、que lo permiteを引きます.
APIaws_lambda_event_sources
<研究ノート>第一次大戦後のラテンアメリカにおけるラテンアメリカの空間構成
ノーブル
勇気
注意
黙示録
キューキューSQSキューキューURL
esのURLデラキュー
地域名
ノンブルデラ地域
Opcional Si SEレクテナパラDefenir La Queue dentro de Lamda 1
エルCは、dikパイソンque Ejecutaエスタラムダ/lambda_1
トリガーデnuevo objetoエヌエルバケツ.
import aws_s3_notifications
#Para que se gatille al cargar un nuevo archivo en S3, debemos crear la notificación
notification = aws_s3_notifications.LambdaDestination(lambda_1)
#Agregamos el evento a la Lambda e indicamos que este se debe gatillar cuando se crea un archivo en S3.
bucket.add_event_notification(s3.EventType.OBJECT_CREATED, notification)
#Y por supuesto le damos permiso a la Lambda1 para que pueda leer del bucket S3.
bucket.grant_read(lambda_1)
#Para que la lambda pueda escribir en la SQS definida se le debe dar permiso
queue_SQS.grant_send_messages(lambda_1)
APIaws_cdk.aws_s3_notifications タブラダイナマイト
APIaws_dynamodb
ルAgregamosロス平均は、al - igual que por clo o por la慰安婦、yパラシュートで降下します.
ティポデキー
キー名
種類
パーティションキー
カンポ1
文字列
ソートキー
カンポ2
文字列
import aws_dynamodb as ddb
ddb_table = ddb.Table(
self, "Tabla",
partition_key=ddb.Attribute(name="campo1", type=ddb.AttributeType.STRING),
sort_key=ddb.Attribute(name="campo2", type=ddb.AttributeType.STRING),
#Y definimos RemovalPolicy como DESTROY para que se borre cuando se elimina el Stack de la aplicación.
removal_policy=core.RemovalPolicy.DESTROY)
APITable funcion lambda 2 :
クレアモスララムダque se gtilla con la sqs y escribe en tabla :
lambda_2 = aws_lambda.Function(
self, "lambda_2",runtime=aws_lambda.Runtime.PYTHON_3_8,handler="lambda_function.lambda_handler",
timeout=core.Duration.seconds(20),
memory_size=256, description= "Lambda lee SQS y escribe en DDB",
code=aws_lambda.Code.asset("./lambda_2"),
environment={'ENV_SQS_QUEUE': queue_SQS.queue_url,
'ENV_REGION_NAME': REGION_NAME})
#Se le otorgan permisos para que pueda escribir en la tabla DynamoDB
ddb_table.grant_write_data(lambda_2)
# tambien podemos agregar la variable de entorno para la DynamoDB con un comando aparte.
lambda_2.add_environment("TABLE_NAME", ddb_table.table_name)
<研究ノート>ノンブルにおける「前」の意味とその意味La Color 2 se Gatilla Conn la Recipeは、Mensajes desasデコーラコーラSQS、Deebos Crear y AgregarエルEventoにラムダ2です:
import aws_lambda_event_sources
event_source = aws_lambda_event_sources.SqsEventSource(queue_SQS, batch_size=1)
lambda_2.add_event_source(event_source)
queue_SQS.grant_consume_messages(lambda_2)
yルdamo permioパラシュートで降下する人Pureda消費者Los Mensajes desdeラコーラ、エステComadando Tambiは、perperite Borrar mensajes、Lo Cual es Introtanteパラque na Vaz海exitosaラ機能iエステ海CapazデBorrarエルMensajeデラコーラy no海Rintentado.M・S・SQueue
エル・ラム・デ・エラ・ラム・ラ・アンド・ラカル・カルペータのエル・C/lambda_2
運命は、felicidades!Ya Estamos casi listos para desplegar nuestra aplicaci
第5章イントラルマンスルネサリメイントス
CDK必需品としてのデッヘース・アグレーガー,デレモス・アグレグrequirements.txt
pip install -r requirements.txt
第6章デスレゲッド・ラ・アップリカ
第二次世界大戦前におけるクラウド・エッセンシャル・エッセンの罪について
cdk synth
Si干し草ALGは、エラーに耐えることを試みます.エヌ・エル・カス・デ・エスト・カーガンドー・ナウ・ヌエエ・ヴァーヴァ・デ・ラ・アープリーチェの詩篇
cdk diff
A . A . A .cdk deploy
El El Terminal :コン・ラ・コンサ
『リプロダクソス・クレドス』の成立過程
プロイセン
<研究ノート>アパルガ・ラ・アパルカッシの『バスカ・エル・バケツ』ejemplo.csv
OnソロノスSegundos Puver Ever Economido del csv en la la tabla de Dynamodb
<論文>サザンパの詩学的考察Tabla Sigraのダイナソー干し草que Noter que al - ser - una - cola sqs normal , el orden no est as asegurado ( Si se se renesprocprocar los mensajes en orden of a una cola sqs fifo )
8章チップ
Pedes ver en en cual regi手n n se va desplegar tuスタックエヌエルArchivoapp.py EntrcesはedaregarエヌOtras登録者をpuedesします.
El Despliegue Lo Utiliza Ladencenciales Por defdeto de AWS , SI Desea usar un profile at Fico agregue --プロファイルAl Comandoの展開
cdk deploy --profile mi-profile-custom
簡単にエクスポートするenenexport AWS_PROFILE=mi-profile-custom
cdk deploy
エヌエルArchivocomandos.md ロスコマンドードCDK利用のEstaエル再開.9 . Ellipelium EL Stack la la Aplicaci DEN N
パラ‐エピルナルELスタックLoはComandoを経由してHACERを押す
cdk destroy
Consola CloudFormation、SelecciOne ELスタック(mismo nombre del proyecto cdk)y lo borra経由で.忠誠の
PUEDesは、DynamicのDynamicbパラシュートで降下して、Car Vaz que Unアイテム海CargadoDocumentación .
en este github puedes ver como hacerlohttps://github.com/cdk-patterns/serverless/tree/main/the-dynamo-streamer/python
ハッピー現像😁!!
グラシアス!
Te dejo mis re para que me sigas :
Reference
この問題について(DynamoDBローダへのCSV), 我々は、より多くの情報をここで見つけました https://dev.to/elizabethfuentes12/csv-to-dynamodb-loader-4mdkテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol