alibaba / alibaba/acm-sdk-python
Bug in AcmClient with ram_role_name as auth
- Lingua principale
- Python
- Stelle
- 59
- Fork
- 26
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
When I'm trying to do following:
```
import acm
ENDPOINT = ''
NAMESPACE = ''
RAM_ROLE = ''
DATA_ID = ''
GROUP = ''
c = acm.ACMClient(ENDPOINT, NAMESPACE, AK, SK)
c.set_options(kms_enabled=True, region_id="cn-beijing")
print(c.get(DATA_ID, GROUP))
```
I get following error:
```
print(c.get(DATA_ID, GROUP))
File "/usr/local/lib/python3.8/dist-packages/acm/client.py", line 397, in get
return self.decrypt(content)
File "/usr/local/lib/python3.8/dist-packages/acm/client.py", line 897, in decrypt
resp = json.loads(self.kms_client.do_action_with_exception(req).decode("utf8"))
File "/usr/local/lib/python3.8/dist-packages/aliyunsdkcore/client.py", line 473, in do_action_with_exception
status, headers, body, exception = self._implementation_of_do_action(acs_request)
File "/usr/local/lib/python3.8/dist-packages/aliyunsdkcore/client.py", line 308, in _implementation_of_do_action
return self._handle_retry_and_timeout(endpoint, request, signer)
File "/usr/local/lib/python3.8/dist-packages/aliyunsdkcore/client.py", line 376, in _handle_retry_and_timeout
status, headers, body, exception = self._handle_single_request(endpoint,
File "/usr/local/lib/python3.8/dist-packages/aliyunsdkcore/client.py", line 398, in _handle_single_request
http_response = self._make_http_response(endpoint, request, read_timeout, connect_timeout,
File "/usr/local/lib/python3.8/dist-packages/aliyunsdkcore/client.py", line 264, in _make_http_response
header, url = signer.sign(self._region_id, request)
File "/usr/local/lib/python3.8/dist-packages/aliyunsdkcore/auth/signers/ecs_ram_role_signer.py", line 42, in sign
self._check_session_credential()
File "/usr/local/lib/python3.8/dist-packages/acm/client.py", line 74, in _check_session_credential_patch
expiration = self._expiration if isinstance(self._expiration, (float, int)) \
AttributeError: 'EcsRamRoleSigner' object has no attribute '_expiration'
```
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Direzione di ricerca
Inizia in acm/client.py, in get(), decrypt() e _check_session_credential_patch(), quindi confronta lo stato previsto delle credenziali con il traceback di EcsRamRoleSigner. Riproduci la configurazione ACMClient mostrata con kms_enabled e region_id impostati; il lavoro è concluso quando l’autenticazione tramite ruolo RAM non genera più l’AttributeError dovuto all’assenza di _expiration durante get().
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- python
- Ambito
- authentication, cloud
- Tipo di issue
- Bug
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Stato di attività
- Ferma
- Chiarezza
- Da chiarire
- Idoneità per principianti
- 38/100