Azure FunctionsをTypeScriptで作る
まずはFunctionのプロジェクトを作成する。
$ mkdir sample001
$ cd sample001
datakuminoMacBook-Air@takumi ~/Documents/Azure/work/ts/functions/sample001$ func init
Select a number for worker runtime:
1. dotnet
2. dotnet (isolated process)
3. node
4. python
5. powershell
6. custom
Choose option: 3
node
Select a number for language:
1. javascript
2. typescript
Choose option: 2
typescript
Writing .funcignore
Writing package.json
Writing tsconfig.json
Writing .gitignore
Writing host.json
Writing local.settings.json
Writing /Users/takumi/Documents/Azure/work/ts/functions/sample001/.vscode/extensions.json
odatakuminoMacBook-Air@takumi ~/Documents/Azure/work/ts/functions/sample001$ ls
host.json local.settings.json package.json tsconfig.json
odatakuminoMacBook-Air@takumi ~/Documents/Azure/work/ts/functions/sample001$ npm install && npm update
サンプルにHTTPトリガーを作成する。
10を入力するとHTTPトリガーを作れる。その後、Function nameを入力する。
odatakuminoMacBook-Air@takumi ~/Documents/Azure/work/ts/functions/sample001$ func new
Select a number for template:
1. Azure Blob Storage trigger
2. Azure Cosmos DB trigger
3. Durable Functions activity
4. Durable Functions entity
5. Durable Functions Entity HTTP starter
6. Durable Functions HTTP starter
7. Durable Functions orchestrator
8. Azure Event Grid trigger
9. Azure Event Hub trigger
10. HTTP trigger
11. IoT Hub (Event Hub)
12. Kafka output
13. Kafka trigger
14. Azure Queue Storage trigger
15. RabbitMQ trigger
16. SendGrid
17. Azure Service Bus Queue trigger
18. Azure Service Bus Topic trigger
19. SignalR negotiate HTTP trigger
20. Timer trigger
Choose option: 10
HTTP trigger
Function name: [HttpTrigger] SampleTrigger
Writing /Users/takumi/Documents/Azure/work/ts/functions/sample001/SampleTrigger/index.ts
Writing /Users/takumi/Documents/Azure/work/ts/functions/sample001/SampleTrigger/function.json
The function "SampleTrigger" was created successfully from the "HTTP trigger" template.
func startして実際に動かしてみる。
odatakuminoMacBook-Air@takumi ~/Documents/Azure/work/ts/functions/sample001$ func start
Azure Functions Core Tools
Core Tools Version: 4.0.4544 Commit hash: N/A (64-bit)
Function Runtime Version: 4.3.2.18186
[2022-07-14T04:41:44.925Z] No job functions found. Try making your job classes and methods public. If you're using binding extensions (e.g. Azure Storage, ServiceBus, Timers, etc.) make sure you've called the registration method for the extension(s) in your startup code (e.g. builder.AddAzureStorage(), builder.AddServiceBus(), builder.AddTimers(), etc.).
[2022-07-14T04:41:44.954Z] The 'SampleTrigger' function is in error: Invalid script file name configuration. The 'scriptFile' property is set to a file that does not exist.
For detailed output, run func with --verbose flag.
エラーが出ている。
func startだけだとdist作成されないっぽい。なのでnpm run buildしてdistを作る。
odatakuminoMacBook-Air@takumi ~/Documents/Azure/work/ts/functions/sample001$ npm run build
> build
> tsc
node_modules/@azure/functions/index.d.ts:220:16 - error TS2580: Cannot find name 'Buffer'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
220 value: Buffer;
~~~~~~
Found 1 error in node_modules/@azure/functions/index.d.ts:220
Cannot find name ‘Buffer’. Do you need to install type definitions for node?というエラーが出てるので、これを以下実行する。
npm install –save @types/node
odatakuminoMacBook-Air@takumi ~/Documents/Azure/work/ts/functions/sample001$ npm install --save @types/node
added 1 package, and audited 4 packages in 475ms
found 0 vulnerabilities
npm run buildもうまくいった。
実際に動かす。
npm run buildした後にdistができる。
func startをその後にすると動きます。
URLにアクセスするとちゃんと動きました。
ディスカッション
コメント一覧
まだ、コメントがありません