У меня есть ASP. NET Core WebApi Project, развернутый в Azure Dev Spaces, к которому я обращаюсь по следующему URL (отредактировано):
http://xxxxxxxxx-devspace-dev.xxxxxxxxxxxxxxxcustomerwebapi.xxxxxxxx.sea.azds.io/swagger/index.html
Я хочу ограничить доступ к URL, чтобы к нему можно было получить доступ только через указанный порт. Пример порта 7501:
http://xxxxxxxxx-devspace-dev.xxxxxxxxxxxxxxxcustomerwebapi.xxxxxxxx.sea.azds.io:7501/swagger/index.html
Я использую azds up
для развертывания проекта в Dev Space.
У меня есть следующий Docker .develop файл, который используется для развертывания в Dev Spaces:
FROM mcr.microsoft.com/dotnet/core/sdk:2.2
ARG BUILD_CONFIGURATION=Debug
ENV ASPNETCORE_ENVIRONMENT=Development
ENV ASPNETCORE_URLS=http://+:80
ENV DOTNET_USE_POLLING_FILE_WATCHER=true
EXPOSE 80
WORKDIR /src
COPY ["nuget.config", "./"]
COPY ["xxxxxxxxx.Customer.WebApi.csproj", "./"]
RUN dotnet restore "xxxxxxxxx.Customer.WebApi.csproj"
COPY . .
RUN dotnet build --no-restore -c $BUILD_CONFIGURATION
RUN echo "exec dotnet run --no-build --no-launch-profile -c $BUILD_CONFIGURATION -- \"\$@\"" > /entrypoint.sh
ENTRYPOINT ["/bin/bash", "/entrypoint.sh"]
Файл values.yaml моих диаграмм содержит следующий фрагмент сценария:
service:
type: ClusterIP
port: 80
И «шаблоны» диаграмм deploy.yaml имеет следующий фрагмент:
spec:
revisionHistoryLimit: 0
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
app: {{ template "xxxxxxxxxcustomerwebapi.name" . }}
release: {{ .Release.Name }}
template:
metadata:
labels:
app: {{ template "xxxxxxxxxcustomerwebapi.name" . }}
draft: {{ .Values.draft | default "draft-app" }}
release: {{ .Release.Name }}
annotations:
buildID: {{ .Values.buildID | default "" | quote }}
spec:
containers:
- name: {{ .Chart.Name }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
ports:
- name: http
containerPort: 80
protocol: TCP
{{- if .Values.probes.enabled }}
livenessProbe:
httpGet:
path: /
port: http
readinessProbe:
httpGet:
path: /
port: http
{{- end }}
env:
{{- $root := . }}
{{- range $ref, $values := .Values.secrets }}
{{- range $key, $value := $values }}
- name: {{ $ref }}_{{ $key }}
valueFrom:
secretKeyRef:
name: {{ template "xxxxxxxxxcustomerwebapi.fullname" $root }}-{{ $ref | lower }}
key: {{ $key }}
{{- end }}
{{- end }}
Но изменение портов из этих файлов приводит только к BadGateway, а URL с номером порта 7501 не работает.
Может кто-нибудь подсказать, как мне получить доступ к URL только через указанный номер порта?