Skip to main content

Переадресация портов в вашем codespace

Можно перенаправить порты в codespace для тестирования и отладки приложения. Можно также управлять протоколом портов и предоставлять доступ к порту в организации или общий доступ.

Сведения о переадресованных портах

Переадресация портов обеспечивает доступ к TCP-портам, работающим в кодовом пространстве. Например, если веб-приложение выполняется через определенный порт в кодовом пространстве, можно настроить переадресацию этого порта. Это позволяет получать доступ к приложению из браузера на локальном компьютере для тестирования и отладки.

Note

Дополнительные сведения о GitHub CLIсм. в разделе Сведения о GitHub CLI.

Для переадресации порта используйте подкоманду gh codespace ports forward. Замените codespace-port:local-port удаленными и локальными портами, которые требуется подключить. Выполнив команду, выберите требуемый вариант из представленного списка кодовых пространств.

gh codespace ports forward CODESPACE-PORT:LOCAL-PORT

Дополнительные сведения об этой команде см. в руководстве по GitHub CLI.

Чтобы просмотреть сведения о переадресованных портах, введите gh codespace ports и выберите кодовое пространство.

Общий доступ к порту

Note

Вы можете сделать порт закрытым для организации, если ваша организация использует GitHub Team или GitHub Enterprise Cloud.

Если требуется предоставить доступ к переадресованному порту другим пользователям, можно сделать порт частным для организации или общедоступным. После того как вы сделаете порт частным для организации, любой пользователь в организации с URL-адресом порта сможет просмотреть выполняющееся приложение. После того как вы сделаете порт общедоступным, любой пользователь, который знает URL-адрес и номер порта, сможет просмотреть выполняющееся приложение без необходимости проходить проверку подлинности.

Note

Выбор параметров видимости портов может быть ограничен политикой, настроенной для вашей организации. Дополнительные сведения см. в разделе Ограничение видимости переадресованных портов.

Для изменения видимости переадресованного порта используйте подкоманду gh codespace ports visibility. Существует три варианта видимости.

  • private — объект виден только вам. Это вариант по умолчанию при переадресации порта.
  • org — объект виден членам организации, которой принадлежит репозиторий.
  • public — объект виден всем, кто знает URL-адрес и номер порта.

Замените codespace-port номером переадресованного порта. Замените setting на private, org или public. Выполнив команду, выберите требуемый вариант из представленного списка кодовых пространств.

gh codespace ports visibility CODESPACE-PORT:SETTINGS

Задать видимость для нескольких портов можно с помощью одной команды. Например:

gh codespace ports visibility 80:private 3000:public 3306:org

Дополнительные сведения об этой команде см. в руководстве по GitHub CLI.

Использование средств командной строки и клиентов REST для доступа к портам

При пересылке порта приложение становится доступным по URL-адресу https://CODESPACENAME-PORT.app.github.dev. Например, https://monalisa-hot-potato-vrpqrxxrx7x2rxx-4000.app.github.dev. Если вы пересылаете частный порт из классического приложения VS Code, ваше приложение также будет доступно на порту localhost, например 127.0.0.1:4000.

Чтобы получить доступ к приложению с помощью клиента REST, например Postman, или средства командной строки, например curl, вам не нужно проходить проверку подлинности, если вы используете порт localhost, или если вы обращаетесь к общедоступному порту в удаленном домене. Однако для подключения к частному порту в удаленном домене необходимо пройти проверку подлинности с помощью GITHUB_TOKEN маркера доступа в запросе.

Note

Автоматически GITHUB_TOKEN создается при запуске пространства кода и остается неизменным в течение сеанса пространства кода. При остановке и перезапуске пространства кода создается новое GITHUB_TOKEN пространство кода.

Поиск адреса для подключения

Чтобы найти адрес переадресованного порта, введите gh codespace ports. Если у вас несколько пространств кода, выберите соответствующее пространство кода из отображаемого списка.

Скопируйте адрес и вставьте его где-то для последующего использования.

Поиск GITHUB_TOKEN

  1. Запустите сеанс SSH для пространства кода.

    gh codespace ssh
    
  2. Если у вас несколько пространств кода, выберите соответствующее пространство кода из отображаемого списка.

  3. GITHUB_TOKENОтображение .

    echo $GITHUB_TOKEN
    

    Маркер — это строковое начало ghu_.

  4. Скопируйте маркер.

    Important

    Не делитесь этим маркером доступа с кем-либо.

  5. Выйдите из сеанса SSH.

    exit
    

Использование curl для доступа к переадресованным порту

В терминале на локальном компьютере введите следующее:

curl ADDRESS -H "X-Github-Token: TOKEN"

Замените ADDRESS и TOKEN на значения, скопированные ранее.

Использование Postman для доступа к переадресованным порту

  1. Откройте Postman.

  2. Создайте новый запрос GET.

  3. Вставьте адрес, скопированный ранее в качестве URL-адреса запроса.

    Снимок экрана: URL-адрес перенаправленного порта, вставленный в Postman в качестве URL-адреса запроса GET. Выделен URL-адрес.

  4. На вкладке "Заголовки " создайте новую запись, в которой ключ — X-Github-Token, а значение GITHUB_TOKEN — скопированное ранее.

    Снимок экрана: фиктивный GITHUB_TOKEN, вставленный в Postman в качестве значения ключа X-GitHub-Token. Выделен ключ и значение.

  5. Нажмите Отправить.

Автоматическая пересылка порта

Вы можете добавить переадресованный порт в конфигурацию GitHub Codespaces для репозитория, чтобы порт автоматически перенаправился для всех пространств кода, созданных из репозитория. После обновления конфигурации все ранее созданные кодовые пространства необходимо перестроить, чтобы применить изменение. Дополнительные сведения о файле конфигурации контейнера разработки см. в разделе Основные сведения о контейнерах разработки.

  1. В пространстве кода откройте файл конфигурации контейнера разработки, который требуется обновить. Обычно этот файл имеет значение .devcontainer/devcontainer.json.

  2. Добавление свойства forwardPorts

    "forwardPorts": [NUMBER],
    

    Замените NUMBER номер порта, который требуется перенаправить. Это может быть разделенный запятыми список номеров портов.

  3. Сохраните файл.

Маркировка порта

При открытии пространства кода в браузере или в классическом приложении VS Code можно пометить переадресованный порт, чтобы упростить идентификацию в списке.

  1. Откройте терминал в пространстве кода.

  2. Перейдите на вкладку "ПОРТЫ ".

  3. Щелкните правой кнопкой мыши порт, который нужно наметить, а затем выберите пункт "Задать метку порта".

    Снимок экрана: всплывающее меню для переадресованного порта с выделенным параметром "Задать метку порта" с оранжевым контуром.

  4. Введите метку для порта, а затем нажмите клавишу ВВОД.

    Снимок экрана: метка "Промежуточное", добавленная в качестве настраиваемой метки для переадресованного порта.

Автоматическая маркировка переадресованного порта

Вы можете пометить порт и записать изменения в файл конфигурации контейнера разработки для репозитория. Если это сделать для порта, который автоматически перенаправлен, используя forwardPorts свойство, метка будет автоматически применена к этому переадресованном порту для всех будущих пространств кода, созданных из репозитория с помощью этого файла конфигурации.

  1. Откройте терминал в пространстве кода.

  2. Перейдите на вкладку "ПОРТЫ ".

  3. Щелкните правой кнопкой мыши порт, атрибут метки которого нужно добавить в конфигурацию пространства кода, а затем щелкните "Задать метку" и "Обновить devcontainer.json".

    Снимок экрана: всплывающее меню для переадресованного порта с выделенным параметром "Задать метку и обновление devcontainer.json" с оранжевым контуром.

  4. Введите метку для порта, а затем нажмите клавишу ВВОД.

    Снимок экрана: метка "Промежуточное", добавленная в качестве настраиваемой метки для переадресованного порта.

  5. Если в репозитории есть несколько файлов конфигурации контейнера разработки, вам будет предложено выбрать файл, который требуется обновить.

    Файл конфигурации контейнера разработки обновляется, чтобы включить новую метку в portsAttributes свойство. Например:

    // Use 'forwardPorts' to make a list of ports inside the container available locally.
    "forwardPorts": [3333, 4444],
    
    "portsAttributes": {
      "3333": {
        "label": "app-standard-preview"
      },
      "4444": {
        "label": "app-pro-preview"
      }
    }
    

Просмотр меток портов в командной строке

Метки портов отображаются при перечислении переадресированных портов для пространства кода. Для этого используйте gh codespace ports команду, а затем выберите пространство кода.