是否可以将Azure Dev Spaces与API管理一起使用?

时间:2019-08-13 10:34:47

标签: azure kubernetes azure-api-management azure-aks azure-dev-spaces

我有一个在Azure云上运行的Azure AKS群集。前端和移动可通过Azure API管理对其进行访问。我的前端应用程序位于AKS之外。

是否可以在此设置中使用Azure开发空间来测试我在隔离环境中所做的更改?

我已经在AKS中创建了一个新的命名空间,并为forntend应用程序上的测试环境创建了一个单独的部署插槽,但是我不知道如何在Azure API管理上创建隔离的路由。

因此,我希望有一个隔离的环境,该环境共享AKS上的大多数容器,但是使用我的本地计算机托管一项正在测试的服务。

1 个答案:

答案 0 :(得分:1)

我假设您打算通过域名上的import uproot import dask import dask.dataframe as dd from dask.delayed import delayed def delayed_frame(files, tree_name): """create master delayed DataFrame from multiple files""" @delayed def single_frame(file_name, tree_name): """read external file, convert to pandas.DataFrame, return it""" tree = uproot.open(file_name).get(tree_name) return tree.pandas.df() ## this is the pd.DataFrame return dd.from_delayed([single_frame(f, tree_name) for f in files]) def save_selected_frames(df, selections, prefix): """perform queries on a delayed DataFrame and save HDF5 output""" queries = {sel_name: df.query(sel_query) for sel_name, sel_query in selections.items()] computes = [] for dfname, df in queries.items(): outname = f"{prefix}_{dfname}.h5" computes.append(df.to_hdf(outname, f"/{prefix}", compute=False)) dask.compute(*computes) selections = {"s1": "(A == True) & (N > 1)", "s2": "(B == True) & (N > 2)", "s3": "(C == True) & (N > 3)"} from glob import glob df = delayed_frame(glob("/path/to/files/*.root"), "selected") save_selected_frames(df, selections, "selected") ## expect output files: ## - selected_s1.h5 ## - selected_s2.h5 ## - selected_s3.h5 前缀使用Dev Spaces路由。为此,您最终需要一个space.s.标头,其中包含这样的前缀,作为对在AKS集群中运行的Dev Spaces入口控制器的请求的一部分。

听起来像是在您的情况下,您将前端作为Azure Web App运行,并在AKS中运行后端服务。因此,您的前端需要包括执行以下两项操作之一所需的逻辑:

  • 允许插槽实例自定义要使用的空间名称(例如,它可能会使用Host之类的名称来调用AKS后端服务)
  • 从前端请求中读取testing.s.default.myservice.azds.io标头,并将其传播到后端请求。

在两种情况下,您可能都需要配置Azure API管理以将适当的请求正确传播到您创建的测试槽。我对API管理如何配置路由规则以帮助这一部分还不太了解,但希望我能够对Dev Spaces部分有所了解。