繁体   English   中英

如何使用无服务器为 Azure Functions 指定自定义域和证书?

[英]How to specify custom domain and certificate for Azure Functions using Serverless?

我们使用无服务器将 graphql 处理程序函数部署为 Azure 函数并通过 APIM 访问它。

我们需要使用我们自己的自定义域(通过 CNAME 指向 Azure APIM 域),并且可以通过 Azure 门户手动设置它,并上传证书 + 为其指定证书密码。

但是,如果我们执行“sls deploy”,该自定义域设置将被删除,因此我们需要以某种方式保留它或通过 serverless.yml 指定它,但我找不到有关如何执行此操作的任何信息。

当前 serverless.yml 配置:

service: my-service-${env:STAGE, 'develop'}
configValidationMode: off

provider:
  name: azure
  runtime: nodejs12
  region: north-europe
  resourceGroup: My-Service-Group
  subscriptionId: MySubscriptionId
  stage: ${env:STAGE, 'develop'}
  apim: true


plugins:
  - serverless-azure-functions

functions:
  graphql:
    handler: lib/azure.handler
    events:
      - http: true
        methods:
          - GET
          - POST
        authLevel: anonymous # can also be `function` or `admin`
        route: graphql
      - http: true
        direction: out
        name: "$return"
        route: graphql

任何这方面的指导将不胜感激。

为了设置证书,我们需要从 Azure 门户中选择 TSL/SSL 设置选项,然后我们可以创建应用服务托管证书。

为此,我们需要按以下步骤添加自定义域:

  • 将域映射到应用程序
  • 我们需要购买通配符证书

下面是我们通常的设置方式:

在此处输入图片说明

最后,我们需要创建 DNS 规则。

感谢codeproject因为我们清楚地起草了所有信息

从 apim 部分检查以下示例 serverless.yml:

# serverless.yml

apim:
  apis:
    - name: v1
      subscriptionRequired: false # if true must provide an api key
      displayName: v1
      description: V1 sample app APIs
      protocols:
        - https
      path: v1
      tags:
        - tag1
        - tag2
      authorization: none
  cors:
    allowCredentials: false
    allowedOrigins:
      - "*"
    allowedMethods:
      - GET
      - POST
      - PUT
      - DELETE
      - PATCH
    allowedHeaders:
      - "*"
    exposeHeaders:
      - "*"
 

和“sls 部署”

检查无服务器框架和 Azure 部署文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM