{"id":43911,"date":"2023-05-01T14:55:08","date_gmt":"2023-07-20T19:17:40","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%b8%ba%e4%ba%86%e8%8e%b7%e5%8f%96%e4%b8%80%e4%b8%aa%e7%a7%81%e6%9c%89%e5%8c%96%e7%9a%84-aws-lambda%ef%bc%8c%e6%88%91%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8-openfaas-%e6%9d%a5%e8%bf%9b%e8%a1%8c\/"},"modified":"2024-04-30T02:10:32","modified_gmt":"2024-04-29T18:10:32","slug":"%e4%b8%ba%e4%ba%86%e8%8e%b7%e5%8f%96%e4%b8%80%e4%b8%aa%e7%a7%81%e6%9c%89%e5%8c%96%e7%9a%84-aws-lambda%ef%bc%8c%e6%88%91%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8-openfaas-%e6%9d%a5%e8%bf%9b%e8%a1%8c","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%b8%ba%e4%ba%86%e8%8e%b7%e5%8f%96%e4%b8%80%e4%b8%aa%e7%a7%81%e6%9c%89%e5%8c%96%e7%9a%84-aws-lambda%ef%bc%8c%e6%88%91%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8-openfaas-%e6%9d%a5%e8%bf%9b%e8%a1%8c\/","title":{"rendered":"\u4e3a\u4e86\u83b7\u53d6\u4e00\u4e2a\u79c1\u6709\u5316\u7684 AWS Lambda\uff0c\u6211\u5c1d\u8bd5\u4f7f\u7528 OpenFaaS \u6765\u8fdb\u884c\u6d4b\u8bd5\uff08\u4f7f\u7528swarm\uff09"},"content":{"rendered":"<p>\u6700\u8fd1\uff0c\u6211\u8bd5\u7528\u4e86OpenFaaS\uff0c\u4e3a\u4e86\u4f7f\u7528\u81ea\u5df1\u7684FaaS\u6784\u5efa\u7cfb\u7edf\u7684\u60f3\u6cd5\u3002<\/p>\n<h2>\u6253\u5f00FaaS\u3002<\/h2>\n<p>\u51e0\u4e4e\u548c\u8fd9\u91cc\u4e00\u6837\u3002<\/p>\n<pre class=\"post-pre\"><code>docker swarm init\r\n\r\ngit clone https:\/\/github.com\/openfaas\/faas\r\n<span class=\"nb\">cd <\/span>faas\r\n\r\n.\/deploy_stack.sh\r\n<\/code><\/pre>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u30b5\u30fc\u30d0\u304c\u7acb\u3061\u4e0a\u304c\u3063\u3066\u3001Basic\u8a8d\u8a3c\u306e user \u3068 password \u304c\u8868\u793a\u3055\u308c\u308b\u306e\u3067\u30c1\u30a7\u30c3\u30af\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>deploy_stack.sh \u306e\u4e2d\u3092\u898b\u308b\u3068\u3001 docker stack deploy func &#8211;compose-file docker-compose.yml \u3092\u6700\u5f8c\u3067\u547c\u3093\u3067\u308b\u3002<br \/>\nBasic \u8a8d\u8a3c\u304c\u6709\u52b9\u3089\u3057\u3044 export BASIC_AUTH=&#8221;true&#8221;<br \/>\nBasic \u8a8d\u8a3c\u306e\u60c5\u5831\u304c\u51fa\u529b\u3055\u308c\u308b echo &#8220;[Credentials]\\n username: admin \\n password: $secret\\n echo -n &#8220;$secret&#8221; | faas-cli login &#8211;username=admin &#8211;password-stdin&#8221;<\/p>\n<p>\u57fa\u672c\u7684\u8ba4\u8bc1\u4fe1\u606f\u4ee5\u8fd9\u6837\u7684\u5f62\u5f0f\u8f93\u51fa\u3002\u8bb0\u4f4f\u4e86\u3002\u5f53\u8bbf\u95ee\u7ba1\u7406\u754c\u9762\u65f6\uff0c\u5728\u6d4f\u89c8\u5668\u4e0a\u6216\u90e8\u7f72\u65f6\u90fd\u662f\u5fc5\u9700\u7684\u3002<\/p>\n<pre class=\"post-pre\"><code>[Credentials]\r\n username: admin\r\n password: 9c6208072a2389f1a9451c7fefbd2545e39bdf0a1d6cad5fd83d84f045fae173\r\n echo -n 9c6208072a2389f1a9451c7fefbd2545e39bdf0a1d6cad5fd83d84f045fae173 | faas-cli login --username=admin --password-stdin\r\n<\/code><\/pre>\n<p>\u5f53\u8fd0\u884cdocker ps\u547d\u4ee4\u65f6\uff0c\u4f1a\u770b\u5230\u7c7b\u4f3c\u8fd9\u6837\u7684\u8f93\u51fa\u3002<\/p>\n<pre class=\"post-pre\"><code>CONTAINER ID        IMAGE                         COMMAND                  CREATED              STATUS              PORTS                NAMES\r\n98d484de2d2a        openfaas\/faas-swarm:0.4.4     \".\/faas-swarm\"           50 seconds ago       Up 49 seconds       8080\/tcp             func_faas-swarm.1.un383dnfpqk1h5cd2c7bdn7co\r\n62a944864920        openfaas\/gateway:0.9.10       \".\/gateway\"              54 seconds ago       Up 53 seconds       8080\/tcp             func_gateway.1.iqgnmze692cleburpvw5jh9pc\r\nfcfbcd09c3bd        prom\/alertmanager:v0.15.0     \"\/bin\/alertmanager -\u2026\"   58 seconds ago       Up 57 seconds       9093\/tcp             func_alertmanager.1.04pes9jdabhxm9w8aapdxf2z4\r\neea4efca8daa        prom\/prometheus:v2.3.1        \"\/bin\/prometheus --c\u2026\"   About a minute ago   Up About a minute   9090\/tcp             func_prometheus.1.bwl1j63bjmxv7ixl25j99ez3n\r\ndc8c546038ef        openfaas\/queue-worker:0.5.4   \".\/app\"                  About a minute ago   Up About a minute   8080\/tcp             func_queue-worker.1.nnlvo3ixpc5rf5f65hzhdb2qh\r\n893e162a290f        nats-streaming:0.11.2         \"\/nats-streaming-ser\u2026\"   About a minute ago   Up About a minute   4222\/tcp, 8222\/tcp   func_nats.1.g33o99phxe0gx3ubt4625ih57\r\n<\/code><\/pre>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d557337434c4406cd65e7\/9-0.png\" alt=\"image.png\" \/><\/div>\n<h2>\u5b89\u88c5 OpenFaaS \u7684\u547d\u4ee4\u884c\u5de5\u5177 (CLI)\u3002<\/h2>\n<pre class=\"post-pre\"><code>curl -sSL https:\/\/cli.openfaas.com | sh\r\n<\/code><\/pre>\n<p>\u5728\u6267\u884c\u4e0a\u8ff0\u547d\u4ee4\u5b89\u88c5\u65f6\uff0c\u4f1a\u51fa\u73b0\u4ee5\u4e0b\u63d0\u793a\uff08\u5728 Mac \u4e00\u822c\u7528\u6237\u6267\u884c\u65f6\uff09\u3002\u56e0\u6b64\uff0c\u6309\u7167\u63d0\u793a\u6267\u884c\u4e86\u4e24\u4e2a\u547d\u4ee4\u3002<\/p>\n<pre class=\"post-pre\"><code>=========================================================\r\n==    As the script was run as a non-root user the     ==\r\n==    following commands may need to be run manually   ==\r\n=========================================================\r\n\r\n  sudo cp faas-cli-darwin \/usr\/local\/bin\/faas-cli\r\n  sudo ln -sf \/usr\/local\/bin\/faas-cli \/usr\/local\/bin\/faas\r\n<\/code><\/pre>\n<p>\u4f7f\u7528faas-cli version\u547d\u4ee4\u6765\u68c0\u67e5\u7248\u672c\u3002<\/p>\n<pre class=\"post-pre\"><code>  ___                   _____           ____\r\n \/ _ \\ _ __   ___ _ __ |  ___|_ _  __ _\/ ___|\r\n| | | | '_ \\ \/ _ \\ '_ \\| |_ \/ _` |\/ _` \\___ \\\r\n| |_| | |_) |  __\/ | | |  _| (_| | (_| |___) |\r\n \\___\/| .__\/ \\___|_| |_|_|  \\__,_|\\__,_|____\/\r\n      |_|\r\n\r\nCLI:\r\n commit:  b24c5763d9b61e0c04018a722f8f2f765498f18a\r\n version: 0.7.8\r\n<\/code><\/pre>\n<p>faas-cli \u7684\u5e2e\u52a9\u4fe1\u606f<\/p>\n<pre class=\"post-pre\"><code>Manage your OpenFaaS functions from the command line\r\n\r\nUsage:\r\n  faas-cli [flags]\r\n  faas-cli [command]\r\n\r\nAvailable Commands:\r\n  build          Builds OpenFaaS function containers\r\n  cloud          OpenFaaS Cloud commands\r\n  deploy         Deploy OpenFaaS functions\r\n  describe       Describe an OpenFaaS function\r\n  generate       Generate Kubernetes CRD YAML file\r\n  help           Help about any command\r\n  invoke         Invoke an OpenFaaS function\r\n  list           List OpenFaaS functions\r\n  login          Log in to OpenFaaS gateway\r\n  logout         Log out from OpenFaaS gateway\r\n  new            Create a new template in the current folder with the name given as name\r\n  push           Push OpenFaaS functions to remote registry (Docker Hub)\r\n  remove         Remove deployed OpenFaaS functions\r\n  store          OpenFaaS store commands\r\n  template       Downloads templates from the specified github repo\r\n  up             Builds, pushes and deploys OpenFaaS function containers\r\n  version        Display the clients version information\r\n\r\nFlags:\r\n      --filter string   Wildcard to match with function names in YAML file\r\n  -h, --help            help for faas-cli\r\n      --regex string    Regex to match with function names in YAML file\r\n  -f, --yaml string     Path to YAML file describing function(s)\r\n\r\nUse \"faas-cli [command] --help\" for more information about a command.\r\n<\/code><\/pre>\n<h2>\u529f\u80fd\u521b\u5efa<\/h2>\n<p>\u521b\u5efa\u7528\u4e8e\u7ba1\u7406\u7684\u76ee\u5f55\u3002<\/p>\n<pre class=\"post-pre\"><code>mkdir functions\r\ncd functions\r\n<\/code><\/pre>\n<h3>\u65b0\u7684\u529f\u80fd<\/h3>\n<hr \/>\n<p>\u53ea\u662f\u60f3\u5c1d\u8bd5\u4e00\u4e0b\u7684\u8bdd\uff0c<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">faas-cli new \u306e &#8211;prefix localhost:5000 \u306f\u3044\u3089\u306a\u3044<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Docker Registry \u3082\u3044\u3089\u306a\u3044<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">faas-cli push \u3082\u3044\u3089\u306a\u3044<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">faas-cli build \u306e &#8211;tag latest \u306f\u3044\u3089\u306a\u3044<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">new \u3057\u3066 build \u3057\u3066\u3001 OpenFaaS \u3078\u306e\u30ed\u30b0\u30a4\u30f3\u3068 deploy \u3059\u308c\u3070\u3044\u3044<\/ul>\n<p>\u53ea\u662f\u90a3\u6837\u800c\u5df2\u3002\u4ed6\u4f3c\u4e4e\u8fd8\u6709\u5176\u4ed6\u5f88\u591a\u8bef\u4f1a\u3002<\/p>\n<hr \/>\n<p>\u521b\u5efa\u4e00\u4e2a\u8282\u70b9\u529f\u80fd\u3002\u7531\u4e8e\u672c\u6b21\u4f7f\u7528\u4e86\u79c1\u6709\u7684Docker\u4ed3\u5e93\uff0c\u56e0\u6b64&#8211;prefix\u53c2\u6570\u7684\u6307\u5b9a\u5341\u5206\u91cd\u8981\u3002<\/p>\n<pre class=\"post-pre\"><code>faas-cli new hello-openfaas --lang node --prefix localhost:5000\r\n<\/code><\/pre>\n<p>\u7528tree\u547d\u4ee4\u67e5\u770b\u6587\u4ef6\u7ed3\u6784\u3002<\/p>\n<pre class=\"post-pre\"><code>.\r\n\u251c\u2500\u2500 hello-openfaas\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 handler.js\r\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 package.json\r\n\u251c\u2500\u2500 hello-openfaas.yml\r\n\u2514\u2500\u2500 template\r\n<\/code><\/pre>\n<p>\u732b hello-openfaas.yml \u5df2\u7ecf\u6253\u5f00\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"na\">provider<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">faas<\/span>\r\n  <span class=\"na\">gateway<\/span><span class=\"pi\">:<\/span> <span class=\"s\">http:\/\/127.0.0.1:8080<\/span>\r\n<span class=\"na\">functions<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">hello-openfaas<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">lang<\/span><span class=\"pi\">:<\/span> <span class=\"s\">node<\/span>\r\n    <span class=\"na\">handler<\/span><span class=\"pi\">:<\/span> <span class=\"s\">.\/hello-openfaas<\/span>\r\n    <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">hello-openfaas:latest<\/span>\r\n<\/code><\/pre>\n<p>\u732b\u8868\u73b0\u51fa\u4e86\u5bf9hello-openfaas\/handler.js\u6587\u4ef6\u7684\u5174\u8da3\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"dl\">\"<\/span><span class=\"s2\">use strict<\/span><span class=\"dl\">\"<\/span>\r\n\r\n<span class=\"nx\">module<\/span><span class=\"p\">.<\/span><span class=\"nx\">exports<\/span> <span class=\"o\">=<\/span> <span class=\"p\">(<\/span><span class=\"nx\">context<\/span><span class=\"p\">,<\/span> <span class=\"nx\">callback<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"nx\">callback<\/span><span class=\"p\">(<\/span><span class=\"kc\">undefined<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span><span class=\"na\">status<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">done<\/span><span class=\"dl\">\"<\/span><span class=\"p\">});<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<p>\u732b hello-openfaas\/package.json\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"p\">{<\/span>\r\n  <span class=\"nl\">\"name\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"function\"<\/span><span class=\"p\">,<\/span>\r\n  <span class=\"nl\">\"version\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"1.0.0\"<\/span><span class=\"p\">,<\/span>\r\n  <span class=\"nl\">\"description\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"\"<\/span><span class=\"p\">,<\/span>\r\n  <span class=\"nl\">\"main\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"handler.js\"<\/span><span class=\"p\">,<\/span>\r\n  <span class=\"nl\">\"scripts\"<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"nl\">\"test\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"echo <\/span><span class=\"se\">\\\"<\/span><span class=\"s2\">Error: no test specified<\/span><span class=\"se\">\\\"<\/span><span class=\"s2\"> &amp;&amp; exit 1\"<\/span>\r\n  <span class=\"p\">},<\/span>\r\n  <span class=\"nl\">\"keywords\"<\/span><span class=\"p\">:<\/span> <span class=\"p\">[],<\/span>\r\n  <span class=\"nl\">\"author\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"\"<\/span><span class=\"p\">,<\/span>\r\n  <span class=\"nl\">\"license\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"ISC\"<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<p>\u5c1d\u8bd5\u67e5\u770b faas-cli new \u547d\u4ee4\u4e2d\u9664\u4e86\u53ef\u6307\u5b9a\u7684 node \u6a21\u677f\u4e4b\u5916\u7684\u5176\u4ed6\u6a21\u677f\u3002<\/p>\n<pre class=\"post-pre\"><code>faas-cli template pull\r\nfaas-cli new --list\r\n<\/code><\/pre>\n<p>\u90a3\u4e2a\u7ed3\u679c\u662f\uff08\u622a\u81f32018\u5e7411\u670812\u65e5\uff09\u3002<\/p>\n<pre class=\"post-pre\"><code>Languages available as templates:\r\n- csharp\r\n- dockerfile\r\n- go\r\n- go-armhf\r\n- java8\r\n- node\r\n- node-arm64\r\n- node-armhf\r\n- php7\r\n- python\r\n- python-armhf\r\n- python3\r\n- python3-armhf\r\n- ruby\r\n<\/code><\/pre>\n<h3>Docker\u6ce8\u518c\u8868\u7684\u76ee\u7684\u662f\u4ec0\u4e48\uff1f<\/h3>\n<p>\u4ee5\u4e0b\u547d\u4ee4\u4e0d\u8003\u8651\u6301\u4e45\u6027\u7b49\u95ee\u9898\u3002\u4ec5\u4f9b\u8bd5\u7528\u3002<\/p>\n<pre class=\"post-pre\"><code>docker run -d -p 5000:5000 --name registry registry:latest\r\n<\/code><\/pre>\n<h3>\u521b\u5efaDocker\u955c\u50cf<\/h3>\n<pre class=\"post-pre\"><code>faas-cli build -f hello-openfaas.yml --tag latest\r\n<\/code><\/pre>\n<p>\u5728\u547d\u4ee4\u884c\u4e2d\u8f93\u5165 &#8220;docker image ls&#8221; \u8fdb\u884c\u786e\u8ba4\u3002<\/p>\n<pre class=\"post-pre\"><code>REPOSITORY                      TAG                    IMAGE ID            CREATED              SIZE\r\nlocalhost:5000\/hello-openfaas   latest                 bd1a24eefc35        About a minute ago   72.2MB\r\n<\/code><\/pre>\n<h3>\u5c06 Docker Image \u63a8\u9001\u5230 Registry\u3002<\/h3>\n<pre class=\"post-pre\"><code>faas-cli push -f hello-openfaas.yml --tag latest\r\n<\/code><\/pre>\n<h3>\u628a\u5e94\u7528\u7a0b\u5e8f\u90e8\u7f72\u5230OpenFaaS<\/h3>\n<p>\u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\u4ee5\u767b\u5f55\u5230OpenFaaS\uff1a\u8fd0\u884c.\/deploy_stack.sh\u65f6\u663e\u793a\u7684\u4ee5echo\u5f00\u5934\u7684\u547d\u4ee4\u3002<\/p>\n<pre class=\"post-pre\"><code>echo -n 9c6208072a2389f1a9451c7fefbd2545e39bdf0a1d6cad5fd83d84f045fae173 | faas-cli login --username=admin --password-stdin\r\n<\/code><\/pre>\n<p>\u90e8\u7f72\uff5e<\/p>\n<pre class=\"post-pre\"><code>faas-cli deploy -f hello-openfaas.yml\r\n<\/code><\/pre>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d557337434c4406cd65e7\/55-0.png\" alt=\"image.png\" \/><\/div>\n<p>\u6309\u4e0bINVOKE\u6309\u94ae\uff0c\u5373\u53ef\u6267\u884cFunction\u5e76\u5728\u54cd\u5e94\u4f53\u4e2d\u663e\u793a\u7ed3\u679c\u3002<br \/>\n\u4e5f\u53ef\u4ee5\u901a\u8fc7\u6d4f\u89c8\u5668\u8bbf\u95eeURL\u3002<\/p>\n<h3>\u5220\u9664\u529f\u80fd<\/h3>\n<pre class=\"post-pre\"><code>faas-cli remove -f hello-openfaas.yml\r\n<\/code><\/pre>\n<p>\u53ef\u4ee5\u901a\u8fc7\u753b\u9762\u4e0a\u7684\u5783\u573e\u6876\u8fdb\u884c\u5220\u9664\u3002<\/p>\n<h2>\u6253\u6383<\/h2>\n<p>\u4e5f\u8bb8\u6709\u66f4\u597d\u7684\u65b9\u6cd5\u6765\u6253\u626b\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"c\"># \u30b5\u30fc\u30d0\u3092\u30c0\u30a6\u30f3\u3059\u308b<\/span>\r\ndocker stack <span class=\"nb\">rm <\/span>func\r\ndocker <span class=\"nb\">rm<\/span> <span class=\"nt\">-f<\/span> registry\r\n\r\n<span class=\"c\"># docker secret \u306e\u524a\u9664<\/span>\r\ndocker secret <span class=\"nb\">rm <\/span>basic-auth-user\r\ndocker secret <span class=\"nb\">rm <\/span>basic-auth-password\r\n\r\n<span class=\"c\"># docker image \u306e\u524a\u9664<\/span>\r\ndocker rmi localhost:5000\/hello-openfaas\r\n<\/code><\/pre>\n<h2>\u6211\u6240\u611f\u53d7\u5230\u7684<\/h2>\n<p>\u542c\u8d77\u6765\u4e0d\u9519\u3002<br \/>\n\u5982\u679c\u8981\u6784\u5efa\u7cfb\u7edf\uff0c\u4e5f\u8bb8\u53ef\u4ee5\u5728 Kubernetes \u7684\u96c6\u7fa4\u4e0a\u642d\u5efa\u3002<br \/>\n\u867d\u7136\u6211\u6ca1\u642d\u5efa\u8fc7 Kubernetes\u3002<br \/>\nFargate \u4e0a\u7684 OpenFaaS\uff1f\u8fd9\u5f88\u6709\u610f\u601d\u3002https:\/\/github.com\/ewilde\/faas-fargate<br \/>\n\u5173\u4e8e\u5982\u4f55\u5c06\u5b98\u65b9 AWS \u90e8\u7f72\u5230 EKS\uff1f \u6211\u6709\u5174\u8da3\u3002https:\/\/aws.amazon.com\/jp\/blogs\/opensource\/deploy-openfaas-aws-eks\/<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6700\u8fd1\uff0c\u6211\u8bd5\u7528\u4e86OpenFaaS\uff0c\u4e3a\u4e86\u4f7f\u7528\u81ea\u5df1\u7684FaaS\u6784\u5efa\u7cfb\u7edf\u7684\u60f3\u6cd5\u3002 \u6253\u5f00FaaS\u3002 \u51e0\u4e4e\u548c\u8fd9\u91cc\u4e00\u6837\u3002 do [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-43911","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u4e3a\u4e86\u83b7\u53d6\u4e00\u4e2a\u79c1\u6709\u5316\u7684 AWS Lambda\uff0c\u6211\u5c1d\u8bd5\u4f7f\u7528 OpenFaaS \u6765\u8fdb\u884c\u6d4b\u8bd5\uff08\u4f7f\u7528swarm\uff09 - Blog - Silicon Cloud<\/title>\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.silicloud.com\/zh\/blog\/\u4e3a\u4e86\u83b7\u53d6\u4e00\u4e2a\u79c1\u6709\u5316\u7684-aws-lambda\uff0c\u6211\u5c1d\u8bd5\u4f7f\u7528-openfaas-\u6765\u8fdb\u884c\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u4e3a\u4e86\u83b7\u53d6\u4e00\u4e2a\u79c1\u6709\u5316\u7684 AWS Lambda\uff0c\u6211\u5c1d\u8bd5\u4f7f\u7528 OpenFaaS \u6765\u8fdb\u884c\u6d4b\u8bd5\uff08\u4f7f\u7528swarm\uff09\" \/>\n<meta property=\"og:description\" content=\"\u6700\u8fd1\uff0c\u6211\u8bd5\u7528\u4e86OpenFaaS\uff0c\u4e3a\u4e86\u4f7f\u7528\u81ea\u5df1\u7684FaaS\u6784\u5efa\u7cfb\u7edf\u7684\u60f3\u6cd5\u3002 \u6253\u5f00FaaS\u3002 \u51e0\u4e4e\u548c\u8fd9\u91cc\u4e00\u6837\u3002 do [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u4e3a\u4e86\u83b7\u53d6\u4e00\u4e2a\u79c1\u6709\u5316\u7684-aws-lambda\uff0c\u6211\u5c1d\u8bd5\u4f7f\u7528-openfaas-\u6765\u8fdb\u884c\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-07-20T19:17:40+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-29T18:10:32+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d557337434c4406cd65e7\/9-0.png\" \/>\n<meta name=\"author\" content=\"\u6587, \u7fd4\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u6587, \u7fd4\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%b8%ba%e4%ba%86%e8%8e%b7%e5%8f%96%e4%b8%80%e4%b8%aa%e7%a7%81%e6%9c%89%e5%8c%96%e7%9a%84-aws-lambda%ef%bc%8c%e6%88%91%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8-openfaas-%e6%9d%a5%e8%bf%9b%e8%a1%8c\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%b8%ba%e4%ba%86%e8%8e%b7%e5%8f%96%e4%b8%80%e4%b8%aa%e7%a7%81%e6%9c%89%e5%8c%96%e7%9a%84-aws-lambda%ef%bc%8c%e6%88%91%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8-openfaas-%e6%9d%a5%e8%bf%9b%e8%a1%8c\/\",\"name\":\"\u4e3a\u4e86\u83b7\u53d6\u4e00\u4e2a\u79c1\u6709\u5316\u7684 AWS Lambda\uff0c\u6211\u5c1d\u8bd5\u4f7f\u7528 OpenFaaS \u6765\u8fdb\u884c\u6d4b\u8bd5\uff08\u4f7f\u7528swarm\uff09 - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-07-20T19:17:40+00:00\",\"dateModified\":\"2024-04-29T18:10:32+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/64d5cc7727fffbff2f9a2a8da1de3e5c\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%b8%ba%e4%ba%86%e8%8e%b7%e5%8f%96%e4%b8%80%e4%b8%aa%e7%a7%81%e6%9c%89%e5%8c%96%e7%9a%84-aws-lambda%ef%bc%8c%e6%88%91%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8-openfaas-%e6%9d%a5%e8%bf%9b%e8%a1%8c\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%b8%ba%e4%ba%86%e8%8e%b7%e5%8f%96%e4%b8%80%e4%b8%aa%e7%a7%81%e6%9c%89%e5%8c%96%e7%9a%84-aws-lambda%ef%bc%8c%e6%88%91%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8-openfaas-%e6%9d%a5%e8%bf%9b%e8%a1%8c\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%b8%ba%e4%ba%86%e8%8e%b7%e5%8f%96%e4%b8%80%e4%b8%aa%e7%a7%81%e6%9c%89%e5%8c%96%e7%9a%84-aws-lambda%ef%bc%8c%e6%88%91%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8-openfaas-%e6%9d%a5%e8%bf%9b%e8%a1%8c\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u4e3a\u4e86\u83b7\u53d6\u4e00\u4e2a\u79c1\u6709\u5316\u7684 AWS Lambda\uff0c\u6211\u5c1d\u8bd5\u4f7f\u7528 OpenFaaS \u6765\u8fdb\u884c\u6d4b\u8bd5\uff08\u4f7f\u7528swarm\uff09\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/64d5cc7727fffbff2f9a2a8da1de3e5c\",\"name\":\"\u6587, \u7fd4\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/920c3d673e0bccacc98e5e6b7149bb3c22edd8d39cb753e5d7d7e471498118a1?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/920c3d673e0bccacc98e5e6b7149bb3c22edd8d39cb753e5d7d7e471498118a1?s=96&d=mm&r=g\",\"caption\":\"\u6587, \u7fd4\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/wenxiang\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%b8%ba%e4%ba%86%e8%8e%b7%e5%8f%96%e4%b8%80%e4%b8%aa%e7%a7%81%e6%9c%89%e5%8c%96%e7%9a%84-aws-lambda%ef%bc%8c%e6%88%91%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8-openfaas-%e6%9d%a5%e8%bf%9b%e8%a1%8c\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u4e3a\u4e86\u83b7\u53d6\u4e00\u4e2a\u79c1\u6709\u5316\u7684 AWS Lambda\uff0c\u6211\u5c1d\u8bd5\u4f7f\u7528 OpenFaaS \u6765\u8fdb\u884c\u6d4b\u8bd5\uff08\u4f7f\u7528swarm\uff09 - Blog - Silicon Cloud","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.silicloud.com\/zh\/blog\/\u4e3a\u4e86\u83b7\u53d6\u4e00\u4e2a\u79c1\u6709\u5316\u7684-aws-lambda\uff0c\u6211\u5c1d\u8bd5\u4f7f\u7528-openfaas-\u6765\u8fdb\u884c\/","og_locale":"zh_CN","og_type":"article","og_title":"\u4e3a\u4e86\u83b7\u53d6\u4e00\u4e2a\u79c1\u6709\u5316\u7684 AWS Lambda\uff0c\u6211\u5c1d\u8bd5\u4f7f\u7528 OpenFaaS \u6765\u8fdb\u884c\u6d4b\u8bd5\uff08\u4f7f\u7528swarm\uff09","og_description":"\u6700\u8fd1\uff0c\u6211\u8bd5\u7528\u4e86OpenFaaS\uff0c\u4e3a\u4e86\u4f7f\u7528\u81ea\u5df1\u7684FaaS\u6784\u5efa\u7cfb\u7edf\u7684\u60f3\u6cd5\u3002 \u6253\u5f00FaaS\u3002 \u51e0\u4e4e\u548c\u8fd9\u91cc\u4e00\u6837\u3002 do [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u4e3a\u4e86\u83b7\u53d6\u4e00\u4e2a\u79c1\u6709\u5316\u7684-aws-lambda\uff0c\u6211\u5c1d\u8bd5\u4f7f\u7528-openfaas-\u6765\u8fdb\u884c\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-07-20T19:17:40+00:00","article_modified_time":"2024-04-29T18:10:32+00:00","og_image":[{"url":"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d557337434c4406cd65e7\/9-0.png"}],"author":"\u6587, \u7fd4","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u6587, \u7fd4","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"4 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%b8%ba%e4%ba%86%e8%8e%b7%e5%8f%96%e4%b8%80%e4%b8%aa%e7%a7%81%e6%9c%89%e5%8c%96%e7%9a%84-aws-lambda%ef%bc%8c%e6%88%91%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8-openfaas-%e6%9d%a5%e8%bf%9b%e8%a1%8c\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%b8%ba%e4%ba%86%e8%8e%b7%e5%8f%96%e4%b8%80%e4%b8%aa%e7%a7%81%e6%9c%89%e5%8c%96%e7%9a%84-aws-lambda%ef%bc%8c%e6%88%91%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8-openfaas-%e6%9d%a5%e8%bf%9b%e8%a1%8c\/","name":"\u4e3a\u4e86\u83b7\u53d6\u4e00\u4e2a\u79c1\u6709\u5316\u7684 AWS Lambda\uff0c\u6211\u5c1d\u8bd5\u4f7f\u7528 OpenFaaS \u6765\u8fdb\u884c\u6d4b\u8bd5\uff08\u4f7f\u7528swarm\uff09 - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-07-20T19:17:40+00:00","dateModified":"2024-04-29T18:10:32+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/64d5cc7727fffbff2f9a2a8da1de3e5c"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%b8%ba%e4%ba%86%e8%8e%b7%e5%8f%96%e4%b8%80%e4%b8%aa%e7%a7%81%e6%9c%89%e5%8c%96%e7%9a%84-aws-lambda%ef%bc%8c%e6%88%91%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8-openfaas-%e6%9d%a5%e8%bf%9b%e8%a1%8c\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e4%b8%ba%e4%ba%86%e8%8e%b7%e5%8f%96%e4%b8%80%e4%b8%aa%e7%a7%81%e6%9c%89%e5%8c%96%e7%9a%84-aws-lambda%ef%bc%8c%e6%88%91%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8-openfaas-%e6%9d%a5%e8%bf%9b%e8%a1%8c\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%b8%ba%e4%ba%86%e8%8e%b7%e5%8f%96%e4%b8%80%e4%b8%aa%e7%a7%81%e6%9c%89%e5%8c%96%e7%9a%84-aws-lambda%ef%bc%8c%e6%88%91%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8-openfaas-%e6%9d%a5%e8%bf%9b%e8%a1%8c\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u4e3a\u4e86\u83b7\u53d6\u4e00\u4e2a\u79c1\u6709\u5316\u7684 AWS Lambda\uff0c\u6211\u5c1d\u8bd5\u4f7f\u7528 OpenFaaS \u6765\u8fdb\u884c\u6d4b\u8bd5\uff08\u4f7f\u7528swarm\uff09"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/64d5cc7727fffbff2f9a2a8da1de3e5c","name":"\u6587, \u7fd4","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/920c3d673e0bccacc98e5e6b7149bb3c22edd8d39cb753e5d7d7e471498118a1?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/920c3d673e0bccacc98e5e6b7149bb3c22edd8d39cb753e5d7d7e471498118a1?s=96&d=mm&r=g","caption":"\u6587, \u7fd4"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/wenxiang\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%b8%ba%e4%ba%86%e8%8e%b7%e5%8f%96%e4%b8%80%e4%b8%aa%e7%a7%81%e6%9c%89%e5%8c%96%e7%9a%84-aws-lambda%ef%bc%8c%e6%88%91%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8-openfaas-%e6%9d%a5%e8%bf%9b%e8%a1%8c\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/43911","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=43911"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/43911\/revisions"}],"predecessor-version":[{"id":89047,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/43911\/revisions\/89047"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=43911"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=43911"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=43911"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}