equinix_fabric_stream_subscription (Ressource)
La ressource compatible avec l'API Fabric V4 permet de créer et de gérer des abonnements Equinix Fabric Stream.
Documentation complémentaire :
- Pour commencer : https://docs.equinix.com/observability/streaming-data/integratewithsink/
- API : https://docs.equinix.com/api-catalog/fabricv4/#tag/Stream-Subscriptions
Exemple d'utilisation
resource "equinix_fabric_stream_subscription" "SPLUNK" {
type = "STREAM_SUBSCRIPTION"
name = "<name>"
description = "<description>"
stream_id = "<stream_id>"
enabled = true
event_selector = {
include = ["equinix.fabric.connection.*"]
}
metric_selector = {
include = ["equinix.fabric.connection.*"]
}
sink = {
type = "SPLUNK_HEC"
uri = "<splunk_uri>"
settings = {
event_index = "<splunk_event_index>"
metric_index = "<splunk_metric_index>"
source = "<splunk_source>"
}
credential = {
type = "ACCESS_TOKEN"
access_token = "<splunk_access_token>"
}
}
}
resource "equinix_fabric_stream_subscription" "SLACK" {
type = "STREAM_SUBSCRIPTION"
name = "<name>"
description = "<description>"
stream_id = "<stream_id>"
enabled = true
sink = {
type = "SLACK"
uri = "<slack_uri>"
}
}
resource "equinix_fabric_stream_subscription" "PAGER_DUTY" {
type = "STREAM_SUBSCRIPTION"
name = "<name>"
description = "<description>"
stream_id = "<stream_id>"
enabled = true
sink = {
type = "PAGERDUTY"
host = "<pager_duty_host"
settings = {
change_uri = "<pager_duty_change_uri>"
alert_uri = "<pager_duty_alert_uri>"
}
credential = {
type = "INTEGRATION_KEY"
integration_key = "<pager_duty_integration_key>"
}
}
}
resource "equinix_fabric_stream_subscription" "DATADOG" {
type = "STREAM_SUBSCRIPTION"
name = "<name>"
description = "<description>"
stream_id = "<stream_id>"
enabled = true
sink = {
type = "DATADOG"
host = "<datadog_host>"
settings = {
source = "Equinix"
application_key = "<datadog_application_key>"
event_uri = "<datadog_event_uri>"
metric_uri = "<datadog_metric_uri>"
}
credential = {
type = "API_KEY"
api_key = "<datadog_api_key>"
}
}
}
resource "equinix_fabric_stream_subscription" "MSTEAMS" {
type = "STREAM_SUBSCRIPTION"
name = "<name>"
description = "<description>"
stream_id = "<stream_id>"
enabled = true
sink = {
type = "TEAMS"
uri = "<msteams_uri>"
}
}
resource "equinix_fabric_stream_subscription" "servicenow" {
type = "STREAM_SUBSCRIPTION"
name = "<name>"
description = "<description>"
stream_id = "<stream_id>"
enabled = true
sink = {
type = "SERVICENOW"
host = "<servicenow_host>"
settings = {
source = "Equinix"
}
credential = {
type = "USERNAME_PASSWORD"
username = "<servicenow_username>"
password = "<servicenow_password>"
}
}
}
resource "equinix_fabric_stream_subscription" "webhook" {
type = "STREAM_SUBSCRIPTION"
name = "<name>"
description = "<description>"
stream_id = "<stream_id>"
enabled = true
sink = {
type = "WEBHOOK"
settings = {
format = "<webhook_format>"
event_uri = "<webhook_event_uri>"
metric_uri = "<webhook_metric_uri>"
}
}
}
resource "equinix_fabric_stream_subscription" "grafana" {
type = "STREAM_SUBSCRIPTION"
name = "<name>"
description = "<description>"
stream_id = "<stream_id>"
enabled = true
sink = {
type = "WEBHOOK"
settings = {
format = "OPENTELEMETRY"
event_uri = "<grafana_event_uri>"
metric_uri = "<grafana_metric_uri>"
}
}
}
Schéma
Exigée
description(Chaîne) Description de l'abonnement au flux fournie par le clientenabled(booléen) Statut de l'abonnement au flux activéname(Chaîne) Nom de l'abonnement au flux fourni par le clientsink(Attributs) Détails de l'abonné au flux Equinix (voir ci-dessous pour le schéma imbriqué)stream_id(Chaîne) L'uuid du flux qui est la cible de l'abonnement au flux.type(String) Type de la demande d'abonnement au flux de données
En option
event_selector(Attributs) Listes d'événements à inclure/exclure dans l'abonnement au flux (voir ci-dessous pour le schéma imbriqué)metric_selector(Attributs) Listes de mesures à inclure/exclure dans l'abonnement au flux (voir ci-dessous pour le schéma imbriqué)timeouts(Attributs) (voir ci-dessous pour le schéma imbriqué)
En lecture seule
change_log(Attributs) Détails de la dernière modification apportée à la ressource de flux (voir ci-dessous pour le schéma imbriqué)href(Chaîne) URI attribué par Equinix à la ressource d'abonnement au flux.id(Chaîne) L'identifiant unique de la ressourcestate(Chaîne) Valeur représentant l'état de l'approvisionnement de la ressource de flux.uuid(Chaîne) Identifiant unique attribué par Equinix à la ressource d'abonnement au flux.
Schéma imbriqué pour sink
Obligatoire :
type(Chaîne) Type d'abonné
En option :
batch_enabled(booléen) Commutateur booléen permettant la livraison de données par lotsbatch_size_max(Nombre) Taille maximale de la livraison par lots si elle est activéebatch_wait_time_max(Nombre) Temps d'attente maximum pour la livraison par lots si elle est activéecredential(Attributs) Détails d'accès pour le type de puits spécifié (voir ci-dessous pour le schéma imbriqué)host(Chaîne) Nom d'hôte connu de certains produits d'abonnement à des flux de données. Ne pas confondre avec un URI variablesettings(Attributs) Paramètres du puits d'abonnement au flux (voir ci-dessous pour le schéma imbriqué)uri(Chaîne) Destination du point d'extrémité http accessible au public pour le flux de données
Schéma imbriqué pour sink.credential
Obligatoire :
type(Chaîne) Type de justificatif transmis
En option :
access_token(Chaîne) Transmis en tant que valeur d'en-tête d'autorisationapi_key(Chaîne) Transmis en tant que valeur d'en-tête d'autorisationintegration_key(Chaîne) Transmis en tant que valeur d'en-tête d'autorisationpassword(Chaîne) Transmis en tant que valeur d'en-tête d'autorisationusername(Chaîne) Transmis en tant que valeur d'en-tête d'autorisation
Schéma imbriqué pour sink.settings
En option :
application_key(Chaîne)event_index(Chaîne)event_uri(Chaîne)format(Chaîne)metric_index(Chaîne)metric_uri(Chaîne)source(Chaîne)
Schéma imbriqué pour event_selector
Obligatoire :
include(Liste de chaînes) Liste d'événements à inclure
En option :
except(Liste de chaînes) Liste d'événements à exclure
Schéma imbriqué pour metric_selector
Obligatoire :
include(Liste de chaînes) Liste de mesures à inclure
En option :
except(List of String) Liste des métriques à exclure
Schéma imbriqué pour timeouts
En option :
create(Chaîne) Une chaîne qui peut être [analysée comme une durée composée de nombres et de suffixes d'unité, tels que "30s" ou "2h45m". Les unités de temps valides sont "s" (secondes), "m" (minutes), "h" (heures).delete(Chaîne) Une chaîne qui peut être [analysée comme une durée composée de nombres et de suffixes d'unités, tels que "30s" ou "2h45m". Les unités de temps valides sont "s" (secondes), "m" (minutes), "h" (heures). La définition d'un délai pour une opération de suppression n'est applicable que si les modifications sont enregistrées dans l'état avant l'opération de destruction.read(Chaîne) Une chaîne qui peut être [analysée comme une durée composée de nombres et de suffixes d'unité, tels que "30s" ou "2h45m". Les unités de temps valides sont "s" (secondes), "m" (minutes), "h" (heures). Les opérations de lecture se produisent lors de toute opération de rafraîchissement ou de planification lorsque le rafraîchissement est activé.update(Chaîne) Une chaîne qui peut être [analysée comme une durée composée de nombres et de suffixes d'unité, tels que "30s" ou "2h45m". Les unités de temps valides sont "s" (secondes), "m" (minutes), "h" (heures).
Schéma imbriqué pour change_log
En lecture seule :
created_by(Chaîne) Nom d'utilisateur du créateur de la ressource de fluxcreated_by_email(Chaîne) Courriel du créateur de la ressource de fluxcreated_by_full_name(Chaîne) Nom légal du créateur de la ressource de fluxcreated_date_time(Chaîne) Heure de création de la ressource de fluxdeleted_by(Chaîne) Nom d'utilisateur de l'auteur de la suppression de la ressource de fluxdeleted_by_email(Chaîne) Courriel de l'auteur de la suppression de la ressource de fluxdeleted_by_full_name(Chaîne) Nom légal de l'auteur de la suppression de la ressource de fluxdeleted_date_time(Chaîne) Heure de suppression de la ressource de fluxupdated_by(Chaîne) Nom d'utilisateur du dernier responsable de la mise à jour de la ressource de flux.updated_by_email(Chaîne) Courriel du dernier responsable de la mise à jour de la ressource de fluxupdated_by_full_name(Chaîne) Nom légal du dernier responsable de la mise à jour de la ressource de flux.updated_date_time(Chaîne) Dernière heure de mise à jour de la ressource de flux