AWS googleapi認証

davidb

1日に1回実行され、特定のフォルダー内のg-drive内のすべてのファイルを削除するPythonのスクリプトがあります。ローカルマシンでテストしたところ、Gmailアカウントを使用してログインするように求められました。スクリプトを実行するたびにログインする必要がないように、それを実行して資格情報ファイルを作成しました。

現在、AWSでラムダ関数を作成し、1日1回トリガーしようとしています。展開パッケージを作成してアップロードしましたが、実行されているようですが、ブラウザを開いてg-driveに再度ログインしようとし続けます。ログで見つけたものは次のとおりです。

Your browser has been opened to visit:
https://accounts.google.com/o/oauth2/auth?client_id=removed from this example
If your browser is on a different machine then exit and re-run this
application with the command-line parameter
--noauth_local_webserver

コードは次のとおりです。

from __future__ import print_function
from apiclient.discovery import build
from httplib2 import Http
from oauth2client import file, client, tools

SCOPES = 'https://www.googleapis.com/auth/drive'
store = file.Storage('credentials.json')
creds = store.get()
if not creds or creds.invalid:
    flow = client.flow_from_clientsecrets('client_secret.json', SCOPES)
    creds = tools.run_flow(flow, store)
service = build('drive', 'v3', http=creds.authorize(Http()))

def list_folders(drive_id):
    body = {'teamDriveId': drive_id}
    parent = "parent_id"
    drives = service.files().list(corpora="teamDrive", teamDriveId=drive_id, includeTeamDriveItems=True, supportsTeamDrives=True, fields='files').execute().get('files')
    for drive in drives:
        if parent in drive['parents']:
            service.files().delete(fileId=drive['id'], supportsTeamDrives=True).execute()
    print("Deleted all files!")

def lambda_handler(event, context):
    list_folders("0k9PVA")(not real id)
    return 'Hello from Lambda'

ローカルマシンで生成されたclient_secret.jsonとcredentials.jsonの両方をAWSラムダ関数にアップロードしましたが、credsがすでに存在し、これは私のマシンで正常に実行されるため、機能すると思いました。どうすればこれを機能させることができますか?

davidb

わかりました、私は何が悪かったのか理解しました。authentication.jsonファイルへのアクセス許可が不十分であり、読み取ることができませんでした。ファイルを圧縮してLambdaにアップロードする前に、アクセス許可を変更する必要がありました。これで問題は解決しました。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

AWS CognitoHTTP認証

分類Dev

長い間GoogleAPI認証

分類Dev

Firebase認証とAWS Cognito

分類Dev

Firebase認証とAWS Cognito

分類Dev

JavaScriptでのAWS認証

分類Dev

AWS Elastic BeanstalkへのWindows認証(AD認証)

分類Dev

AWS Cognito API認証フローSDK

分類Dev

AWS iOS SDK Cognito開発者認証(Swift)

分類Dev

AWS署名によるRestAssured認証

分類Dev

AWS認証情報をDockerに渡す

分類Dev

Jenkinsfileアクセスaws認証情報

分類Dev

AWS認証フローの終了

分類Dev

AWS認証情報エラーなし

分類Dev

GoogleApiの「Exchange認証コード」が未承認を返す

分類Dev

AWS Boto / Warrantライブラリ:SRP認証と認証情報のエラー

分類Dev

アマゾンAWS。ルート認証情報からIAM認証への移行

分類Dev

NodeJSを使用してGoogleAPIに認証する

分類Dev

AndroidがGoogleAPIを使用して認証情報を設定する

分類Dev

AWS Secrets ManagerはどこでAWS認証情報を取得しますか?

分類Dev

Laravel 5.1 AWS SDKの適切な認証情報の設定:例外 'Aws \ Exception \ CredentialsException'

分類Dev

AWS .NETSDKで認証情報が見つかりません

分類Dev

AWS Cognito、Lambda、DynamoDBのユーザー認証情報

分類Dev

GradleでAWSロール認証情報を取得する

分類Dev

Dockerビルドプロセス中のAWS認証情報

分類Dev

JARファイルにAWS認証情報を含める

分類Dev

aws-cliで認証する際のUnrecognizedClientExceptionエラー

分類Dev

AWS Cognito:認証情報を取得できません

分類Dev

AWS Lambda Python RDS PostgresIAM認証の接続構成

分類Dev

AWS JSSDKでECS認証情報を使用する方法

Related 関連記事

ホットタグ

アーカイブ