我有一个在Azure云上运行的Azure AKS群集。前端和移动可通过Azure API管理对其进行访问。我的前端应用程序位于AKS之外。
是否可以在此设置中使用Azure开发空间来测试我在隔离环境中所做的更改?
我已经在AKS中创建了一个新的命名空间,并为forntend应用程序上的测试环境创建了一个单独的部署插槽,但是我不知道如何在Azure API管理上创建隔离的路由。
因此,我希望有一个隔离的环境,该环境共享AKS上的大多数容器,但是使用我的本地计算机托管一项正在测试的服务。
答案 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部分有所了解。