私はこれをオンラインで検索していましたが、これは古いですが、私は解決策を分かち合い、役立つ人になるかもしれません。
Dynamo DBモデルを定義するときは、IAMロール名を含むコードを1行追加するだけで済みます。以下はサンプルモデルです。
次のようなモデルを変更すると、コンテナにファイル~/.aws/credentials
は必要ありません。
注::DynamoDBReadを添付するか、IAMロールにポリシーを書き込むようにしてください。インスタンスIAMロールにはAmazonDynamoDBFullAccess
ポリシーが添付されています。
from pynamodb.models import Model
from pynamodb.attributes import (
UnicodeAttribute, NumberAttribute, UnicodeSetAttribute, UTCDateTimeAttribute
)
import urllib2
class TestClass(Model):
email = UnicodeAttribute(hash_key=True)
UUID = UnicodeAttribute(range_key=True)
class Meta:
region = 'eu-west-2'
# Refer: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html
instanceProfileName = urllib2.urlopen(
'http://169.254.169.254/latest/meta-data/iam/security-credentials/').read()
table_name = 'dynamodb-tablename'
まずはお返事ありがとうございます。私はPynamoDBのドキュメントでそれを見ました。ボトコアの文書では、低レベルのセッションまたはクライアントを作成する方法を説明しています。しかし、私はそのクライアントまたはセッションをpynamoDBの高レベル部分にどのように接続するのか分かりません。また、すべてのサービスの資格情報は、私の場合(私の会社ポリシー)のオプションではありません。 – joaonrb