Добавление тегов к объектам S3 с помощью awswrangler?

#pandas #amazon-s3 #parquet #awswrangler

Вопрос:

Я использую awswrangler для написания паркетов в своем S3, и обычно я добавляю теги на все свои объекты для доступа и контроля затрат, но я не нашел способа сделать это напрямую с помощью awswrangler. Я в настоящее время использую приведенный ниже код для тестирования:

 import awswrangler as wr
import boto3
import pandas as pd

# Boto session
session = boto3.Session(profile_name='my_profile')

# Dummy pandas dataframe
d = {'col1': [1, 2], 'col2': [3, 4]}
df_pandas = pd.DataFrame(data=d)

wr.s3.to_parquet(df=df_pandas, path='s3://my-bucket/path/', boto3_session=session)
 

Есть способ добавить теги к объектам, которые .to_parquet будут записываться в моем S3?

Ответ №1:

Я только что выяснил, что у awswrangler есть параметр под названием s3_additional_kwargs , который вы можете передавать дополнительные переменные в запросы s3, которые awswrangler выполняет для вас. Вы можете отправлять теги, как в boto3 'Key1=value1amp;Key2=value2'

Ниже приведен пример добавления тегов к вашим объектам:

 import awswrangler as wr
import boto3
import pandas as pd

# Tagging
tag_set = 'Key1=value1amp;Key2=value2'

# Boto session
session = boto3.Session(profile_name='my_profile')

# Dummy pandas dataframe
d = {'col1': [1, 2], 'col2': [3, 4]}
df_pandas = pd.DataFrame(data=d)

wr.s3.to_parquet(df=df_pandas, path='s3://my-bucket/path/', s3_additional_kwargs={'Tagging': tag_set}, boto3_session=session)