Linux와 Docker로 시작하는 Azure의 서버리스
10643 단어 serverlessAzureFunctions리눅스Azure도커
Azure Function on Linux and Docker
MS Azure의 서버리스인 Azure Function에 Linux와 Docker 지원이 추가되었습니다.
기존의 Azure Function은 WindowsOS 기반으로 동작하고 있었지만, 이것에 프리뷰로 Linux가 추가되어 더욱 Docker 이미지를 배포할 수 있게 되었습니다.
htps : // bgs. msd 응. 미 c 로소 ft. 코 m / 아 p r ゔ ぃ 세 아 m / 2017/11/15
htps : // bg. 음, 글쎄. 에 / 포 st / 룬 - 아즈레 - 펑 c 치온 s - ndo - c r /
Azure Function on Linux
Linux용 Azure Function을 사용하는 방법은 간단하며 포털에서 배포할 수 있습니다.
다음과 같이 Linux(preview)를 선택하면 Azure Function이 Linux에서 동작합니다.
아직 Windows판만큼 기능이 풍부하지는 않습니다만(Python이 없다···?), 최근의 Microsoft는 Linux매우 좋아하는 것 같기 때문에, 그 중 확충되어 갈 것입니다.
C#과 Javascript는 작동합니다.
CLI에서 Azure Function을 시작하는 방법은 블로그의 방법으로 가능합니다.
az cli를 사용하므로 여기에서 설치합니다.
htps : // / cs. mic로소 ft. 코 m/엔-우 s/cぃ/아즈레/인 s타르-아즈레-cぃ?ゔ ぃ w = 아즈레 - c ぃ ぁ st
Azure CLI 설치가 번거롭다면 Azure 포털에서 Bash를 시작할 수도 있습니다.
다음과 같은 명령으로 Azure Function Linux를 시작할 수 있습니다.
(파라미터는 적절히 바꾸십시오)
# Create a Resource Group
az group create -n rglinuxdocker -l "South Central US"
# Create a Linux App Service Plan (use S2 or S3 as the sku value for larger VMs)
az appservice plan create -n rgplan -g rglinuxdocker --is-linux -l "South Central US" --sku S1 --number-of-workers 1
# Create a storage account
az storage account create -n rgdocstorage --location "South Central US" --resource-group rglinuxdocker --sku Standard_LRS
# Create a Linux Function App
az functionapp create -n rgfuncapp -g rglinuxdocker -p rgplan -s rgdocstorage
# Create a Linux Function App pointing to a specific container image
az functionapp create -n rgfuncapp -g rglinuxdocker -p rgplan -i microsoft/azure-functions-runtime:2.0.0-jessie -s rgdocstorage
물론 KUDU도 기동하고 있으므로, 이하에 브라우저로 액세스하는 것도 가능합니다.
htps : // rg 푹신 p. scm. 어긋나는 b로 s. 네 t
Linux의 C#은 물건 과 같습니다.
KUDU에서 Bash를 열고 OS를 확인하면 아무래도 우분투처럼 보입니다.
sudo 권한이 없고 apt-get도 할 수 없었습니다.
Azure Function on Docker
또한 이제 Docker 이미지를 Azure Function에 배포할 수 있습니다.
Azure에서 제공하는 Azure function runtime의 Docker 이미지을 사용하여 사용자 지정 Docker 이미지를 만들 수 있습니다.
htps : // / cs. mic로소 ft. 코 m / 쟈 jp / 아즈레 / 아즈레 - 펑 c 치온 s / 훗 c 치 온 s - 쿠 아테 - 펑 c 치 온 - 헛 x - 쿠 s
여러분은 Github 로 샘플이 공개되어 있으므로 우선은 이것을 복제해서 사용하는 것이 좋다고 생각합니다.
git clone https://github.com/Azure-Samples/functions-linux-custom-image.git --config core.autocrlf=input
cd functions-linux-custom-image
Github에는 Dockerfile도 포함되어 있습니다.
내용은 이런 느낌입니다.
FROM microsoft/azure-functions-runtime:v2.0.0-beta1
ENV AzureWebJobsScriptRoot=/home/site/wwwroot
COPY . /home/site/wwwroot
일단 이것을 빌드하고 사용해 봅시다.
docker build -t myazfunc:v1.0.0 .
docker run -it -p 8080:80 myazfunc:v1.0.0
로컬로 docker run
그러면 이런 식으로 시작되고 로그가 출력됩니다.
8080 포트에서 공개되므로 브라우저에서 액세스해 보면 Microsoft 같은 디자인의 사이트가 표시됩니다.
http://< ip address >:8080
끝에 API도 포함되어 있으므로 /api/HttpTriggerJS1?name=world
를 추가하여 액세스해 보겠습니다.
http://< ip address >:8080/api/HttpTriggerJS1?name=world
이제 Docker 컨테이너가 성공적으로 실행되고 있는지 확인할 수 있습니다.
그런 다음 Azure Function에서 시작할 수 있도록 사용자 지정 Docker 이미지를 DockerHub에 등록합니다.
docker login
docker tag myazfunc:v1.0.0 <yourrepo>/myazfunc
docker push <yourrepo>/myazfunc
Azure Function을 Docker 컨테이너에서 시작할 때 Azure CLI에서 DockerHub의 Docker 이미지를 지정하고 Azure Function에 배포하는 것 같습니다.
명령은 다음과 같습니다.
az functionapp create --name myrgdocker --storage-account rgdocstorage --resource-group rglinuxdocker --plan rgplan --deployment-container-image-name <yourrepo>/myazfunc
storageConnectionString=$(az storage account show-connection-string \
--resource-group rglinuxdocker --name rgdocstorage \
--query connectionString --output tsv)
az functionapp config appsettings set --name myrgdocker \
--resource-group rglinuxdocker \
--settings AzureWebJobsDashboard=$storageConnectionString \
AzureWebJobsStorage=$storageConnectionString
이제 이전에 로컬에서 시작한 동일한 Docker 이미지가 Azure Function에서 시작됩니다.
아래 URL에 브라우저를 통해 액세스하여 기본 사이트를 볼 수 있습니다.
htps : // myrg c r. 어긋나는 b로 s. 네 t/
API에 HTTP GET도 가능합니다.
htps : // myrg c r. 어긋나는 b로 s. 네 t/아피/H tpT 릭 rJS1? 핥기 = rld
물론 KUDU도 시작할 수 있습니다.
htps : // myrg c r. scm. 어긋나는 b로 s. 네 t
참고: 이번에 만든 환경은 삭제되었습니다. 액세스해도 아무것도 없습니다.
Reference
이 문제에 관하여(Linux와 Docker로 시작하는 Azure의 서버리스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/cvusk/items/f3ded5db2c95e8bf78bc
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
# Create a Resource Group
az group create -n rglinuxdocker -l "South Central US"
# Create a Linux App Service Plan (use S2 or S3 as the sku value for larger VMs)
az appservice plan create -n rgplan -g rglinuxdocker --is-linux -l "South Central US" --sku S1 --number-of-workers 1
# Create a storage account
az storage account create -n rgdocstorage --location "South Central US" --resource-group rglinuxdocker --sku Standard_LRS
# Create a Linux Function App
az functionapp create -n rgfuncapp -g rglinuxdocker -p rgplan -s rgdocstorage
# Create a Linux Function App pointing to a specific container image
az functionapp create -n rgfuncapp -g rglinuxdocker -p rgplan -i microsoft/azure-functions-runtime:2.0.0-jessie -s rgdocstorage
git clone https://github.com/Azure-Samples/functions-linux-custom-image.git --config core.autocrlf=input
cd functions-linux-custom-image
FROM microsoft/azure-functions-runtime:v2.0.0-beta1
ENV AzureWebJobsScriptRoot=/home/site/wwwroot
COPY . /home/site/wwwroot
docker build -t myazfunc:v1.0.0 .
docker run -it -p 8080:80 myazfunc:v1.0.0
docker login
docker tag myazfunc:v1.0.0 <yourrepo>/myazfunc
docker push <yourrepo>/myazfunc
az functionapp create --name myrgdocker --storage-account rgdocstorage --resource-group rglinuxdocker --plan rgplan --deployment-container-image-name <yourrepo>/myazfunc
storageConnectionString=$(az storage account show-connection-string \
--resource-group rglinuxdocker --name rgdocstorage \
--query connectionString --output tsv)
az functionapp config appsettings set --name myrgdocker \
--resource-group rglinuxdocker \
--settings AzureWebJobsDashboard=$storageConnectionString \
AzureWebJobsStorage=$storageConnectionString
Reference
이 문제에 관하여(Linux와 Docker로 시작하는 Azure의 서버리스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/cvusk/items/f3ded5db2c95e8bf78bc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)