diff --git a/changelogs/fragments/azure-storage-cloud-environment.yaml b/changelogs/fragments/azure-storage-cloud-environment.yaml new file mode 100644 index 00000000000..80999997ce2 --- /dev/null +++ b/changelogs/fragments/azure-storage-cloud-environment.yaml @@ -0,0 +1,3 @@ +--- +bugfixes: +- fix azure storage blob cannot create blob container in non-public azure cloud environment. (https://github.com/ansible/ansible/issues/35223) \ No newline at end of file diff --git a/lib/ansible/module_utils/azure_rm_common.py b/lib/ansible/module_utils/azure_rm_common.py index 00886e813ba..6b304b27064 100644 --- a/lib/ansible/module_utils/azure_rm_common.py +++ b/lib/ansible/module_utils/azure_rm_common.py @@ -154,6 +154,7 @@ try: from azure.mgmt.marketplaceordering import MarketplaceOrderingAgreements from azure.mgmt.trafficmanager import TrafficManagerManagementClient from azure.storage.cloudstorageaccount import CloudStorageAccount + from azure.storage.blob import PageBlobService, BlockBlobService from adal.authentication_context import AuthenticationContext from azure.mgmt.sql import SqlManagementClient from azure.mgmt.rdbms.postgresql import PostgreSQLManagementClient @@ -533,9 +534,13 @@ class AzureRMModuleBase(object): try: self.log('Create blob service') if storage_blob_type == 'page': - return CloudStorageAccount(storage_account_name, account_keys.keys[0].value).create_page_blob_service() + return PageBlobService(endpoint_suffix=self._cloud_environment.suffixes.storage_endpoint, + account_name=storage_account_name, + account_key=account_keys.keys[0].value) elif storage_blob_type == 'block': - return CloudStorageAccount(storage_account_name, account_keys.keys[0].value).create_block_blob_service() + return BlockBlobService(endpoint_suffix=self._cloud_environment.suffixes.storage_endpoint, + account_name=storage_account_name, + account_key=account_keys.keys[0].value) else: raise Exception("Invalid storage blob type defined.") except Exception as exc: