Implementación del contenedor del servicio de voz en Azure Container InstancesDeploy the Speech service container to Azure Container Instances

Aprenda a implementar el contenedor del servicio de voz de Cognitive Services en una instancia de Azure Container Instances.Learn how to deploy the Cognitive Services Speech service container to Azure Container Instances. Este procedimiento muestra la creación de un recurso del servicio de voz de Azure.This procedure demonstrates the creation of an Azure Speech service resource. Luego se trata la extracción de la imagen de contenedor asociada.Then we discuss pulling the associated container image. Por último, se resalta la posibilidad de aprovechar la orquestación de los dos desde un explorador.Finally, we highlight the ability to exercise the orchestration of the two from a browser. El uso de contenedores puede desviar la atención de los desarrolladores de la administración de la infraestructura y centrarla en el desarrollo de aplicaciones.Using containers can shift the developers' attention away from managing infrastructure to instead focusing on application development.

PrerequisitesPrerequisites

  • Use una suscripción de Azure.Use an Azure subscription. Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.If you don't have an Azure subscription, create a free account before you begin.
  • Instale la CLI de Azure (az).Install the Azure CLI (az).
  • Motor de docker y se asegura de que la CLI de Docker funciona en una ventana de consola.Docker engine and validate that the Docker CLI works in a console window.

Solicitud de acceso al registro de contenedorRequest access to the container registry

Primero debe completar y enviar el formulario de solicitud de contenedores del servicio Voz de Cognitive Services para solicitar acceso al contenedor.You must first complete and submit the Cognitive Services Speech Containers Request form to request access to the container.

El formulario solicita información acerca del usuario y de su empresa, así como del escenario de usuario para el que se va a usar el contenedor.The form requests information about you, your company, and the user scenario for which you'll use the container. Después de haber enviado el formulario, el equipo de Azure Cognitive Services lo revisa para asegurarse de que cumple los criterios de acceso al registro de contenedor privado.After you've submitted the form, the Azure Cognitive Services team reviews it to ensure that you meet the criteria for access to the private container registry.

Importante

Debe usar una dirección de correo electrónico que esté asociada con una cuenta de Microsoft (MSA) o de Azure Active Directory (Azure AD) en el formulario.You must use an email address that's associated with either a Microsoft Account (MSA) or Azure Active Directory (Azure AD) account in the form.

Si se aprueba la solicitud, recibirá un correo electrónico con instrucciones que describen cómo obtener las credenciales y tener acceso al registro de contenedor privado.If your request is approved, you'll receive an email with instructions that describe how to obtain your credentials and access the private container registry.

Creación de un recurso de vozCreate a Speech resource

  1. Inicie sesión en Azure Portal.Sign into the Azure portal

  2. Haga clic en Crear un recurso de voz.Click Create Speech resource

  3. Establezca todas las opciones de configuración necesarias:Enter all required settings:

    ConfiguraciónSetting ValueValue
    NombreName Nombre que quiera (2-64 caracteres).Desired name (2-64 characters)
    SubscriptionSubscription Seleccione una suscripción adecuada.Select appropriate subscription
    LocationLocation Seleccione cualquier ubicación disponible cercana.Select any nearby and available location
    Nivel de preciosPricing Tier F0: el plan de tarifa mínimo.F0 - the minimal pricing tier
    Grupo de recursosResource Group Seleccione un grupo de recursos disponible.Select an available resource group
  4. Haga clic en Crear y espere a que el recurso se cree.Click Create and wait for the resource to be created. Una vez creado, vaya a la página de recursos.After it is created, navigate to the resource page

  5. Recopile el elemento endpoint configurado y una clave de API:Collect configured endpoint and an API key:

    Pestaña de recursos en el portalResource Tab in Portal ConfiguraciónSetting ValueValue
    Información generalOverview Punto de conexiónEndpoint Copie el punto de conexión.Copy the endpoint. Tiene un aspecto similar a https://speech.cognitiveservices.azure.com/sts/v1.0/issuetoken.It looks similar to https://speech.cognitiveservices.azure.com/sts/v1.0/issuetoken
    ClavesKeys Clave de APIAPI Key Copie una de las dos claves.Copy 1 of the two keys. Es una cadena de 32 caracteres alfanuméricos sin espacios ni guiones, xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.It is a 32 alphanumeric-character string with no spaces or dashes, xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.

Creación de un recurso de instancia de contenedor de Azure con la CLI de AzureCreate an Azure Container Instance resource from the Azure CLI

El siguiente código YAML define el recurso de instancia de contenedor de Azure.The YAML below defines the Azure Container Instance resource. Copie y pegue el contenido en un nuevo archivo llamado my-aci.yaml y reemplace los valores comentados por los suyos propios.Copy and paste the contents into a new file, named my-aci.yaml and replace the commented values with your own. Consulte el formato de plantilla para ver el código YAML válido.Refer to the template format for valid YAML. Consulte las imágenes y los repositorios de contenedor para ver los nombres de imagen disponibles y su repositorio correspondiente.Refer to the container repositories and images for the available image names and their corresponding repository. Para más información sobre la referencia de YAML para las instancias de contenedor, vea referencia de YAML: Azure Container Instances.For more information of the YAML reference for Container instances, see YAML reference: Azure Container Instances.

apiVersion: 2018-10-01
location: # < Valid location >
name: # < Container Group name >
properties:
  imageRegistryCredentials: # This is only required if you are pulling a non-public image that requires authentication to access.
  - server: containerpreview.azurecr.io
    username: # < The username for the preview container registry >
    password: # < The password for the preview container registry >
  containers:
  - name: # < Container name >
    properties:
      image: # < Repository/Image name >
      environmentVariables: # These env vars are required
        - name: eula
          value: accept
        - name: billing
          value: # < Service specific Endpoint URL >
        - name: apikey
          value: # < Service specific API key >
      resources:
        requests:
          cpu: 4 # Always refer to recommended minimal resources
          memoryInGb: 8 # Always refer to recommended minimal resources
      ports:
        - port: 5000
  osType: Linux
  volumes: # This node, is only required for container instances that pull their model in at runtime, such as LUIS.
  - name: aci-file-share
    azureFile:
      shareName: # < File share name >
      storageAccountName: # < Storage account name>
      storageAccountKey: # < Storage account key >
  restartPolicy: OnFailure
  ipAddress:
    type: Public
    ports:
    - protocol: tcp
      port: 5000
tags: null
type: Microsoft.ContainerInstance/containerGroups

Nota

No todas las ubicaciones tienen la misma disponibilidad de CPU y memoria.Not all locations have the same CPU and Memory availability. Consulte la tabla ubicación y recursos para obtener una lista de los recursos disponibles para los contenedores por ubicación y sistema operativo.Refer to the location and resources table for the listing of available resources for containers per location and OS.

Nos basaremos en el archivo YAML que hemos creado para el comando az container create.We'll rely on the YAML file we created for the az container create command. En la CLI de Azure, ejecute el comando az container create reemplazando <resource-group> por el suyo propio.From the Azure CLI, execute the az container create command replacing the <resource-group> with your own. Además, para proteger los valores dentro de una implementación de YAML, consulte cómo proteger los valores.Additionally, for securing values within a YAML deployment refer to secure values.

az container create -g <resource-group> -f my-aci.yaml

La salida del comando es Running... si es válido. Después de unos minutos, la salida cambia a una cadena JSON que representa el recurso ACI recién creado.The output of the command is Running... if valid, after sometime the output changes to a JSON string representing the newly created ACI resource. Es muy probable que la imagen de contenedor no esté disponible durante un tiempo, pero el recurso ya está implementado.The container image is more than likely not be available for a while, but the resource is now deployed.

Sugerencia

Preste mucha atención a las ubicaciones de las ofertas de la versión preliminar pública de Azure Cognitive Services, ya que el código YAML tendrá que ajustarse según la ubicación.Pay close attention to the locations of public preview Azure Cognitive Service offerings, as the YAML will needed to be adjusted accordingly to match the location.

Comprobación de que un contenedor está en ejecuciónValidate that a container is running

Hay varias maneras de comprobar que el contenedor está en ejecución.There are several ways to validate that the container is running. Busque la dirección IP externa y el puerto expuesto del contenedor en cuestión y abra el explorador web que prefiera.Locate the External IP address and exposed port of the container in question, and open your favorite web browser. Use las distintas direcciones URL de solicitud para validar que el contenedor se está ejecutando.Use the various request URLs below to validate the container is running. Las direcciones URL de solicitud de ejemplo que se enumeran a continuación son http://localhost:5000, pero el contenedor específico puede variar.The example request URLs listed below are http://localhost:5000, but your specific container may vary. Tenga en cuenta que va a confiar en la dirección IP externa y el puerto expuesto del contenedor.Keep in mind that you're to rely on your container's External IP address and exposed port.

URL de la solicitudRequest URL PropósitoPurpose
http://localhost:5000/ El contenedor ofrece una página principal.The container provides a home page.
http://localhost:5000/ready Solicitado con GET, proporciona una comprobación de que el contenedor está listo para aceptar una consulta para el modelo.Requested with GET, this provides a verification that the container is ready to accept a query against the model. Esta solicitud se puede usar con los sondeos de ejecución y preparación de Kubernetes.This request can be used for Kubernetes liveness and readiness probes.
http://localhost:5000/status También se solicita con GET y comprueba si el valor de api-key usado para iniciar el contenedor es válido sin generar una consulta de punto de conexión.Also requested with GET, this verifies if the api-key used to start the container is valid without causing an endpoint query. Esta solicitud se puede usar con los sondeos de ejecución y preparación de Kubernetes.This request can be used for Kubernetes liveness and readiness probes.
http://localhost:5000/swagger El contenedor cuenta con un completo conjunto de documentación sobre los puntos de conexión y una característica de prueba.The container provides a full set of documentation for the endpoints and a Try it out feature. Esta característica le permite especificar la configuración en un formulario HTML basado en web y realizar la consulta sin necesidad de escribir código.With this feature, you can enter your settings into a web-based HTML form and make the query without having to write any code. Una vez que la consulta devuelve resultados, se proporciona un ejemplo del comando CURL para mostrar los encabezados HTTP y el formato de cuerpo requeridos.After the query returns, an example CURL command is provided to demonstrate the HTTP headers and body format that's required.

Página principal del contenedor

Pasos siguientesNext steps

Vamos a seguir trabajando con los contenedores de Azure Cognitive Services.Let's continue working with Azure Cognitive Services containers.