2017-07-20 17 views
0

PHPから呼び出されるpythonスクリプトがあります。このPHPスクリプトを呼び出すユーザーはapacheであり、したがって、pythonファイルもapacheによって呼び出されます。したがって、「資格証明を見つけることができません」と表示されます。私はawscliを使ってデフォルトの資格情報を設定しました。そして、私がrootとしてpythonスクリプトを呼び出すと、動作します。これは、 "無効な構文" エラーを与え、PythonスクリプトでのAWS資格情報の受け渡し

client = boto3.client('ses', region_name=awsregion, aws_access_key_id='AJHHJHJHJ', aws_secret_access_key='asdasd/asdasd/asd') 

しかし:

これはコードの私のラインです。だから、私はこれを試した:

client = boto3.Session(aws_access_key_id='ASDASD', aws_secret_access_key='asd/asdasd/asdasd') 
client = boto3.client('ses', region_name=awsregion, aws_access_key_id='ASDASD', aws_secret_access_key='asd/asdasd/asdasd') 

上記と同じエラーが発生します。奇妙なことは、同じことがmentioned in the documentationだということです。それは推奨されていませんが、それは動作するはずです。

誰かがこれを修正する手助けできますか?

+0

実際のトレースバックを表示できますか?クライアントを作成するために表示する最初の呼び出しは、私には大丈夫です。 – garnaat

答えて

0

解決しましたか?私のPythonスクリプトでboto3に接続する方法は次のとおりです。

import boto3 
from botocore.exceptions import ClientError 
import re 
from io import BytesIO 
import gzip 
import datetime 
import dateutil.parser as dparser 
from datetime import datetime 
import tarfile 
import requests 
import sys 
from awsglue.transforms import * 
from awsglue.utils import getResolvedOptions 
from pyspark.context import SparkContext 
from awsglue.context import GlueContext 
from awsglue.job import Job 

## Needed glue stuff 
sc = SparkContext() 
glueContext = GlueContext(sc) 
spark = glueContext.spark_session 
job = Job(glueContext) 

## 
## currently this will run for everything that is in the staging directory  of omniture 

# set needed parms 
myProfileName = 'MyDataLake' 
dhiBucket = 'data-lake' 
#create boto3 session 
try:  
    session = boto3.Session(aws_access_key_id='aaaaaaaaaaaa',  aws_secret_access_key='abcdefghijklmnopqrstuvwxyz', region_name='us-east-1')aws_session_token=None, region_name=None, botocore_session=None 
    s3 = session.resource('s3') #establish connection to s3 
except Exception as conne: 
    print ("Unable to connect: " + str(conne)) 
    errtxt = requests.post("https://errorcapturesite", data={'message':'Unable to connect to : ' + myProfileName, 'notify':True,'color':'red'}) 
    print(errtxt.text) 
    exit() 
関連する問題