使用 Azure CLI 创建 Azure 通知中心

Azure 通知中心提供易于使用且横向扩展的推送引擎,可用于从任何后端(云或本地)向任何平台(iOS、Android、Windows、Kindle、百度等)发送通知。 有关此服务的详细信息,请参阅什么是 Azure 通知中心?

在本快速入门中,你将使用 Azure CLI 创建通知中心。 第一部分提供创建通知中心命名空间的步骤。 第二部分提供在现有命名空间中创建通知中心的步骤。 此外,介绍如何创建自定义访问策略。

如果没有 Azure 订阅,请在开始前创建一个试用版订阅

先决条件

可以使用本地 Azure CLI。

  • 如果需要,请安装 Azure CLI 来运行 CLI 参考命令。

  • 本地 Azure CLI,请了解如何安装 Azure CLI。 如果在 Windows 或 macOS 上运行,请考虑在 Docker 容器中运行 Azure CLI。 有关详细信息,请参阅如何在 Docker 容器中运行 Azure CLI

    • 通过使用 az login 命令登录到 Azure CLI。 若要完成身份验证过程,请遵循终端中显示的步骤。 有关其他登录选项,请参阅使用 Azure CLI 登录

    • 出现提示时,请在首次使用时安装 Azure CLI 扩展。 有关扩展详细信息,请参阅使用 Azure CLI 的扩展

    • 运行 az version 以查找安装的版本和依赖库。 若要升级到最新版本,请运行 az upgrade

重要

通知中心需要 Azure CLI 2.0.67 或更高版本。 运行 az version 以查找安装的版本和依赖库。 若要升级到最新版本,请运行 az upgrade

创建资源组

与所有 Azure 资源一样,Azure 通知中心必须部署到资源组中。 使用资源组可以组织和管理相关的 Azure 资源。 请参阅什么是 Azure 资源管理器以详细了解资源组。

对于本快速入门,请使用以下 az group create 命令在 chinanorth 位置创建名为 spnhubrg 的资源组 。

az group create --name spnhubrg --location chinanorth

创建通知中心命名空间

  1. 创建通知中心的命名空间。

    命名空间包含一个或多个中心,其名称在所有 Azure 订阅上必须保持唯一且长度至少为六个字符。 若要检查名称是否可用,请使用 az notification-hub namespace check-availability 命令。

    az notification-hub namespace check-availability --name spnhubns
    

    Azure CLI 通过显示以下控制台输出来响应你的可用性请求:

    {
    "id": "/subscriptions/yourSubscriptionID/providers/Microsoft.NotificationHubs/checkNamespaceAvailability",
    "isAvailable": true,
    "location": null,
    "name": "spnhubns",
    "properties": false,
    "sku": null,
    "tags": null,
    "type": "Microsoft.NotificationHubs/namespaces/checkNamespaceAvailability"
    }
    

    请注意 Azure CLI 响应中的第二行 "isAvailable": true。 如果为命名空间指定的所需名称不可用,此行将读取 false。 确认名称的可用性后,请运行 az notification-hub namespace create 命令来创建命名空间。

    az notification-hub namespace create --resource-group spnhubrg --name spnhubns  --location chinanorth --sku Free
    

    如果提供给 az notification-hub namespace create 命令的 --name 不可用,或不满足 Azure 资源的命名规则和限制,Azure CLI 将使用以下控制台输出进行响应:

    #the name is not available
    The specified name is not available. For more information visit https://docs.azure.cn/event-hubs/resource-manager-exceptions.
    
    #the name is invalid
    The specified service namespace is invalid.
    

    如果尝试的第一个名称不成功,请为新命名空间选择其他名称,然后再次运行 az notification-hub namespace create 命令。

    注意

    在此步骤中,必须在从此快速入门中复制的每个 Azure CLI 命令中替换 --namespace 参数的值。

  2. 获取命名空间的列表。

    若要查看有关新命名空间的详细信息,请使用 az notification-hub namespace list 命令。 如果要查看订阅的所有命名空间,则 --resource-group 参数为可选。

    az notification-hub namespace list --resource-group spnhubrg
    

创建通知中心

  1. 创建第一个通知中心。

    现在,可在新的命名空间中创建一个或多个通知中心。 运行 az notification-hub create 命令创建通知中心。

    az notification-hub create --resource-group spnhubrg --namespace-name spnhubns --name spfcmtutorial1nhub --location chinanorth --sku Free
    
  2. 创建另一个通知中心。

    可以在一个命名空间中创建多个通知中心。 若要在同一个命名空间中创建另一个通知中心,请使用不同的中心名称再次运行 az notification-hub create 命令。

    az notification-hub create --resource-group spnhubrg --namespace-name spnhubns --name mysecondnhub --location chinanorth --sku Free
    
  3. 获取通知中心的列表。

    Azure CLI 会在执行每个命令后返回成功或错误消息;不过你一定能够查询通知中心的列表。 az notification-hub list 命令旨在实现此目的。

    az notification-hub list --resource-group spnhubrg --namespace-name spnhubns --output table
    

使用访问策略

  1. Azure 通知中心通过使用访问策略来获得共享访问签名安全性。 创建通知中心时,会自动创建两个策略。 需要这些策略中的连接字符串来配置推送通知。 az notification-hub authorization-rule list 命令提供策略名称及其各自资源组的列表。

    az notification-hub authorization-rule list --resource-group spnhubrg --namespace-name spnhubns --notification-hub-name spfcmtutorial1nhub --output table
    

    重要

    请不要在应用程序中使用 DefaultFullSharedAccessSignature 策略。 此策略只能在后端使用。 请仅在客户端应用程序中使用 Listen 访问策略。

  2. 如果要使用有意义的名称创建其他授权规则,可使用 az notification-hub authorization-rule create 命令来创建和自定义你自己的访问策略。 --rights 参数是要分配的权限的空格分隔列表。

    az notification-hub authorization-rule create --resource-group spnhubrg --namespace-name spnhubns --notification-hub-name spfcmtutorial1nhub --name spnhub1key --rights Listen Manage Send
    
  3. 每个访问策略有两组密钥和连接字符串。 稍后在配置通知中心时需要它们。 若要列出通知中心访问策略的密钥和连接字符串,请使用 az notification-hub authorization-rule list-keys 命令。

    # query the keys and connection strings for DefaultListenSharedAccessSignature
    az notification-hub authorization-rule list-keys --resource-group spnhubrg --namespace-name spnhubns --notification-hub-name spfcmtutorial1nhub --name DefaultListenSharedAccessSignature --output table
    
    # query the keys and connection strings for a custom policy
    az notification-hub authorization-rule list-keys --resource-group spnhubrg --namespace-name spnhubns --notification-hub-name spfcmtutorial1nhub --name spnhub1key --output table
    

    注意

    通知中心命名空间通知中心具有不同的访问策略。 查询密钥和连接字符串时,请确保使用正确的 Azure CLI 参考内容。

清理资源

不再需要上述资源组和所有相关资源时,请使用 az group delete 命令将其删除:

az group delete --name spnhubrg

后续步骤