gpt4 book ai didi

python - 无法使用python创建azure链接服务

转载 作者:行者123 更新时间:2023-12-03 05:51:11 25 4
gpt4 key购买 nike

我正在尝试做什么

我正在尝试创建一个 azure 数据工厂管道,以将文件从 blob 复制并粘贴到 blob 或从 blob 复制并粘贴到数据湖。

我做了什么

我刚刚按照 Microsoft 网站上的教程进行操作,我已经有了 ADF 和 blob,所以我没有再次创建它,我现在正在尝试创建 Azure 链接服务,所以我使用了以下代码:

# Create an Azure Storage linked service
ls_name = 'storageLinkedService'

# IMPORTANT: specify the name and key of your Azure Storage account.
storage_string = SecureString('DefaultEndpointsProtocol=https;AccountName=<storageaccountname>;AccountKey=<storageaccountkey>')

ls_azure_storage = AzureStorageLinkedService(connection_string=storage_string)
ls = adf_client.linked_services.create_or_update(rg_name, df_name, ls_name, ls_azure_storage)
print_item(ls)

但是当我运行它时,我收到此错误:

Traceback (most recent call last):

File "<ipython-input-173-cabc65dd11b9>", line 4, in <module>
ls = adf_client.linked_services.create_or_update(rg_name, df_name, ls_name, ls_azure_storage)

File "C:\ProgramData\Anaconda3\lib\site-packages\azure\mgmt\datafactory\operations\linked_services_operations.py", line 170, in create_or_update
raise models.ErrorResponseException(self._deserialize, response)

ErrorResponseException: Operation returned an invalid status code 'Not Found'

我不知道为什么会收到此错误。有人有想法吗?

更新

我尝试跳过此步骤,并尝试使用以下命令在 blob 中创建和归档:adf_client.datasets.create_or_update(rg_name, df_name, ds_name, ds_azure_blob)

我得到了同样的错误ErrorResponseException:操作返回了无效的状态代码“Not Found”,这让我认为问题可能与blob有关。

最佳答案

我尝试重现您的问题,但失败了。

我没有ADF,所以我按照官方教程创建数据工厂和链接服务,没有发生错误。

主要功能

def main():

# Azure subscription ID
subscription_id = '***'

# This program creates this resource group. If it's an existing resource group, comment out the code that creates the resource group
rg_name = '***'

# The data factory name. It must be globally unique.
df_name = '***'

# Specify your Active Directory client ID, client secret, and tenant ID
credentials = ServicePrincipalCredentials(client_id='***', secret='***', tenant='***')
resource_client = ResourceManagementClient(credentials, subscription_id)
adf_client = DataFactoryManagementClient(credentials, subscription_id)

rg_params = {'location':'eastus'}
df_params = {'location':'eastus'}

# create the resource group
# comment out if the resource group already exits
resource_client.resource_groups.create_or_update(rg_name, rg_params)

Create a data factory
df_resource = Factory(location='eastus')
df = adf_client.factories.create_or_update(rg_name, df_name, df_resource)
print_item(df)
while df.provisioning_state != 'Succeeded':
df = adf_client.factories.get(rg_name, df_name)
time.sleep(1)

# Create an Azure Storage linked service
ls_name = 'storageLinkedService'

# IMPORTANT: specify the name and key of your Azure Storage account.
storage_string = SecureString('DefaultEndpointsProtocol=https;AccountName=***;AccountKey=***')

ls_azure_storage = AzureStorageLinkedService(connection_string=storage_string)
ls = adf_client.linked_services.create_or_update(rg_name, df_name, ls_name, ls_azure_storage)
print_item(ls)

ErrorResponseException: Operation returned an invalid status code 'Not Found'

我认为您可以检查参数是否有错误或者服务是否存在。(df、资源组、存储帐户)

如有任何疑问,请随时告诉我。

<小时/>

更新答案:

我在门户上的 Azure AD 中创建了自己的应用程序注册。

enter image description here

下面的应用程序ID是您的client_id

enter image description here

创建您的 secret 并记住将其写下来,因为它稍后会隐藏。

enter image description here

下面的目录ID是租户ID

enter image description here

<小时/>

更新答案 2:

我也是贡献者角色,所以我认为这不是角色问题。我尝试将参数中的ra_name(资源组)更改为不存在的值,成功重现了您的异常。

请再次检查您的资源组或其他参数是否存在。

enter image description here

<小时/>

仅供摘要:

目前 ADF V1 和 V2 似乎不支持西欧区域。

enter image description here

enter image description here

但是,此 article 中的支持的区域章节尚未更新。这让你烦恼了好久。您可以重新创建ADF并按照原始代码创建链接服务。

关于python - 无法使用python创建azure链接服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47712473/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com