我正在使用 boto3 并像這樣輸入我的憑據:
dynamodb_client = boto3.client('dynamodb', region_name='us-west-2', aws_access_key_id={access_key}, aws_secret_access_key={secret_key})
我收到此錯誤,從在線搜索看來是因為我也沒有包含我的會話令牌。有沒有更好的方法來輸入我的訪問密鑰和會話令牌?
對于背景關系,在本地運行我的程式時我沒有這個問題(因為我通過 aws cli 登錄到我的帳戶)。我正在創建一個 docker 映像,當我運行 docker 映像時,我得到了身份驗證錯誤,所以我添加了我的憑據,現在我收到了這個錯誤,我假設它與會話密鑰相關。我很好奇是否還有其他方法,或者我是否必須創建一個臨時會話令牌并將其添加到我的環境變數檔案夾中
File "/usr/local/lib/python3.8/site-packages/botocore/auth.py", line 424, in _inject_signature_to_request
auth_str = ['AWS4-HMAC-SHA256 Credential=%s' % self.scope(request)]
File "/usr/local/lib/python3.8/site-packages/botocore/auth.py", line 373, in scope
return '/'.join(scope)
TypeError: sequence item 0: expected str instance, set found
uj5u.com熱心網友回復:
問題不在于您沒有會話令牌。
問題是您將訪問密鑰 ID 和秘密訪問密鑰包裝在字典中,但 Boto3 需要 2 個字串值。
提示在:
預期的 str 實體,已找到集合
代替:
dynamodb_client = boto3.client(
'dynamodb',
region_name='us-west-2',
aws_access_key_id={access_key},
aws_secret_access_key={secret_key}
)
和:
dynamodb_client = boto3.client(
'dynamodb',
region_name='us-west-2',
aws_access_key_id=access_key,
aws_secret_access_key=secret_key
)
請注意缺少將為您創建和初始化字典的花括號。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/480060.html
