private static string GetAutomaticTriggerReason(FunctionStartedMessage message)
        {
            string blobPath = GetArgumentValue <BlobTriggerParameterDescriptor>(message);

            if (blobPath != null)
            {
                return("New blob detected: " + blobPath);
            }

            QueueTriggerParameterDescriptor queueTrigger = GetParameterDescriptor <QueueTriggerParameterDescriptor>(message);

            if (queueTrigger != null)
            {
                return("New queue message detected on '" + queueTrigger.QueueName + "'.");
            }

            ServiceBusTriggerParameterDescriptor serviceBusTrigger = GetParameterDescriptor <ServiceBusTriggerParameterDescriptor>(message);

            if (serviceBusTrigger != null)
            {
                return("New service bus message detected on '" + GetPath(serviceBusTrigger) + "'.");
            }

            return(null);
        }
        private static string GetPath(ServiceBusTriggerParameterDescriptor serviceBusTrigger)
        {
            if (serviceBusTrigger.QueueName != null)
            {
                return(serviceBusTrigger.QueueName);
            }

            return(serviceBusTrigger.TopicName + "/Subscriptions/" + serviceBusTrigger.SubscriptionName);
        }
Ejemplo n.º 3
0
        internal static ParameterSnapshot CreateParameterSnapshot(ParameterDescriptor parameter)
        {
            // If display hints have already been provided by the descriptor
            // use them. Otherwise, we construct a new snapshot below. Note that
            // for extensibility (e.g. custom binding extensions), this is the
            // mechanism that must be used, since the Dashboard doesn't share type info
            // with custom extensions, we won't have access to the actual type as we do below.
            if (parameter.DisplayHints != null)
            {
                return(new DisplayHintsParameterSnapshot(parameter.DisplayHints));
            }

            switch (parameter.Type)
            {
            case "Blob":
                BlobParameterDescriptor blobParameter = (BlobParameterDescriptor)parameter;
                return(new BlobParameterSnapshot
                {
                    ContainerName = blobParameter.ContainerName,
                    BlobName = blobParameter.BlobName,
                    IsInput = blobParameter.Access == FileAccess.Read
                });

            case "BlobTrigger":
                BlobTriggerParameterDescriptor blobTriggerParameter = (BlobTriggerParameterDescriptor)parameter;
                return(new BlobParameterSnapshot
                {
                    ContainerName = blobTriggerParameter.ContainerName,
                    BlobName = blobTriggerParameter.BlobName,
                    IsInput = true
                });

            case "Queue":
                QueueParameterDescriptor queueParameter = (QueueParameterDescriptor)parameter;
                return(new QueueParameterSnapshot
                {
                    QueueName = queueParameter.QueueName,
                    IsInput = queueParameter.Access == FileAccess.Read
                });

            case "QueueTrigger":
                QueueTriggerParameterDescriptor queueTriggerParameter = (QueueTriggerParameterDescriptor)parameter;
                return(new QueueParameterSnapshot
                {
                    QueueName = queueTriggerParameter.QueueName,
                    IsInput = true
                });

            case "Table":
                TableParameterDescriptor tableParameter = (TableParameterDescriptor)parameter;
                return(new TableParameterSnapshot
                {
                    TableName = tableParameter.TableName
                });

            case "TableEntity":
                TableEntityParameterDescriptor tableEntityParameter = (TableEntityParameterDescriptor)parameter;
                return(new TableEntityParameterSnapshot
                {
                    TableName = tableEntityParameter.TableName,
                    PartitionKey = tableEntityParameter.PartitionKey,
                    RowKey = tableEntityParameter.RowKey
                });

            case "ServiceBus":
                // TEMP: This is here for back compat
                // Latest versions of the SDK send a display info
                // via ParameterDescriptor.DisplayHints
                ServiceBusParameterDescriptor serviceBusParameter = (ServiceBusParameterDescriptor)parameter;
                return(new ServiceBusParameterSnapshot
                {
                    EntityPath = serviceBusParameter.QueueOrTopicName,
                    IsInput = false
                });

            case "ServiceBusTrigger":
                // TEMP: This is here for back compat
                // Latest versions of the SDK send display info
                // via ParameterDescriptor.DisplayHints
                ServiceBusTriggerParameterDescriptor serviceBusTriggerParameter = (ServiceBusTriggerParameterDescriptor)parameter;
                return(new ServiceBusParameterSnapshot
                {
                    EntityPath = serviceBusTriggerParameter.QueueName != null ?
                                 serviceBusTriggerParameter.QueueName :
                                 serviceBusTriggerParameter.TopicName + "/Subscriptions/" + serviceBusTriggerParameter.SubscriptionName,
                    IsInput = true
                });

            case "CallerSupplied":
            case "BindingData":
                return(new InvokeParameterSnapshot());

            default:
                // Don't convert parameters that aren't used for invoke purposes.
                return(null);
            }
        }
Ejemplo n.º 4
0
        internal static ParameterSnapshot CreateParameterSnapshot(ParameterDescriptor parameter)
        {
            switch (parameter.Type)
            {
            case "Blob":
                BlobParameterDescriptor blobParameter = (BlobParameterDescriptor)parameter;
                return(new BlobParameterSnapshot
                {
                    ContainerName = blobParameter.ContainerName,
                    BlobName = blobParameter.BlobName,
                    IsInput = blobParameter.Access == FileAccess.Read
                });

            case "BlobTrigger":
                BlobTriggerParameterDescriptor blobTriggerParameter = (BlobTriggerParameterDescriptor)parameter;
                return(new BlobParameterSnapshot
                {
                    ContainerName = blobTriggerParameter.ContainerName,
                    BlobName = blobTriggerParameter.BlobName,
                    IsInput = true
                });

            case "Queue":
                QueueParameterDescriptor queueParameter = (QueueParameterDescriptor)parameter;
                return(new QueueParameterSnapshot
                {
                    QueueName = queueParameter.QueueName,
                    IsInput = queueParameter.Access == FileAccess.Read
                });

            case "QueueTrigger":
                QueueTriggerParameterDescriptor queueTriggerParameter = (QueueTriggerParameterDescriptor)parameter;
                return(new QueueParameterSnapshot
                {
                    QueueName = queueTriggerParameter.QueueName,
                    IsInput = true
                });

            case "Table":
                TableParameterDescriptor tableParameter = (TableParameterDescriptor)parameter;
                return(new TableParameterSnapshot
                {
                    TableName = tableParameter.TableName
                });

            case "TableEntity":
                TableEntityParameterDescriptor tableEntityParameter = (TableEntityParameterDescriptor)parameter;
                return(new TableEntityParameterSnapshot
                {
                    TableName = tableEntityParameter.TableName,
                    PartitionKey = tableEntityParameter.PartitionKey,
                    RowKey = tableEntityParameter.RowKey
                });

            case "ServiceBus":
                ServiceBusParameterDescriptor serviceBusParameter = (ServiceBusParameterDescriptor)parameter;
                return(new ServiceBusParameterSnapshot
                {
                    EntityPath = serviceBusParameter.QueueOrTopicName,
                    IsInput = false
                });

            case "ServiceBusTrigger":
                ServiceBusTriggerParameterDescriptor serviceBusTriggerParameter = (ServiceBusTriggerParameterDescriptor)parameter;
                return(new ServiceBusParameterSnapshot
                {
                    EntityPath = serviceBusTriggerParameter.QueueName != null ?
                                 serviceBusTriggerParameter.QueueName :
                                 serviceBusTriggerParameter.TopicName + "/Subscriptions/" + serviceBusTriggerParameter.SubscriptionName,
                    IsInput = true
                });

            case "CallerSupplied":
            case "BindingData":
                return(new InvokeParameterSnapshot());

            default:
                // Don't convert parameters that aren't used for invoke purposes.
                return(null);
            }
        }