Koyeb CLI로 서버리스 Docker 컨테이너 및 기능 배포
7570 단어 serverlesscloudclidocker
엔지니어로서 우리는 터미널을 사용하는 데 몇 시간을 소비하므로 CLI를 최대한 간단하고 직관적으로 설계했습니다. CLI를 사용하면 터미널을 벗어나지 않고도 대량 작업을 쉽게 자동화하고 수행할 수 있습니다. 이 첫 번째 릴리스를 사용하면 Docker 컨테이너를 빠르게 배포하고, 스택 및 비밀을 구성하고, 함수를 호출하고, 실행을 모니터링하는 등의 작업을 할 수 있습니다!
이 게시물에서는 CLI를 사용하여 다음을 수행하는 방법을 확인합니다.
시작하여 몇 가지 멋진 기능을 사용해 봅시다!
시작하기
설치
Koyeb CLI는 Linux, macOS 및 Windows용pre-compiled binaries 또는 이동 패키지로 사용할 수 있습니다. 일단 설치되면
koyeb
명령을 셸에서 직접 사용할 수 있습니다. 자세한 내용은 installation instructions에서 확인하세요!로그인
설치가 완료되면
koyeb init
를 입력하여 CLI 구성을 생성합니다.➜ koyeb init
? Do you want to create a new configuration file in (/Users/kbot/.koyeb.yaml)? [y/N]
Enter your api credential: ****************************************************************█
INFO[0006] Creating new configuration in /Users/kbot/.koyeb.yaml
CLI는 Koyeb API 토큰을 요청합니다. 직접 생성할 수 있습니다from the
control panel.
Docker 컨테이너 배포 및 실행
Hello World 컨테이너
CLI를 사용하여 Docker 컨테이너를 배포하려면 다음을 사용하여 YAML 파일을 생성하기만 하면 됩니다.
대상 구성. 구성에서 간단한 hello-world 기능으로 시작하겠습니다.
functions:
- name: hello-world
image: ubuntu
command: ["bash", "-c", "echo 'hello-world from Koyeb'"]
이제 다음을 사용하여 hello-stack이라는 새 스택을 생성할 수 있습니다.
koyeb create stack -n <stack_name>
및 koyeb create revision <stack_name> -f <config.yaml>
로 구성을 배포합니다.koyeb create stack -n hello-stack
koyeb create revision hello-stack -f koyeb.yaml
스택이 배포되었습니다.
koyeb get revision <stack_name>
로 상태를 확인하겠습니다.$ koyeb get revision hello-stack
SHA COMMIT INFO MESSAGE STATUS CREATED AT
ea7efa270c91548b66308830c48a35415d0d496b ACTIVE 2020-11-24T14:17:18.393Z
스택이
BUILDING
상태인 경우 몇 초만 기다리십시오.배포를 완료합니다.
함수를 호출하려면
koyeb invoke function <stack_name> <function_name>
를 사용하십시오.--tail
를 사용하여 실행될 때 스트리밍된 로그를 얻을 수 있습니다.$ koyeb invoke function hello-stack hello-world --tail
INFO[0000] Event sent: 713cb3ae-11df-499f-8a0b-c5b3d7ffe448
INFO[0006] hello-world from Koyeb
INFO[0020] Function exited with state SUCCEEDED
짜잔! 함수를 배포하고 호출하는 방법을 알고 있습니다.
Koyeb CLI로 이벤트 및 매개변수 보내기
API에서 데이터를 가져오는 fetch-api라는 두 번째 함수를 배포합니다. 스크랩할 API는 받은 이벤트에서 결정됩니다.
이를 위해
stedolan/jq
Docker 이미지를 사용하여 JSON 이벤트에서 올바른 필드를 읽습니다.koyeb.yaml
파일을 다음과 같이 수정해 보겠습니다.functions:
- name: hello-world
image: ubuntu
command: ["bash", "-c", "echo 'hello-world from Koyeb'"]
- name: fetch-api
image: stedolan/jq
command: ["bash", "-c"]
args: ['wget -q -O - `jq -r .data.url /koyeb/events/in/raw`']
이제 이 새 버전의 스택을
koyeb create revision hello-stack -f koyeb.yaml
로 배포하고 koyeb get revision
로 배포를 따를 수 있습니다.$ koyeb get revision hello-stack
SHA COMMIT INFO MESSAGE STATUS CREATED AT
8a1e6c7f1c660c91f50cd89a5b69451dbd93fe1b ACTIVE 2020-11-24T14:34:56.371Z
ea7efa270c91548b66308830c48a35415d0d496b STOPPING 2020-11-24T14:17:18.393Z
이제 스크랩할
url
로 함수를 호출합니다. Koyeb은 cloudevent 사양을 사용하여 이벤트 형식을 정의합니다. YAML 또는 JSON을 사용하여 함수로 보낼 이벤트를 작성할 수 있습니다. event.yaml
파일을 만들고 다음 내용으로 GitHub API를 가져오도록 요청합니다.type: scrap-request
source: cli
data:
url: https://api.github.com/repos/koyeb/koyeb-cli/releases/latest
이제 이 이벤트로 함수를 호출해 보겠습니다.
✗ koyeb invoke function hello-stack fetch-api --tail -f event.yaml
INFO[0000] Event sent: 8a9721c4-0243-4e0a-a40d-6a22f4b23a8b
INFO[0002] {
INFO[0002] "url": "https://api.github.com/repos/koyeb/koyeb-cli/releases/34190372",
[..]
INFO[0004] }
INFO[0020] Function exited with state SUCCEEDED
이제 쉘에서 직접 함수를 쉽게 호출하는 방법을 알았습니다!
Python 및 Node.js 기능 배포
Koyeb CLI를 사용하여 GitHub에서 배포된 코드 함수 및 컨테이너를 호출할 수도 있습니다.
koyeb create stack
를 사용하는 대신 web interface을 통해 GitHub 리포지토리를 연결하고 리포지토리에 koyeb.yaml
파일을 추가하기만 하면 됩니다. 배포가 자동으로 수행됩니다.매번 당신
git push
. GitHub에 대한 자세한 내용을 읽을 수 있습니다.our documentation에 통합 .
koyeb get revision
와 koyeb invoke function
는 다른 스택과 동일하게 사용할 수 있습니다.오늘 Koyeb CLI를 사용해보세요!
Koyeb CLI는 Go로 작성되었으며 완전합니다open-source. 의견, 기능 요청 및 기여는 언제나 환영합니다!
연말까지 매월 1000시간의 컴퓨팅, 1TB의 스토리지, 5TB의 대역폭을 무료로 제공하게 되어 기쁩니다! Sign up now
질문이 있거나 피드백을 공유하려는 경우 항상 그렇듯이 support channel , Slack 또는 통합 인스턴트 메시징 시스템을 통해 연락할 수 있습니다.
Reference
이 문제에 관하여(Koyeb CLI로 서버리스 Docker 컨테이너 및 기능 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/koyeb/deploy-serverless-docker-containers-and-functions-with-koyeb-cli-3k5c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)