Привет, я пытаюсь запустить этот python инструмент в python лямбде.
https://github.com/googleapis/google-api-python-client/tree/master/samples/searchconsole
В настоящее время я застрял с загрузкой client_secrets. json для Oauth.
В целях тестирования я изменил его немного
from googleapiclient import sample_tools
from datetime import datetime, timedelta
def main():
testday = datetime.now() - timedelta(days=3)
start_date = testday.strftime('%Y-%m-%d')
end_date = testday.strftime('%Y-%m-%d')
property_uri = 'https://www.example.com'
print(start_date)
service, flags = sample_tools.init(
[], 'webmasters', 'v3', __doc__, __file__, parents=[],
scope='https://www.googleapis.com/auth/webmasters.readonly')
# Get totals for the date range.
request = {
'startDate': start_date,
'endDate': end_date
}
response = execute_request(service, property_uri, request)
print(response)
#Get top 10 queries for the date range, sorted by click count, descending.
request = {
'startDate': start_date,
'endDate': end_date,
'dimensions': ['query'],
'rowLimit': 10
}
response = execute_request(service, property_uri, request)
print(response)
def execute_request(service, property_uri, request):
return service.searchanalytics().query(
siteUrl=property_uri, body=request).execute()
def lambda_handler(event, context):
main()
return {
'statusCode': 200,
'body': 'gugus'
}
У меня были некоторые проблемы с библиотеками, которые теперь работают, следуя этому руководству
https://docs.aws.amazon.com/lambda/latest/dg/lambda-python-how-to-create-deployment-package.html#python -package-venv
I do:
python3 -m venv v-env
source v-env/bin/activate
pip install google-api-python-client
pip install --upgrade oauth2client
pip install Pillow
deactivate
cd v-env/lib/python3.7/site-packages
zip -r9 ${OLDPWD}/function.zip .
cd $OLDPWD
zip -g function.zip lambda_function.py
aws lambda update-function-code --function-name GSCPython --zip-file fileb://function.zip
Моя проблема сейчас в том, что client_secrets. json и, возможно, файл webmasters.dat с токенами не работает. Возможно, мне нужно как-то включить их в файл function.zip? Как это сделать
Не уверен, будет ли процесс аутентификации работать с --noauth_local_webserver
Первоначально было go не go с файлами, но client_id и client_secret сохранены как переменные среды, но sample_tools здесь не очень гибкие. Я также рад за подсказки, как это изменить?
Спасибо