From 09641faf7b14159c63957355c1817a37f8e4428a Mon Sep 17 00:00:00 2001 From: Sydney Lister Date: Tue, 29 Oct 2024 10:04:01 -0700 Subject: [PATCH 1/5] use env var for azure token refresh interval --- .../ai/evaluation/simulator/_model_tools/_identity_manager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/evaluation/azure-ai-evaluation/azure/ai/evaluation/simulator/_model_tools/_identity_manager.py b/sdk/evaluation/azure-ai-evaluation/azure/ai/evaluation/simulator/_model_tools/_identity_manager.py index 041517ee5acd..eb019f59f29b 100644 --- a/sdk/evaluation/azure-ai-evaluation/azure/ai/evaluation/simulator/_model_tools/_identity_manager.py +++ b/sdk/evaluation/azure-ai-evaluation/azure/ai/evaluation/simulator/_model_tools/_identity_manager.py @@ -14,7 +14,7 @@ from azure.core.credentials import AccessToken, TokenCredential from azure.identity import DefaultAzureCredential, ManagedIdentityCredential -AZURE_TOKEN_REFRESH_INTERVAL = 600 # seconds +AZURE_TOKEN_REFRESH_INTERVAL = os.getenv("AZURE_TOKEN_REFRESH_INTERVAL") # token refresh interval in seconds class TokenScope(Enum): From bc9e0d322cdcc6483ed8676ad5bd9ee2862bd345 Mon Sep 17 00:00:00 2001 From: Sydney Lister Date: Tue, 29 Oct 2024 10:33:43 -0700 Subject: [PATCH 2/5] update changelog and set default value for env var --- sdk/evaluation/azure-ai-evaluation/CHANGELOG.md | 1 + .../ai/evaluation/simulator/_model_tools/_identity_manager.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/sdk/evaluation/azure-ai-evaluation/CHANGELOG.md b/sdk/evaluation/azure-ai-evaluation/CHANGELOG.md index d00c8a53f0a8..a5fb1f233d53 100644 --- a/sdk/evaluation/azure-ai-evaluation/CHANGELOG.md +++ b/sdk/evaluation/azure-ai-evaluation/CHANGELOG.md @@ -7,6 +7,7 @@ ### Breaking Changes ### Bugs Fixed +- Fixed an issue where during long-running simulations, API token expires causing "Forbidden" error. Instead, users can now set an environment variable `AZURE_TOKEN_REFRESH_INTERVAL` to refresh the token more frequently to prevent expiration and ensure continuous operation of the simulation. ### Other Changes diff --git a/sdk/evaluation/azure-ai-evaluation/azure/ai/evaluation/simulator/_model_tools/_identity_manager.py b/sdk/evaluation/azure-ai-evaluation/azure/ai/evaluation/simulator/_model_tools/_identity_manager.py index eb019f59f29b..60dd05aa0526 100644 --- a/sdk/evaluation/azure-ai-evaluation/azure/ai/evaluation/simulator/_model_tools/_identity_manager.py +++ b/sdk/evaluation/azure-ai-evaluation/azure/ai/evaluation/simulator/_model_tools/_identity_manager.py @@ -14,7 +14,7 @@ from azure.core.credentials import AccessToken, TokenCredential from azure.identity import DefaultAzureCredential, ManagedIdentityCredential -AZURE_TOKEN_REFRESH_INTERVAL = os.getenv("AZURE_TOKEN_REFRESH_INTERVAL") # token refresh interval in seconds +AZURE_TOKEN_REFRESH_INTERVAL = os.getenv("AZURE_TOKEN_REFRESH_INTERVAL", 600) # token refresh interval in seconds class TokenScope(Enum): From cffe59b7b34595b0ce637352bb9bbb5860711b31 Mon Sep 17 00:00:00 2001 From: Sydney Lister Date: Tue, 29 Oct 2024 14:24:42 -0700 Subject: [PATCH 3/5] cast refresh rate to int --- .../ai/evaluation/simulator/_model_tools/_identity_manager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/evaluation/azure-ai-evaluation/azure/ai/evaluation/simulator/_model_tools/_identity_manager.py b/sdk/evaluation/azure-ai-evaluation/azure/ai/evaluation/simulator/_model_tools/_identity_manager.py index 60dd05aa0526..b6cc26910c40 100644 --- a/sdk/evaluation/azure-ai-evaluation/azure/ai/evaluation/simulator/_model_tools/_identity_manager.py +++ b/sdk/evaluation/azure-ai-evaluation/azure/ai/evaluation/simulator/_model_tools/_identity_manager.py @@ -14,7 +14,7 @@ from azure.core.credentials import AccessToken, TokenCredential from azure.identity import DefaultAzureCredential, ManagedIdentityCredential -AZURE_TOKEN_REFRESH_INTERVAL = os.getenv("AZURE_TOKEN_REFRESH_INTERVAL", 600) # token refresh interval in seconds +AZURE_TOKEN_REFRESH_INTERVAL = int(os.getenv("AZURE_TOKEN_REFRESH_INTERVAL", 600)) # token refresh interval in seconds class TokenScope(Enum): From 4b413ffbbbc5f00e1e36fa213e66039699ce303e Mon Sep 17 00:00:00 2001 From: Sydney Lister Date: Tue, 29 Oct 2024 15:35:30 -0700 Subject: [PATCH 4/5] fix pylint error --- .../ai/evaluation/simulator/_model_tools/_identity_manager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/evaluation/azure-ai-evaluation/azure/ai/evaluation/simulator/_model_tools/_identity_manager.py b/sdk/evaluation/azure-ai-evaluation/azure/ai/evaluation/simulator/_model_tools/_identity_manager.py index b6cc26910c40..ab7f21534aae 100644 --- a/sdk/evaluation/azure-ai-evaluation/azure/ai/evaluation/simulator/_model_tools/_identity_manager.py +++ b/sdk/evaluation/azure-ai-evaluation/azure/ai/evaluation/simulator/_model_tools/_identity_manager.py @@ -14,7 +14,7 @@ from azure.core.credentials import AccessToken, TokenCredential from azure.identity import DefaultAzureCredential, ManagedIdentityCredential -AZURE_TOKEN_REFRESH_INTERVAL = int(os.getenv("AZURE_TOKEN_REFRESH_INTERVAL", 600)) # token refresh interval in seconds +AZURE_TOKEN_REFRESH_INTERVAL = int(os.getenv("AZURE_TOKEN_REFRESH_INTERVAL", "600")) # token refresh interval in seconds class TokenScope(Enum): From d667d32c169cba4a5876315270af7becdfc09881 Mon Sep 17 00:00:00 2001 From: Sydney Lister Date: Thu, 31 Oct 2024 10:32:28 -0700 Subject: [PATCH 5/5] fix tox black issue --- .../ai/evaluation/simulator/_model_tools/_identity_manager.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sdk/evaluation/azure-ai-evaluation/azure/ai/evaluation/simulator/_model_tools/_identity_manager.py b/sdk/evaluation/azure-ai-evaluation/azure/ai/evaluation/simulator/_model_tools/_identity_manager.py index ab7f21534aae..166e94924023 100644 --- a/sdk/evaluation/azure-ai-evaluation/azure/ai/evaluation/simulator/_model_tools/_identity_manager.py +++ b/sdk/evaluation/azure-ai-evaluation/azure/ai/evaluation/simulator/_model_tools/_identity_manager.py @@ -14,7 +14,9 @@ from azure.core.credentials import AccessToken, TokenCredential from azure.identity import DefaultAzureCredential, ManagedIdentityCredential -AZURE_TOKEN_REFRESH_INTERVAL = int(os.getenv("AZURE_TOKEN_REFRESH_INTERVAL", "600")) # token refresh interval in seconds +AZURE_TOKEN_REFRESH_INTERVAL = int( + os.getenv("AZURE_TOKEN_REFRESH_INTERVAL", "600") +) # token refresh interval in seconds class TokenScope(Enum):