aliyun / credentials-python

Alibaba Cloud Credentials for Python
5 stars 7 forks source link

Missing parameter #27

Closed rkitron closed 3 months ago

rkitron commented 2 years ago

Hi,

I'm trying to use this package with a RAM role,

I'm getting this error: alibabacloud_credentials.exceptions.CredentialException: {"RequestId":"AB8B1489-426D-508E-9FB4-2D2849E14500","Message":"Timestamp is mandatory for this action.","Recommend":"https://next.api.aliyun.com/troubleshoot?q=MissingTimestamp&product=Sts","HostId":"sts.aliyuncs.com","Code":"MissingTimestamp"}

Finally, all these parameters were missing (in provider.py.RamRoleArnCredentialProvider): 'Timestamp': datetime.datetime.utcnow().strftime("%Y-%m-%dT%H:%M:%SZ"), 'SignatureNonce': UtilClient.get_nonce(), 'SignatureMethod': 'HMAC-SHA1', 'SignatureVersion': '1.0'

My code:

from alibabacloud_ecs20140526.models import DescribeInstancesRequest

from alibabacloud_ecs20140526.client import Client as EcsClient

from alibabacloud_credentials.client import Client
from alibabacloud_credentials.models import Config

from alibabacloud_tea_openapi.models import Config as OpenAPIConfig

config = Config(
    type='ram_role_arn',
    access_key_id='********',
    access_key_secret='******',
    role_session_name='test',
    #security_token='',
    role_arn='acs:ram::********:role/**********',
)
cred = Client(config)

ecsClient = EcsClient(OpenAPIConfig(credential=cred, region_id='cn-shanghai'))
req = DescribeInstancesRequest()
ecsClient.describe_instances(req)

Thanks,

JacksonTian commented 3 months ago

It looks like has been fixed.