{"id":42479,"date":"2021-06-07T12:00:56","date_gmt":"2021-06-07T03:00:56","guid":{"rendered":"https:\/\/www.creationline.com\/?p=42479"},"modified":"2021-06-08T13:23:18","modified_gmt":"2021-06-08T04:23:18","slug":"%e3%83%93%e3%83%ab%e3%83%89%e3%82%b3%e3%83%b3%e3%83%86%e3%83%8a%e3%82%92%e5%88%a9%e7%94%a8%e3%81%97%e3%81%9f-azure-functions-%e9%96%8b%e7%99%ba%e7%92%b0%e5%a2%83%e3%81%ae%e6%a7%8b%e7%af%89-vscode-de","status":"publish","type":"post","link":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/azure\/42479","title":{"rendered":"\u30d3\u30eb\u30c9\u30b3\u30f3\u30c6\u30ca\u3092\u5229\u7528\u3057\u305f Azure Functions \u958b\u767a\u74b0\u5883\u306e\u69cb\u7bc9 #VSCode #development #DevContainer #AzureFunctions"},"content":{"rendered":"<h2>\u306f\u3058\u3081\u306b<\/h2>\n<p>.NET 5 (C#) \u3067 Azure Function \u306e\u30b5\u30fc\u30d0\u30fc\u30ec\u30b9\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u958b\u767a\u3092\u3057\u3066\u304a\u308a\u307e\u3059\u3002\u672c\u7a3f\u3067\u306f\u3001\u305d\u306e\u958b\u767a\u74b0\u5883\u306b\u3064\u3044\u3066\u3054\u7d39\u4ecb\u3057\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002OS \u306f Windows 10 \u3067\u3059\u3002<\/p>\n<h3>\u00a0\u958b\u767a\u306b\u5fc5\u8981\u306a\u30a2\u30d7\u30ea\u3084 SDK<\/h3>\n<p>Azure Functions \u306e\u30a2\u30d7\u30ea\u3092\u958b\u767a\u3059\u308b\u306b\u306f\u3001\u4ee5\u4e0b\u306e\u958b\u767a\u30c4\u30fc\u30eb\u3068 SDK \u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n<ul>\n<li>Visual Studio Code (\u7565\u79f0: VS Code)<\/li>\n<li>Git<\/li>\n<li>.NET 5 SDK (&amp; .NET Core 3.1 SDK)<\/li>\n<li>Azure Functions Core Tools<\/li>\n<li>Azure PowerShell module<\/li>\n<\/ul>\n<p>\u3053\u308c\u3089\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u3053\u3068\u306f\u5c11\u3005\u9762\u5012\u3067\u3042\u308a\u3001\u958b\u767a\u8005\u304c\u5897\u3048\u305f\u308a PC \u306e\u5909\u66f4\u306a\u3069\u3067\u74b0\u5883\u3092\u4f5c\u308a\u76f4\u3057\u305f\u308a\u3059\u308b\u3068\u304d\u306b\u3001\u540c\u3058\u4f5c\u696d\u306e\u7e70\u308a\u8fd4\u3057\u306b\u306a\u3063\u3066\u3057\u307e\u3044\u307e\u3059\u3002<\/p>\n<h3>Dev Container<\/h3>\n<p>\u305d\u3053\u3067\u3001\u305d\u3046\u3044\u3063\u305f\u624b\u9593\u3092\u5c11\u3057\u3067\u3082\u6e1b\u3089\u3059\u305f\u3081\u306b\u3001\u30d3\u30eb\u30c9\u74b0\u5883\u3092\u30b3\u30f3\u30c6\u30ca\u5316\u3057\u3066\u3001\u518d\u69cb\u7bc9\u3084\u8a2d\u5b9a\u306e\u5171\u6709\u304c\u7c21\u5358\u306b\u3067\u304d\u308b\u4ed5\u7d44\u307f\u3092\u8003\u3048\u3066\u307f\u307e\u3059\u3002Microsoft \u304b\u3089\u3001\u958b\u767a\u7528\u30b3\u30f3\u30c6\u30ca\u306e\u60c5\u5831\u304c\u63d0\u4f9b\u3055\u308c\u3066\u3044\u307e\u3059\u306e\u3067\u3001\u305d\u308c\u3092\u53c2\u8003\u306b\u3057\u307e\u3059\u3002<br \/>\n<a href=\"https:\/\/code.visualstudio.com\/docs\/remote\/containers\" target=\"_blank\" rel=\"noopener\">https:\/\/code.visualstudio.com\/docs\/remote\/containers<\/a><\/p>\n<p><a href=\"\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/001.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-42561 size-full\" src=\"\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/001.png\" alt=\"\" width=\"755\" height=\"352\" srcset=\"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/001.png 755w, https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/001-360x168.png 360w\" sizes=\"auto, (max-width: 755px) 100vw, 755px\" \/><\/a><\/p>\n<p>Dev Container \u5185\u3067\u306f VS Code Server \u304c\u52d5\u3044\u3066\u304a\u308a\u3001\u30ed\u30fc\u30ab\u30eb\u306e VS Code \u304b\u3089\u63a5\u7d9a\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002VS Code Server \u306b\u306f VS Code \u3068\u540c\u3058\u3088\u3046\u306b\u62e1\u5f35\u6a5f\u80fd\u3092\u8ffd\u52a0\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u307e\u305f\u30d3\u30eb\u30c9\u3001\u30c7\u30d0\u30c3\u30b0\u3082\u5b9f\u884c\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002GUI \u304c\u306a\u3044\u306e\u3067\u3001\u30ed\u30fc\u30ab\u30eb\u306e VS Code \u304b\u3089\u63a5\u7d9a\u3057\u3001\u64cd\u4f5c\u3059\u308b\u5f62\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u306f\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u30eb\u30fc\u30c8\u306e\u30d5\u30a9\u30eb\u30c0\u3092\u30b3\u30f3\u30c6\u30ca\u306b\u30de\u30a6\u30f3\u30c8\u3057\u3066\u53c2\u7167\u3057\u307e\u3059\u3002\u30b3\u30f3\u30c6\u30ca\u5185\u3067\u306e\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u306f\u3001\u305d\u306e\u307e\u307e\u30ed\u30fc\u30ab\u30eb\u4e0a\u3067\u3082\u53cd\u6620\u3055\u308c\u307e\u3059\u3002<\/p>\n<h2>\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/h2>\n<h3>Docker Desktop for Windows<\/h3>\n<p>Windows \u3067\u30b3\u30f3\u30c6\u30ca\u3092\u4f7f\u7528\u3067\u304d\u308b\u3088\u3046\u306b\u3059\u308b\u305f\u3081\u3001\u4ee5\u4e0b\u306e\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3059\u3002\u624b\u9806\u306f\u7701\u7565\u3057\u307e\u3059\u304c\u3001\u30ea\u30f3\u30af\u5148\u3092\u53c2\u8003\u306b\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<ul>\n<li>Windows Subsystem for Linux (WSL2)<br \/>\n<a href=\"https:\/\/docs.microsoft.com\/ja-jp\/windows\/wsl\/install-win10\" target=\"_blank\" rel=\"noopener\">https:\/\/docs.microsoft.com\/ja-jp\/windows\/wsl\/install-win10<\/a><\/li>\n<li>Docker Desktop for Windows<br \/>\n<a href=\"https:\/\/docs.docker.jp\/docker-for-windows\/install.html\" target=\"_blank\" rel=\"noopener\">https:\/\/docs.docker.jp\/docker-for-windows\/install.html<\/a><\/li>\n<\/ul>\n<pre>C:\\&gt;wsl -l -v\r\n  NAME                   STATE          VERSION\r\n* docker-desktop-data    Running        2\r\n  docker-desktop         Running        2\r\n\r\nC:\\&gt;docker -v\r\nDocker version 20.10.6, build 370c289\r\n\r\nC:\\&gt;docker images\r\nREPOSITORY TAG IMAGE ID CREATED SIZE<\/pre>\n<p>\u3053\u308c\u3067\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u304c\u5b8c\u4e86\u3057\u307e\u3057\u305f\u3002Docker \u306f\u30a4\u30e1\u30fc\u30b8\u304c\u5168\u304f\u306a\u3044\u3001\u771f\u3063\u65b0\u306a\u72b6\u614b\u3067\u3059\u3002<\/p>\n<h3>Visual Studio Code<\/h3>\n<p>\u7d71\u5408\u958b\u767a\u74b0\u5883\u3068\u306a\u308b Visual Studio Code \u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3059\u3002<br \/>\n<a href=\"https:\/\/code.visualstudio.com\/download\" target=\"_blank\" rel=\"noopener\">https:\/\/code.visualstudio.com\/download<\/a><\/p>\n<p>\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u5f8c\u3001\u4ee5\u4e0b\u306e\u62e1\u5f35\u6a5f\u80fd\u3092 Marketplace \u304b\u3089\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3059\u3002<\/p>\n<ul>\n<li>Remote - Containers (ms-vscode-remote.remote-containers) \u2605<\/li>\n<li>Docker (ms-azuretools.vscode-docker)<\/li>\n<li>Japanese Language Pack for Visual Studio Code (MS-CEINTL.vscode-language-pack-ja)<\/li>\n<\/ul>\n<p>\u2605\u306f\u5fc5\u9808\u306e\u62e1\u5f35\u6a5f\u80fd<\/p>\n<p><a href=\"\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/002.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-42563 size-medium\" src=\"\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/002-360x101.png\" alt=\"\" width=\"360\" height=\"101\" srcset=\"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/002-360x101.png 360w, https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/002.png 738w\" sizes=\"auto, (max-width: 360px) 100vw, 360px\" \/><\/a><\/p>\n<h3>PowerShell 7<\/h3>\n<p>\u6700\u65b0\u306e PowerShell \u3082\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u304a\u304d\u307e\u3059\u3002\u305f\u3060\u3057\u3001\u5fc5\u9808\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002<br \/>\n<a href=\"https:\/\/docs.microsoft.com\/ja-jp\/powershell\/scripting\/overview?view=powershell-7.1\" target=\"_blank\" rel=\"noopener\">https:\/\/docs.microsoft.com\/ja-jp\/powershell\/scripting\/overview?view=powershell-7.1<\/a><\/p>\n<p>\u753b\u9762\u53f3\u4e0a\u306e [PowerShell \u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9] \u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u3068\u3001\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u30da\u30fc\u30b8\u306b\u9077\u79fb\u3057\u307e\u3059\u3002PowerShell 7 \u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u3068\u3001VS Code \u306e\u30bf\u30fc\u30df\u30ca\u30eb\u304c PowerShell 7 \u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<h2>Dev Container \u8d77\u52d5\u6e96\u5099<\/h2>\n<p>\u307e\u305a\u306f\u3001\u958b\u767a\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30eb\u30fc\u30c8\u30d5\u30a9\u30eb\u30c0\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002VS Code \u3067\u30bf\u30fc\u30df\u30ca\u30eb\u3092\u8d77\u52d5 (Ctrl + @) \u3057\u3001\u30d5\u30a9\u30eb\u30c0\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002\u3053\u3053\u3067\u306f\u3001C \u30c9\u30e9\u30a4\u30d6\u76f4\u4e0b\u306b\u3001MySolution \u3068\u3044\u3046\u540d\u524d\u306e\u30d5\u30a9\u30eb\u30c0\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<\/p>\n<pre>PS C:\\&gt; New-Item MySolution -ItemType Directory\r\n\r\nDirectory: C:\\\r\n\r\nMode LastWriteTime Length Name \r\n---- ------------- ------ ---- \r\nd---- 2021\/06\/02 14:30 MySolution<\/pre>\n<p>\u7d9a\u3044\u3066\u3001\u4f5c\u6210\u3057\u305f MySolution \u3092 VS Code \u3067\u958b\u304d\u307e\u3059\u3002<\/p>\n<pre>PS C:\\&gt; code MySolution -r<\/pre>\n<p>MySolution \u30d5\u30a9\u30eb\u30c0\u914d\u4e0b\u306b .devcontainer \u3068\u3044\u3046\u540d\u524d\u306e\u30d5\u30a9\u30eb\u30c0\u3092\u4f5c\u6210\u3057\u3001\u305d\u306e\u4e2d\u306b Dev Container \u3092\u8d77\u52d5\u3059\u308b\u305f\u3081\u306e\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb devcontainer.json\u3068\u3001\u30b3\u30f3\u30c6\u30ca\u30a4\u30e1\u30fc\u30b8\u3092\u4f5c\u6210\u3059\u308b\u305f\u3081\u306e Dockerfile \u3092\u8ffd\u52a0\u3057\u307e\u3059\u3002<\/p>\n<pre>PS C:\\MySolution&gt; New-Item .devcontainer -ItemType Directory\r\n\r\nDirectory: C:\\MySolution\r\n\r\nMode LastWriteTime Length Name\r\n---- ------------- ------ ----\r\nd---- 2021\/06\/02 14:39 .devcontainer<\/pre>\n<p>devcontainer.json \u306e\u5185\u5bb9\u306f\u4ee5\u4e0b\u306e\u901a\u308a\u3067\u3059\u3002(\u53c2\u8003: <a href=\"https:\/\/code.visualstudio.com\/docs\/remote\/devcontainerjson-reference\" target=\"_blank\" rel=\"noopener\">https:\/\/code.visualstudio.com\/docs\/remote\/devcontainerjson-reference<\/a>)<\/p>\n<div>\n<pre>{\r\n\u00a0\u00a0\u00a0\u00a0\"name\": \"C# Dev Env for Azure Functions\",\r\n\r\n    \/\/ \u30b3\u30f3\u30c6\u30ca\u8d77\u52d5\u6642\u306b\u3001\u30b3\u30f3\u30c6\u30ca\u5185\u3067\u5b9f\u884c\u3055\u308c\u308b\u30b3\u30de\u30f3\u30c9\r\n \u00a0\u00a0\u00a0\"postStartCommand\": \"if [ -e MySolution.sln ]; then dotnet restore &amp;&amp; dotnet list package; fi\",\r\n\r\n    \/\/ Dev Container \u306e\u30d3\u30eb\u30c9\u8a2d\u5b9a\r\n \u00a0\u00a0\u00a0\"build\": {\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"dockerfile\": \"Dockerfile\",\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"args\": {\u00a0\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"VARIANT\": \"5.0\",\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"INSTALL_DOTNET_3\": \"true\",\r\n            \"INSTALL_USER_MODULES\": \"true\"\r\n        }\r\n \u00a0\u00a0\u00a0},\r\n \u00a0\u00a0\u00a0\"settings\": {\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"terminal.integrated.profiles.linux\": {\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"bash\": {\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"path\": \"\/bin\/bash\",\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0},\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"pwsh\": {\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"path\": \"\/bin\/pwsh\",\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"icon\": \"terminal-powershell\"\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0},\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"terminal.integrated.defaultProfile.linux\": \"bash\"\r\n \u00a0\u00a0\u00a0},\r\n    \/\/ VS Code Server \u306b\u8ffd\u52a0\u3059\u308b\u62e1\u5f35\u6a5f\u80fd\r\n \u00a0\u00a0\u00a0\"extensions\": [\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"ms-dotnettools.csharp\",\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"ms-azuretools.vscode-azurefunctions\",\r\n        \"Azurite.azurite\"\r\n \u00a0\u00a0\u00a0],\r\n \u00a0\u00a0\u00a0\"portsAttributes\": {\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"5000\": {\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"onAutoForward\": \"notify\"\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n \u00a0\u00a0\u00a0},\r\n \u00a0\u00a0\u00a0\"remoteUser\": \"vscode\"\r\n}<\/pre>\n<\/div>\n<p>Dockerfile \u306e\u5185\u5bb9\u306f\u4ee5\u4e0b\u306e\u901a\u308a\u3067\u3059\u3002<\/p>\n<div>\n<div>\n<pre>ARG\u00a0VARIANT=\"5.0\"\r\nFROM mcr.microsoft.com\/vscode\/devcontainers\/dotnetcore:0-${VARIANT}\r\n\r\nRUN\u00a0wget\u00a0-q\u00a0https:\/\/packages.microsoft.com\/config\/ubuntu\/20.04\/packages-microsoft-prod.deb\u00a0&amp;&amp;\u00a0\\\r\n \u00a0\u00a0\u00a0dpkg\u00a0-i\u00a0packages-microsoft-prod.deb\u00a0&amp;&amp;\u00a0\\\r\n \u00a0\u00a0\u00a0apt-get\u00a0update\u00a0&amp;&amp;\u00a0\\\r\n \u00a0\u00a0\u00a0apt-get\u00a0install\u00a0-y\u00a0azure-functions-core-tools-3\r\n\r\nARG\u00a0INSTALL_DOTNET_3=\"false\"\r\nRUN if [ \"$INSTALL_DOTNET_3\" = \"true\" ]; then apt-get install -y dotnet-sdk-3.1; fi\r\n\r\nUSER\u00a0vscode\r\nARG INSTALL_USER_MODULES=\"false\"\r\nRUN if [ \"$INSTALL_USER_MODULES\" = \"true\" ]; then \\\r\n \u00a0\u00a0\u00a0\u00a0\u00a0dotnet\u00a0new\u00a0--install\u00a0Microsoft.Azure.WebJobs.ProjectTemplates\u00a0&amp;&amp;\u00a0\\\r\n \u00a0\u00a0\u00a0\u00a0\u00a0pwsh\u00a0-Command\u00a0Install-Module\u00a0-Name\u00a0Az\u00a0-Scope\u00a0CurrentUser\u00a0-Force;\u00a0\\\r\n \u00a0\u00a0\u00a0fi<\/pre>\n<\/div>\n<\/div>\n<p>\u3053\u306e\u6642\u70b9\u3067\u3001\u30d5\u30a9\u30eb\u30c0\u30c4\u30ea\u30fc\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<p><a href=\"\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/003.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-42567 size-full\" src=\"\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/003.png\" alt=\"\" width=\"163\" height=\"123\" \/><\/a><\/p>\n<h2>Dev Container \u8d77\u52d5<\/h2>\n<p>\u6e96\u5099\u304c\u3067\u304d\u305f\u306e\u3067\u3001\u3055\u3063\u305d\u304f\u8d77\u52d5\u3057\u3066\u307f\u307e\u3059\u3002VS Code \u3067 F1 \u30ad\u30fc\u3092\u62bc\u4e0b\u3059\u308b\u3068\u30b3\u30de\u30f3\u30c9\u30d1\u30ec\u30c3\u30c8\u304c\u8d77\u52d5\u3057\u307e\u3059\u306e\u3067\u3001\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3092\u5165\u529b\u3057\u307e\u3059\u3002<\/p>\n<pre>&gt;Remote-Containers: Reopen in Container<\/pre>\n<p>\u4eca \u958b\u3044\u3066\u3044\u308b\u30d5\u30a9\u30eb\u30c0 (MySolution) \u3092\u3001Dev Container \u304b\u3089\u958b\u304f\u30b3\u30de\u30f3\u30c9\u3067\u3059\u3002\u307e\u3060\u30b3\u30f3\u30c6\u30ca\u30a4\u30e1\u30fc\u30b8\u306f\u306a\u3044\u306e\u3067\u3001\u305d\u306e\u30d3\u30eb\u30c9\u304b\u3089\u958b\u59cb\u3055\u308c\u307e\u3059\u3002\u306a\u304a\u3001\u30a4\u30e1\u30fc\u30b8\u30d3\u30eb\u30c9\u306f\u521d\u56de\u5b9f\u884c\u306e\u6642\u3060\u3051\u884c\u308f\u308c\u307e\u3059\u306e\u3067\u3001Dockerfile \u3092\u66f4\u65b0\u3057\u305f\u5834\u5408\u306f\u3001\u660e\u793a\u7684\u306b\u30ea\u30d3\u30eb\u30c9\u30b3\u30de\u30f3\u30c9 (Rebuilid Container, Rebuild and Reopen Container) \u3092\u5b9f\u884c\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n<p><a href=\"\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/004.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-42568 size-medium\" src=\"\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/004-360x114.png\" alt=\"\" width=\"360\" height=\"114\" srcset=\"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/004-360x114.png 360w, https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/004-768x244.png 768w, https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/004.png 1006w\" sizes=\"auto, (max-width: 360px) 100vw, 360px\" \/><\/a><\/p>\n<p>\u30a4\u30e1\u30fc\u30b8\u30b5\u30a4\u30ba\u304c\u5927\u304d\u3044\u306e\u3067\u6642\u9593\u304c\u304b\u304b\u308a\u307e\u3059\u304c\u3001\u30d3\u30eb\u30c9\u304c\u6210\u529f\u3057\u3066 Dev Container \u304c\u8d77\u52d5\u3057\u305f\u3089\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002VS Code \u306e\u8868\u793a\u306f\u3001\u30ed\u30fc\u30ab\u30eb\u306e\u3082\u306e\u3067\u306f\u306a\u304f Dev Container \u306e VS Code Server \u306e\u3082\u306e\u306b\u306a\u308a\u307e\u3059\u3002\u306a\u306e\u3067\u3001\u62e1\u5f35\u6a5f\u80fd\u306f VS Code Server \u306b\u8ffd\u52a0\u3055\u308c\u305f\u3082\u306e\u304c\u8868\u793a\u3055\u308c\u3001\u30bf\u30fc\u30df\u30ca\u30eb\u3082 PowerShell \u3067\u306f\u306a\u304f bash \u306b\u306a\u3063\u3066\u3044\u308b\u3053\u3068\u304c\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002<\/p>\n<p><a href=\"\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/005.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-42574 size-medium\" src=\"\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/005-360x241.png\" alt=\"\" width=\"360\" height=\"241\" srcset=\"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/005-360x241.png 360w, https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/005-1024x687.png 1024w, https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/005-768x515.png 768w, https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/005.png 1326w\" sizes=\"auto, (max-width: 360px) 100vw, 360px\" \/>\u00a0<\/a><a href=\"\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/006.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-42575 size-medium\" src=\"\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/006-251x360.png\" alt=\"\" width=\"251\" height=\"360\" srcset=\"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/006-251x360.png 251w, https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/006.png 303w\" sizes=\"auto, (max-width: 251px) 100vw, 251px\" \/><\/a><\/p>\n<p>\u30ed\u30fc\u30ab\u30eb\u306e\u30b3\u30de\u30f3\u30c9\u30d7\u30ed\u30f3\u30d7\u30c8\u304b\u3089 docker \u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3057\u3001\u30b3\u30f3\u30c6\u30ca\u304c\u8d77\u52d5\u3057\u3066\u3044\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002<\/p>\n<pre>C:\\&gt;docker images\r\nREPOSITORY TAG IMAGE ID CREATED SIZE\r\nvsc-mysolution-df8e58b35bf5eb281b180d42cd34e07d latest 9446846343d8 About an hour ago 2.12GB\r\n\r\nC:\\&gt;docker ps\r\nCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES\r\n94ec6709ca59 vsc-mysolution-df8e58b35bf5eb281b180d42cd34e07d \"\/bin\/sh -c 'echo Co\u2026\" About an hour ago Up About an hour hungry_archimedes<\/pre>\n<h2>\u958b\u767a\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u4f5c\u6210\u3068\u30c7\u30d0\u30c3\u30b0<\/h2>\n<p>\u3053\u3053\u304b\u3089\u306f\u30bf\u30fc\u30df\u30ca\u30eb\u3067\u30b3\u30de\u30f3\u30c9\u5165\u529b\u3092\u3057\u306a\u304c\u3089\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n<h3>\u30bd\u30ea\u30e5\u30fc\u30b7\u30e7\u30f3<\/h3>\n<p>\u307e\u305a\u306f\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u6574\u7406\u3059\u308b\u305f\u3081\u306e\u30bd\u30ea\u30e5\u30fc\u30b7\u30e7\u30f3\u30d5\u30a1\u30a4\u30eb (.sln) \u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<\/p>\n<pre>vscode \u279c \/workspaces\/MySolution $ dotnet new sln\r\nThe template \"Solution File\" was created successfully.\r\nvscode \u279c \/workspaces\/MySolution $ ls\r\nMySolution.sln<\/pre>\n<h3>\u30d7\u30ed\u30b8\u30a7\u30af\u30c8<\/h3>\n<p>\u7d9a\u3044\u3066\u3001MyApp \u30d5\u30a9\u30eb\u30c0\u3092\u4f5c\u6210\u3057\u3001<\/p>\n<pre>vscode \u279c \/workspaces\/MySolution $ mkdir MyApp<\/pre>\n<p>\u305d\u306e\u4e2d\u306b Azure Functions \u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002F1 \u30ad\u30fc\u3092\u62bc\u4e0b\u3057\u3066\u30b3\u30de\u30f3\u30c9\u30d1\u30ec\u30c3\u30c8\u3092\u8d77\u52d5\u3057\u3001\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3092\u5165\u529b\u3057\u307e\u3059\u3002<\/p>\n<pre>&gt;Azure Functions: Create New Project<\/pre>\n<p>\u4f5c\u6210\u5148\u306e\u30d5\u30a9\u30eb\u30c0\u306f MyApp \u3092\u6307\u5b9a\u3057\u307e\u3059\u3002\u8a00\u8a9e\u306f C#\u3001\u30e9\u30f3\u30bf\u30a4\u30e0\u306f .NET 5 \u3092\u9078\u629e\u3057\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3068\u3057\u3066 HTTP trigger \u3092\u6307\u5b9a\u3057\u307e\u3059\u3002\u95a2\u6570\u540d\u3068\u540d\u524d\u7a7a\u9593\u306e\u5165\u529b\u3082\u6c42\u3081\u3089\u308c\u307e\u3059\u304c\u3001\u52d5\u4f5c\u78ba\u8a8d\u7528\u306a\u306e\u3067\u521d\u671f\u5024\u306e\u307e\u307e\u3067 OK \u3067\u3059\u3002\u627f\u8a8d\u30ec\u30d9\u30eb\u306f Function \u3092\u6307\u5b9a\u3057\u307e\u3059\u3002<\/p>\n<p>\u6b21\u306b\u3001\u4f5c\u6210\u3057\u305f\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u30bd\u30ea\u30e5\u30fc\u30b7\u30e7\u30f3\u306b\u8ffd\u52a0\u3057\u307e\u3059\u3002<\/p>\n<pre>vscode \u279c \/workspaces\/MySolution $ dotnet sln add MyApp\r\nProject `MyApp\/MyApp.csproj` added to the solution.\r\nvscode \u279c \/workspaces\/MySolution $ dotnet sln list\r\nProject(s)\r\n----------\r\nMyApp\/MyApp.csproj<\/pre>\n<p>\u3053\u308c\u3067\u3001\u958b\u767a\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u4f5c\u6210\u306f\u5b8c\u4e86\u3067\u3059\u3002<\/p>\n<h3>\u30c7\u30d0\u30c3\u30b0<\/h3>\n<p>HttpTrigger1.cs \u306e 15 \u884c\u76ee\u306b\u30d6\u30ec\u30a4\u30af\u30dd\u30a4\u30f3\u30c8\u3092\u4ed8\u3051\u3066\u304b\u3089\u3001F5 \u30ad\u30fc\u3092\u62bc\u4e0b\u3057\u307e\u3059\u3002<\/p>\n<p><a href=\"\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/008.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-42627 size-medium\" src=\"\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/008-360x93.png\" alt=\"\" width=\"360\" height=\"93\" srcset=\"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/008-360x93.png 360w, https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/008.png 678w\" sizes=\"auto, (max-width: 360px) 100vw, 360px\" \/><\/a><\/p>\n<p>Azure Functions Core Tools \u304c\u8d77\u52d5\u3057\u3001\u95a2\u6570\u306e\u52d5\u4f5c\u78ba\u8a8d\u304c\u3067\u304d\u308b\u72b6\u614b\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<p><a href=\"\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/009.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-42629 size-medium\" src=\"\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/009-360x135.png\" alt=\"\" width=\"360\" height=\"135\" srcset=\"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/009-360x135.png 360w, https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/009.png 521w\" sizes=\"auto, (max-width: 360px) 100vw, 360px\" \/><\/a><\/p>\n<p>\u95a2\u6570\u3092\u5b9f\u884c\u3059\u308b\u305f\u3081\u306e URL (\u3053\u3053\u3067\u306f http:\/\/localhost:7071\/api\/HttpTrigger1) \u3092\u30d6\u30e9\u30a6\u30b6\u3067\u958b\u304f\u3068\u3001VS Code \u306e\u30d6\u30ec\u30a4\u30af\u30dd\u30a4\u30f3\u30c8\u3067\u51e6\u7406\u304c\u4e00\u6642\u505c\u6b62\u3059\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002<\/p>\n<p><a href=\"\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/010.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-42631 size-medium\" src=\"\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/010-360x79.png\" alt=\"\" width=\"360\" height=\"79\" srcset=\"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/010-360x79.png 360w, https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/010.png 714w\" sizes=\"auto, (max-width: 360px) 100vw, 360px\" \/><\/a><\/p>\n<p>F5 \u30ad\u30fc\u3092\u62bc\u4e0b\u3057\u51e6\u7406\u3092\u9032\u3081\u308b\u3068\u3001\u95a2\u6570\u306e\u51e6\u7406\u304c\u7d42\u4e86\u3057\u3001\u7d50\u679c\u3068\u3057\u3066 Web \u30d6\u30e9\u30a6\u30b6\u306b\u30c6\u30ad\u30b9\u30c8\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002<\/p>\n<div><a href=\"\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/011.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-42632 size-full\" src=\"\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/011.png\" alt=\"\" width=\"386\" height=\"128\" srcset=\"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/011.png 386w, https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/011-360x119.png 360w\" sizes=\"auto, (max-width: 386px) 100vw, 386px\" \/><\/a><\/div>\n<p>\u30c7\u30d0\u30c3\u30b0\u3067\u304d\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u307e\u3057\u305f\u3002\u3042\u3068\u306f\u3001\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u4f5c\u696d\u3092\u9032\u3081\u3066\u3044\u304f\u3060\u3051\u3067\u3059\u3002\u30ed\u30fc\u30ab\u30eb\u3068\u540c\u3058\u611f\u899a\u3067\u9032\u3081\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002Azure \u3078\u306e\u30c7\u30d7\u30ed\u30a4\u30e1\u30f3\u30c8\u306b\u3064\u3044\u3066\u306f\u7701\u7565\u3057\u307e\u3059\u304c\u3001Azure Functions \u62e1\u5f35\u6a5f\u80fd\u3084 Azure DevOps \u306a\u3069\u306e CICD \u3092\u5229\u7528\u3059\u308b\u306a\u3069\u3001\u69d8\u3005\u306a\u65b9\u6cd5\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n<h3>\u518d\u63a5\u7d9a<\/h3>\n<p>Dev Container \u5185\u306e MySolution \u30d5\u30a9\u30eb\u30c0\u306f\u3001\u30ed\u30fc\u30ab\u30eb\u306e C:\\MySolution \u30d5\u30a9\u30eb\u30c0\u304c\u30de\u30a6\u30f3\u30c8\u3055\u308c\u305f\u3082\u306e\u306a\u306e\u3067\u3001\u30b3\u30f3\u30c6\u30ca\u3067\u64cd\u4f5c\u3059\u308c\u3070\u30ed\u30fc\u30ab\u30eb\u4e0a\u3067\u3082\u66f4\u65b0\u304c\u53cd\u6620\u3055\u308c\u308b\u3053\u3068\u306b\u306a\u308a\u307e\u3059\u3002VS Code \u3092\u9589\u3058\u3066 Dev Container \u3092\u7d42\u4e86\u3057\u3066\u3082\u3001\u3053\u306e\u30d5\u30a9\u30eb\u30c0\u3092 Dev Container \u3067\u63a5\u7d9a (\u958b\u304f) \u3059\u308c\u3070\u3001\u3044\u3064\u3067\u3082\u4f5c\u696d\u3092\u518d\u958b\u3067\u304d\u307e\u3059\u3002<\/p>\n<p><a href=\"\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/012.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-42634\" src=\"\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/012-360x123.png\" alt=\"\" width=\"360\" height=\"123\" srcset=\"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/012-360x123.png 360w, https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/012.png 540w\" sizes=\"auto, (max-width: 360px) 100vw, 360px\" \/><\/a><\/p>\n<h2>\u307e\u3068\u3081<\/h2>\n<p>\u672c\u7a3f\u3067\u306f\u3001Dev Container \u3067\u306e\u958b\u767a\u74b0\u5883\u306e\u69cb\u7bc9\u306b\u3064\u3044\u3066\u3054\u7d39\u4ecb\u3055\u305b\u3066\u3044\u305f\u3060\u304d\u307e\u3057\u305f\u3002Azure Functions \u3092\u4f8b\u306b\u7d39\u4ecb\u3057\u307e\u3057\u305f\u304c\u3001\u305d\u308c\u4ee5\u5916\u306e\u30a2\u30d7\u30ea\u306e\u958b\u767a\u74b0\u5883\u3082\u69cb\u7bc9\u53ef\u80fd\u3067\u3059\u3002<\/p>\n<p>\u6700\u5f8c\u306b\u3001Dev Container \u306e\u30e1\u30ea\u30c3\u30c8\u3092\u307e\u3068\u3081\u307e\u3059\u3002<\/p>\n<ul>\n<li>\u30ed\u30fc\u30ab\u30eb\u74b0\u5883\u3092\u3088\u3054\u3055\u306a\u3044\u3002(\u8907\u6570\u7a2e\u306e\u958b\u767a\u8a00\u8a9e\u3092\u30ed\u30fc\u30ab\u30eb\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u5fc5\u8981\u304c\u306a\u3044)<\/li>\n<li>\u8907\u6570\u306e\u958b\u767a\u8005\u9593\u3067\u540c\u4e00\u306e\u74b0\u5883\u3092\u7c21\u5358\u306b\u4f5c\u6210\u3067\u304d\u308b\u3002<\/li>\n<li>\u540c\u4e00\u7a2e\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u3082\u3001\u8907\u6570\u306e\u72ec\u7acb\u3057\u305f\u958b\u767a\u74b0\u5883\u3092\u7528\u610f\u3067\u304d\u308b\u3002<\/li>\n<\/ul>\n<p>\u69cb\u7bc9\u306f\u305d\u308c\u307b\u3069\u96e3\u3057\u304f\u306a\u3044\u306e\u3067\u3001\u8208\u5473\u304c\u3042\u308b\u65b9\u306f\u662f\u975e\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002<\/p>\n<div><style type=\"text\/css\">\r\n.ib { border: solid 1px black; }\r\n<\/style>\r\n<div align=\"center\" style=\"padding: 10px; margin: 0 auto; border-radius: 10px; width: 400px; height: 80px; background:linear-gradient(#F89174, #FFC778)\">\r\n  <div style=\"text-align: center; font-family:\u30e1\u30a4\u30ea\u30aa\">\r\n    <div style=\"font-size: 130%; color: blue; font-weight:bold\">\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3(\u682a) \u5bcc\u5c71\u4e8b\u696d\u6240<\/div>\r\n    <address style=\"margin-top: 5px\">\u3012939-8201 \u5bcc\u5c71\u770c\u5bcc\u5c71\u5e02\u82b1\u5712\u753a3-2-9 \u6c60\u7530\u30d3\u30eb 3F<\/address>\r\n    Twitter: <a href=\"https:\/\/twitter.com\/cl_toyama\" target=\"_blank\">CL_toyama<\/a>\r\n  <\/div>\r\n<\/div><\/div>\n<div style=\"position: absolute; left: -200vw; top: -200vh; width: 100vw; height: 100vh; visibility: hidden; pointer-events: none; z-index: -1;\"><\/div>\n<div style=\"position: absolute; left: -200vw; top: -200vh; width: 100vw; height: 100vh; visibility: hidden; pointer-events: none; z-index: -1;\"><\/div>\n<div style=\"position: absolute; left: -200vw; top: -200vh; width: 100vw; height: 100vh; visibility: hidden; pointer-events: none; z-index: -1;\"><\/div>\n<div style=\"position: absolute; left: -200vw; top: -200vh; width: 100vw; height: 100vh; visibility: hidden; pointer-events: none; z-index: -1;\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u306f\u3058\u3081\u306b .NET 5 (C#) \u3067 Azure Function \u306e\u30b5\u30fc\u30d0\u30fc\u30ec\u30b9\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u958b\u767a\u3092\u3057\u3066\u304a\u308a\u307e\u3059\u3002\u672c\u7a3f\u3067\u306f\u3001\u305d\u306e\u958b\u767a\u74b0\u5883\u306b\u3064\u3044\u3066\u3054\u7d39\u4ecb\u3057\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002OS \u306f Windows 10 \u3067\u3059\u3002 \u00a0\u958b\u767a [&#8230;]<\/p>\n","protected":false},"author":14,"featured_media":42561,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":""},"categories":[58,273,264],"tags":[],"class_list":["post-42479","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-azure","category-c","category-toyama"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\u30d3\u30eb\u30c9\u30b3\u30f3\u30c6\u30ca\u3092\u5229\u7528\u3057\u305f Azure Functions \u958b\u767a\u74b0\u5883\u306e\u69cb\u7bc9 #VSCode #development #DevContainer #AzureFunctions - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3<\/title>\n<meta name=\"description\" content=\"Azure, C#, \u5bcc\u5c71\u4e8b\u696d\u6240 |\u306f\u3058\u3081\u306b .NET 5 (C#) \u3067 Azure Function\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/azure\/42479\" \/>\n<meta property=\"og:locale\" content=\"ja_JP\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u30d3\u30eb\u30c9\u30b3\u30f3\u30c6\u30ca\u3092\u5229\u7528\u3057\u305f Azure Functions \u958b\u767a\u74b0\u5883\u306e\u69cb\u7bc9 #VSCode #development #DevContainer #AzureFunctions - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3\" \/>\n<meta property=\"og:description\" content=\"Azure, C#, \u5bcc\u5c71\u4e8b\u696d\u6240 |\u306f\u3058\u3081\u306b .NET 5 (C#) \u3067 Azure Function\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/azure\/42479\" \/>\n<meta property=\"og:site_name\" content=\"Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/creationline\" \/>\n<meta property=\"article:published_time\" content=\"2021-06-07T03:00:56+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-06-08T04:23:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/001.png\" \/>\n\t<meta property=\"og:image:width\" content=\"755\" \/>\n\t<meta property=\"og:image:height\" content=\"352\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"ikeda\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@creationline\" \/>\n<meta name=\"twitter:site\" content=\"@creationline\" \/>\n<meta name=\"twitter:label1\" content=\"\u57f7\u7b46\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"ikeda\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593\" \/>\n\t<meta name=\"twitter:data2\" content=\"5\u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cloudnative\\\/azure\\\/42479#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cloudnative\\\/azure\\\/42479\"},\"author\":{\"name\":\"ikeda\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/#\\\/schema\\\/person\\\/922784adae541b8780164bbfeb55dff5\"},\"headline\":\"\u30d3\u30eb\u30c9\u30b3\u30f3\u30c6\u30ca\u3092\u5229\u7528\u3057\u305f Azure Functions \u958b\u767a\u74b0\u5883\u306e\u69cb\u7bc9 #VSCode #development #DevContainer #AzureFunctions\",\"datePublished\":\"2021-06-07T03:00:56+00:00\",\"dateModified\":\"2021-06-08T04:23:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cloudnative\\\/azure\\\/42479\"},\"wordCount\":246,\"image\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cloudnative\\\/azure\\\/42479#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cms_x3GWkuX\\\/wp-content\\\/uploads\\\/2021\\\/06\\\/001.png\",\"articleSection\":[\"Azure\",\"C#\",\"\u5bcc\u5c71\u4e8b\u696d\u6240\"],\"inLanguage\":\"ja\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cloudnative\\\/azure\\\/42479\",\"url\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cloudnative\\\/azure\\\/42479\",\"name\":\"\u30d3\u30eb\u30c9\u30b3\u30f3\u30c6\u30ca\u3092\u5229\u7528\u3057\u305f Azure Functions \u958b\u767a\u74b0\u5883\u306e\u69cb\u7bc9 #VSCode #development #DevContainer #AzureFunctions - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cloudnative\\\/azure\\\/42479#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cloudnative\\\/azure\\\/42479#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cms_x3GWkuX\\\/wp-content\\\/uploads\\\/2021\\\/06\\\/001.png\",\"datePublished\":\"2021-06-07T03:00:56+00:00\",\"dateModified\":\"2021-06-08T04:23:18+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/#\\\/schema\\\/person\\\/922784adae541b8780164bbfeb55dff5\"},\"description\":\"Azure, C#, \u5bcc\u5c71\u4e8b\u696d\u6240 |\u306f\u3058\u3081\u306b .NET 5 (C#) \u3067 Azure Function\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cloudnative\\\/azure\\\/42479#breadcrumb\"},\"inLanguage\":\"ja\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cloudnative\\\/azure\\\/42479\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cloudnative\\\/azure\\\/42479#primaryimage\",\"url\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cms_x3GWkuX\\\/wp-content\\\/uploads\\\/2021\\\/06\\\/001.png\",\"contentUrl\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cms_x3GWkuX\\\/wp-content\\\/uploads\\\/2021\\\/06\\\/001.png\",\"width\":755,\"height\":352},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cloudnative\\\/azure\\\/42479#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"HOME\",\"item\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u30af\u30e9\u30a6\u30c9\u30cd\u30a4\u30c6\u30a3\u30d6\",\"item\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cloudnative\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Azure\",\"item\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cloudnative\\\/azure\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"\u30d3\u30eb\u30c9\u30b3\u30f3\u30c6\u30ca\u3092\u5229\u7528\u3057\u305f Azure Functions \u958b\u767a\u74b0\u5883\u306e\u69cb\u7bc9 #VSCode #development #DevContainer #AzureFunctions\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/#website\",\"url\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/\",\"name\":\"Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3\",\"description\":\"\u30a2\u30b8\u30e3\u30a4\u30eb\uff06DevOps\u3001\u30af\u30e9\u30a6\u30c9\u30cd\u30a4\u30c6\u30a3\u30d6\u3001AI\uff06LLM\u306e\u5148\u7aef\u6280\u8853\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ja\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/#\\\/schema\\\/person\\\/922784adae541b8780164bbfeb55dff5\",\"name\":\"ikeda\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cms_x3GWkuX\\\/wp-content\\\/uploads\\\/2021\\\/12\\\/avatar.png\",\"url\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cms_x3GWkuX\\\/wp-content\\\/uploads\\\/2021\\\/12\\\/avatar.png\",\"contentUrl\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cms_x3GWkuX\\\/wp-content\\\/uploads\\\/2021\\\/12\\\/avatar.png\",\"caption\":\"ikeda\"},\"url\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/author\\\/ikeda\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u30d3\u30eb\u30c9\u30b3\u30f3\u30c6\u30ca\u3092\u5229\u7528\u3057\u305f Azure Functions \u958b\u767a\u74b0\u5883\u306e\u69cb\u7bc9 #VSCode #development #DevContainer #AzureFunctions - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3","description":"Azure, C#, \u5bcc\u5c71\u4e8b\u696d\u6240 |\u306f\u3058\u3081\u306b .NET 5 (C#) \u3067 Azure Function","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/azure\/42479","og_locale":"ja_JP","og_type":"article","og_title":"\u30d3\u30eb\u30c9\u30b3\u30f3\u30c6\u30ca\u3092\u5229\u7528\u3057\u305f Azure Functions \u958b\u767a\u74b0\u5883\u306e\u69cb\u7bc9 #VSCode #development #DevContainer #AzureFunctions - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3","og_description":"Azure, C#, \u5bcc\u5c71\u4e8b\u696d\u6240 |\u306f\u3058\u3081\u306b .NET 5 (C#) \u3067 Azure Function","og_url":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/azure\/42479","og_site_name":"Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3","article_publisher":"https:\/\/www.facebook.com\/creationline","article_published_time":"2021-06-07T03:00:56+00:00","article_modified_time":"2021-06-08T04:23:18+00:00","og_image":[{"width":755,"height":352,"url":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/001.png","type":"image\/png"}],"author":"ikeda","twitter_card":"summary_large_image","twitter_creator":"@creationline","twitter_site":"@creationline","twitter_misc":{"\u57f7\u7b46\u8005":"ikeda","\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593":"5\u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/azure\/42479#article","isPartOf":{"@id":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/azure\/42479"},"author":{"name":"ikeda","@id":"https:\/\/www.creationline.com\/tech-blog\/#\/schema\/person\/922784adae541b8780164bbfeb55dff5"},"headline":"\u30d3\u30eb\u30c9\u30b3\u30f3\u30c6\u30ca\u3092\u5229\u7528\u3057\u305f Azure Functions \u958b\u767a\u74b0\u5883\u306e\u69cb\u7bc9 #VSCode #development #DevContainer #AzureFunctions","datePublished":"2021-06-07T03:00:56+00:00","dateModified":"2021-06-08T04:23:18+00:00","mainEntityOfPage":{"@id":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/azure\/42479"},"wordCount":246,"image":{"@id":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/azure\/42479#primaryimage"},"thumbnailUrl":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/001.png","articleSection":["Azure","C#","\u5bcc\u5c71\u4e8b\u696d\u6240"],"inLanguage":"ja"},{"@type":"WebPage","@id":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/azure\/42479","url":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/azure\/42479","name":"\u30d3\u30eb\u30c9\u30b3\u30f3\u30c6\u30ca\u3092\u5229\u7528\u3057\u305f Azure Functions \u958b\u767a\u74b0\u5883\u306e\u69cb\u7bc9 #VSCode #development #DevContainer #AzureFunctions - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3","isPartOf":{"@id":"https:\/\/www.creationline.com\/tech-blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/azure\/42479#primaryimage"},"image":{"@id":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/azure\/42479#primaryimage"},"thumbnailUrl":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/001.png","datePublished":"2021-06-07T03:00:56+00:00","dateModified":"2021-06-08T04:23:18+00:00","author":{"@id":"https:\/\/www.creationline.com\/tech-blog\/#\/schema\/person\/922784adae541b8780164bbfeb55dff5"},"description":"Azure, C#, \u5bcc\u5c71\u4e8b\u696d\u6240 |\u306f\u3058\u3081\u306b .NET 5 (C#) \u3067 Azure Function","breadcrumb":{"@id":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/azure\/42479#breadcrumb"},"inLanguage":"ja","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.creationline.com\/tech-blog\/cloudnative\/azure\/42479"]}]},{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/azure\/42479#primaryimage","url":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/001.png","contentUrl":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/06\/001.png","width":755,"height":352},{"@type":"BreadcrumbList","@id":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/azure\/42479#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"HOME","item":"https:\/\/www.creationline.com\/tech-blog"},{"@type":"ListItem","position":2,"name":"\u30af\u30e9\u30a6\u30c9\u30cd\u30a4\u30c6\u30a3\u30d6","item":"https:\/\/www.creationline.com\/tech-blog\/cloudnative"},{"@type":"ListItem","position":3,"name":"Azure","item":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/azure"},{"@type":"ListItem","position":4,"name":"\u30d3\u30eb\u30c9\u30b3\u30f3\u30c6\u30ca\u3092\u5229\u7528\u3057\u305f Azure Functions \u958b\u767a\u74b0\u5883\u306e\u69cb\u7bc9 #VSCode #development #DevContainer #AzureFunctions"}]},{"@type":"WebSite","@id":"https:\/\/www.creationline.com\/tech-blog\/#website","url":"https:\/\/www.creationline.com\/tech-blog\/","name":"Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3","description":"\u30a2\u30b8\u30e3\u30a4\u30eb\uff06DevOps\u3001\u30af\u30e9\u30a6\u30c9\u30cd\u30a4\u30c6\u30a3\u30d6\u3001AI\uff06LLM\u306e\u5148\u7aef\u6280\u8853","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.creationline.com\/tech-blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ja"},{"@type":"Person","@id":"https:\/\/www.creationline.com\/tech-blog\/#\/schema\/person\/922784adae541b8780164bbfeb55dff5","name":"ikeda","image":{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/12\/avatar.png","url":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/12\/avatar.png","contentUrl":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/12\/avatar.png","caption":"ikeda"},"url":"https:\/\/www.creationline.com\/tech-blog\/author\/ikeda"}]}},"_links":{"self":[{"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/posts\/42479","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/users\/14"}],"replies":[{"embeddable":true,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/comments?post=42479"}],"version-history":[{"count":47,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/posts\/42479\/revisions"}],"predecessor-version":[{"id":42672,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/posts\/42479\/revisions\/42672"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/media\/42561"}],"wp:attachment":[{"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/media?parent=42479"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/categories?post=42479"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/tags?post=42479"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}