Azure
Microsoft が管理する世界のデータ センター ネットワークを介してアプリケーションとサービスを構築、配置、および管理するインフラストラクチャおよびクラウド コンピューティング プラットフォーム。
438 件の質問
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
下記のページを見ながら docker container を使って環境をデプロイしましたが、リクエストを送信しても常に Not Foundになってしまします。ローカルのdockerでは問題なく動きます。
なにかデプロイの手順を間違えているのでしょうか?
実行コマンド
az functionapp function show --resource-group xxxx --name xxxx-functions --function-name HttpExample --query invokeUrlTemplate
実行結果
(NotFound) Error retrieving function.
Code: NotFound
Message: Error retrieving function.
■ディレクトリ構成
functions/
├── src/
│ ├── functions/
│ │ └── HttpExample.ts
│ └── index.ts
├── Dockerfile
├── package.json
└── tsconfig.json
■ファイル内容
Dockerfile
# To enable ssh & remote debugging on app service change the base image to the one below
# FROM mcr.microsoft.com/azure-functions/node:4-node20-appservice
FROM mcr.microsoft.com/azure-functions/node:4-node20
# Install system dependencies
RUN apt-get update && apt-get install -y \
graphicsmagick \
ghostscript \
&& rm -rf /var/lib/apt/lists/*
ENV AzureWebJobsScriptRoot=/home/site/wwwroot \
AzureFunctionsJobHost__Logging__Console__IsEnabled=true
WORKDIR /home/site/wwwroot
# Copy package.json and install packages before copying the rest of the code to enable caching
COPY package.json package.json
RUN npm install
# Copy the rest of the code
COPY . .
HttpExample.ts
import { app, HttpRequest, HttpResponseInit, InvocationContext } from '@azure/functions'
export async function HttpExample(
request: HttpRequest,
context: InvocationContext
): Promise<HttpResponseInit> {
context.log(`Http function processed request for url "${request.url}"`)
const name = request.query.get('name') || (await request.text()) || 'world'
return { body: `Hello, ${name}!` }
}
app.http('HttpExample', {
methods: ['GET', 'POST'],
authLevel: 'anonymous',
handler: HttpExample,
route: 'HttpExample'
})
■デプロイまでのコマンド一覧
func init xxxx --worker-runtime node --typescript --docker
func new --name HttpExample --template "HTTP trigger" --typescript
docker build --tag xxxx-functions-base .
docker tag xxxx-functions-base xxxx.azurecr.io/xxxx-functions-base
az acr login --name xxxx
docker push xxxx.azurecr.io/xxxx-functions-base
az functionapp create \
--name xxxx-functions \
--resource-group xxxx \
--storage-account xxxx \
--functions-version 4 \
--image xxxx.azurecr.io/xxxx-functions-base:latest \
--consumption-plan-location "japaneast" \
--registry-username $(xxxx) \
--registry-password $(xxxx)