Medición personalizada para productos de AMI con AWS Marketplace Metering Service - AWS Marketplace

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Medición personalizada para productos de AMI con AWS Marketplace Metering Service

El servicio de medición de AWS Marketplace es una característica de precios y medición que los vendedores pueden utilizar para cobrar directamente su software por categoría de uso. Hay cinco categorías de uso: usuarios, datos, ancho de banda, hosts o unidad. Puede utilizar el servicio de medición con productos basados en Imagen de máquina de Amazon (AMI), contenedores y software como servicio (SaaS). Para obtener más información, consulte la referencia de la API del servicio de medición de AWS Marketplace .

Todo el software en AMI que utiliza el servicio de medición debe cumplir los requisitos siguientes:

  • El software debe lanzarse desde AWS Marketplace una Amazon Machine Image (AMI).

  • Si ya tiene un producto AWS Marketplace, debe enviar una AMI nueva y crear uno nuevo para habilitar esta función.

  • Todo el software debe estar aprovisionado con una función AWS Identity and Access Management (IAM). El cliente final deberá añadir un rol de IAM a la instancia de Amazon Elastic Compute Cloud (Amazon EC2) que el usuario esté aprovisionando con el software. El uso de una función de IAM es opcional al implementar el software a través de él. AWS Marketplace Es obligatorio cuando se implementa el software del servicio de medición de AWS Marketplace.

  • Debe ser capaz de determinar el consumo de algún modo.

Los productos que utilizan el servicio de medición se deben cobrar a los clientes por una única categoría de uso, pero puede definir hasta 24 dimensiones de una única categoría. En función de la categoría, se puede calcular el precio del software por recursos aprovisionados, recursos concurrentes o consumo de recursos acumulado. El cliente sigue pagando los cargos por hora. Todo el uso se calcula y factura mensualmente mediante el mismo mecanismo que el software existente AWS Marketplace .

El servicio de medición de AWS Marketplace posibilita varios escenarios nuevos. Por ejemplo, si el software monitoriza hosts, puede cobrar por host monitorizado. Puede tener distintos precios en función del tamaño del host y cobrar por el número de hosts simultáneos que se monitorizan cada hora. Del mismo modo, si el software permite que varios usuarios de una organización inicien sesión, puede cobrar por el número de usuarios. Cada hora se carga al cliente el número total de usuarios aprovisionados.

Llamada al a servicio de medición de AWS Marketplace

Su software debe llamar al servicio de medición cada hora y registrar el valor de consumo de dicha hora.

Cuando el software se inicie, debería registrar el minute-of-the-hour momento en el que se inició. Esto se denomina el minuto de comienzo. Cada vez que se cumpla una hora en relación con el minuto de comienzo, el software debe determinar el valor de consumo para dicha hora y llamar al servicio de medición. Para obtener información sobre cómo obtener este valor, consulte Modificación del software para utilizar el servicio de medición.

Para activarse cada hora según el minuto de comienzo, su software debe aplicar uno de los métodos siguientes:

  • Un subproceso dentro de su software.

  • Un proceso daemon que se inicie con la instancia o el software.

  • Un trabajo cron configurado durante el arranque de la aplicación.

    nota

    Su software debe llamar al servicio de medición de AWS Marketplace con la función de IAM configurada en la instancia del cliente y especificar la dimensión de consumo y la cantidad.

Su software puede usar el AWS SDK para llamar al AWS Marketplace Metering Service, de forma similar a la implementación de ejemplo siguiente:

  1. Use el perfil de instancia para crear un cliente de servicio. Esto requiere el rol configurado para la instancia EC2. El SDK actualiza de forma automática las credenciales del rol.

  2. Cada hora lea la configuración y el estado del software para determinar los valores de consumo para esa hora. Esto podría incluir la recopilación de un value-per-dimension.

  3. Llame al método meterUsage del cliente SDK con los siguientes parámetros (llamada adicional para cada dimensión con uso):

    • timestamp: marca de tiempo de la hora que se registra (en UTC).

    • productCode: código de producto asignado al software.

    • dimension: dimensión (o dimensiones) asignada al software.

    • quantity: valor de consumo de la hora.

    • allocations: (Opcional) puede proporcionar asignaciones para el uso entre las propiedades de las que realiza un seguimiento. Estas asignaciones deben sumarse al consumo total del registro. Para el comprador, se muestran como posibles etiquetas de asignación de costes en sus herramientas de facturación (como la AWS Billing and Cost Management consola). El comprador debe activar las etiquetas en su cuenta para poder hacer un seguimiento de sus costes con estas etiquetas.

Además el software debe llamar a un punto de conexión del servicio de medición de AWS Marketplace de la región. El producto debe tener una configuración de punto de conexión regional correcta, para que us-east-1 envíe los registros al punto de conexión us-east-1 y us-west-2 envíe los registros al punto de conexión us-west-2. Las llamadas intrarregionales dan a los compradores una experiencia más estable y evitan que se produzcan situaciones en las que la disponibilidad de una región no relacionada afecte a un software que se ejecuta en otra región.

Al enviar los registros de mediciones al servicio, debe conectarse al servicio de medición de AWS Marketplace de su región. Utilice el método de ayudante getCurrentRegion() para establecer la región en la que se está ejecutando la instancia EC2 y pase esta información de región al constructor MeteringServiceClient. Si no especificas ninguna Región de AWS en el constructor del SDK, se utilizará us-east-1 la región predeterminada. Si la aplicación intenta realizar las llamadas al servicio entre regiones, estas se rechazan. Para obtener más información, consulte Determinar la región actual de una aplicación y getCurrentRegion().

Administración de errores

El producto debe enviar los registros de mediciones al servicio, un punto de enlace de Internet público, para que se pueda capturar y facturar el uso. Como es posible que un cliente pueda modificar los ajustes de red de forma que impida que los registros de mediciones se entreguen, el producto debe tener en cuenta esta posibilidad y elegir un modo de error.

nota

Algunos errores de medición pueden ser problemas transitorios al conectarse al. AWS Marketplace Metering Service AWS Marketplace recomienda encarecidamente implementar los reintentos durante un máximo de 30 minutos, con una reducción exponencial, para evitar interrupciones de corta duración o problemas de red.

Normalmente, se puede producir un error de apertura (se proporciona un mensaje de advertencia, pero se mantiene la funcionalidad completa) o un error de cierre (se deshabilita toda la funcionalidad de la aplicación hasta que se restablece una conexión). Puede optar por un error de apertura, de cierre o algo específico de su aplicación. Le recomendamos encarecidamente que se abstenga de aplicar un error de cierre después de menos de dos horas de errores de medición.

Como ejemplo de error parcialmente abierto, puede seguir permitiendo el acceso al software, pero no permitir que el comprador modifique la configuración del software. O bien un comprador puede seguir teniendo acceso al software, pero no podrá crear usuarios adicionales. Su software es responsable de definir y aplicar este modo de error. El modo de error de su software debe estar incluido cuando envía la AMI y no se puede cambiar más adelante.

Limitaciones

Tenga en cuenta estas limitaciones a la hora de diseñar y publicar software habilitado para el servicio de medición:

  • Requisitos de rol de IAM y puerta de enlace de Internet para los clientes: los clientes deben tener una puerta de enlace de Internet y deben lanzar el software con un rol de IAM y unos permisos específicos. Para obtener más información, consulte AWS Marketplace permisos de API de medición y asignación de derechos. El software no puede conectarse al servicio de medición si no se cumplen estas dos condiciones.

  • Imposibilidad de añadir una nueva categoría o cambiar la categoría de uso a un producto de servicio de medición: cuando los clientes se suscriben a un producto de software, aceptan una serie de términos y condiciones. El cambio de categorías de uso de los productos con el servicio de medición requiere un producto nuevo y una suscripción nueva.

  • Imposibilidad de cambiar dimensiones en un producto de servicio de medición existente: cuando los clientes se suscriben a un producto de software, aceptan una serie de términos y condiciones. El cambio de las dimensiones de los productos con el servicio de medición requiere un producto nuevo y una suscripción nueva. Puede añadir nuevas dimensiones a los productos existentes, hasta un límite de 24.

  • Inexistencia de prueba gratuita y suscripciones anuales: los productos que hacen uso del servicio de medición no admiten pruebas gratuitas ni suscripciones anuales en el momento del lanzamiento.

  • Consideraciones sobre la implementación en varias instancias o basada en clúster: algunos productos de software se implementan formando parte de una implementación de varias instancias. Al diseñar software, tenga en cuenta cómo y dónde se mide el consumo y dónde se emiten los registros de mediciones.

Ejemplo de código

Se ofrecen los siguientes ejemplos de código para ayudarle a integrar el producto de AMI con las API de AWS Marketplace necesarias para la publicación y el mantenimiento del producto.

MeterUsage con etiquetado de asignación de uso (opcional)

El siguiente ejemplo de código es relevante para productos de AMI con modelos de precios de consumo. El ejemplo de Python envía un registro de medición con las etiquetas de asignación de uso adecuadas AWS Marketplace para cobrar pay-as-you-go las tarifas a sus clientes.

# NOTE: Your application will need to aggregate usage for the # customer for the hour and set the quantity as seen below. # AWS Marketplace can only accept records for up to an hour in the past. # # productCode is supplied after the AWS Marketplace Ops team has # published the product to limited # Import AWS Python SDK import boto3 import time usageRecord = [ { "AllocatedUsageQuantity": 2, "Tags": [ { "Key": "BusinessUnit", "Value": "IT" }, { "Key": "AccountId", "Value": "123456789" }, ] }, { "AllocatedUsageQuantity": 1, "Tags": [ { "Key": "BusinessUnit", "Value": "Finance" }, { "Key": "AccountId", "Value": "987654321" }, ] } ] marketplaceClient = boto3.client("meteringmarketplace") response = marketplaceClient.meter_usage( ProductCode="testProduct", Timestamp=int(time.time()), UsageDimension="Dimension1", UsageQuantity=3, DryRun=False, UsageAllocations=usageRecord )

Para obtener más información al respectoMeterUsage, consulte la MeterUsagereferencia de la API del servicio de AWS Marketplace medición.

Ejemplo de respuesta

{ "MeteringRecordId": "string" }