VPC 네트워크의 내부 HTTP 엔드포인트에서 Pub/Sub 이벤트 수신
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
Eventarc를 사용하여 Pub/Sub 메시지 이벤트를 수신하는 가상 프라이빗 클라우드(VPC) 네트워크에 내부 HTTP 엔드포인트를 만듭니다.
더 살펴보기
이 코드 샘플이 포함된 자세한 문서는 다음을 참조하세요.
코드 샘플
Python
Eventarc에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다.
자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["이해하기 어려움","hardToUnderstand","thumb-down"],["잘못된 정보 또는 샘플 코드","incorrectInformationOrSampleCode","thumb-down"],["필요한 정보/샘플이 없음","missingTheInformationSamplesINeed","thumb-down"],["번역 문제","translationIssue","thumb-down"],["기타","otherDown","thumb-down"]],[],[[["\u003cp\u003eThis content demonstrates how to create an internal HTTP endpoint within a Virtual Private Cloud (VPC) network using Eventarc.\u003c/p\u003e\n"],["\u003cp\u003eThe endpoint is designed to receive Pub/Sub message events, enabling communication within the VPC environment.\u003c/p\u003e\n"],["\u003cp\u003eThe provided Python code sample establishes an HTTP server that can handle both GET and POST requests and log them.\u003c/p\u003e\n"],["\u003cp\u003eTo authenticate with Eventarc, Application Default Credentials (ADC) need to be set up for local development.\u003c/p\u003e\n"]]],[],null,["# Receive Pub/Sub events at an internal HTTP endpoint in a VPC network\n\nCreates an internal HTTP endpoint in a Virtual Private Cloud (VPC) network that receives Pub/Sub message events using Eventarc.\n\nExplore further\n---------------\n\n\nFor detailed documentation that includes this code sample, see the following:\n\n- [Receive Pub/Sub events at an internal HTTP endpoint in a VPC network](/eventarc/standard/docs/vpc-endpoints/receive-vpc-internal-endpoint)\n\nCode sample\n-----------\n\n### Python\n\n\nTo authenticate to Eventarc, set up Application Default Credentials.\nFor more information, see\n\n[Set up authentication for a local development environment](/docs/authentication/set-up-adc-local-dev-environment).\n\n #!/usr/bin/env python3\n from http.server import BaseHTTPRequestHandler, HTTPServer\n import logging\n\n class S(BaseHTTPRequestHandler):\n def _set_response(self):\n self.send_response(200)\n self.send_header('Content-type', 'text/html')\n self.end_headers()\n\n def do_GET(self):\n logging.info(\"GET request,\\nPath: %s\\nHeaders:\\n%s\\n\", str(self.path), str(self.headers))\n self._set_response()\n self.wfile.write(\"GET request for {}\".format(self.path).encode('utf-8'))\n\n def do_POST(self):\n content_length = int(self.headers['Content-Length'])\n post_data = self.rfile.read(content_length)\n logging.info(\"POST request,\\nPath: %s\\nHeaders:\\n%s\\n\\nBody:\\n%s\\n\",\n str(self.path), str(self.headers), post_data.decode('utf-8'))\n\n self._set_response()\n self.wfile.write(\"POST request for {}\".format(self.path).encode('utf-8'))\n\n def run(server_class=HTTPServer, handler_class=S, port=80):\n logging.basicConfig(level=logging.INFO)\n server_address = ('', port)\n http_server = server_class(server_address, handler_class)\n logging.info('Starting HTTP Server at port %d...\\n', port)\n try:\n http_server.serve_forever()\n except KeyboardInterrupt:\n pass\n http_server.server_close()\n logging.info('Stopping HTTP Server...\\n')\n\n if __name__ == '__main__':\n from sys import argv\n\n if len(argv) == 2:\n run(port=int(argv[1]))\n else:\n run()\n\nWhat's next\n-----------\n\n\nTo search and filter code samples for other Google Cloud products, see the\n[Google Cloud sample browser](/docs/samples?product=eventarc)."]]