From 3e46c10ea8c0ad69ae841ef884dd3acb7d08c352 Mon Sep 17 00:00:00 2001 From: Nathan Turinski Date: Fri, 8 Sep 2023 14:05:14 -0700 Subject: [PATCH] Update backup templates --- .../bindings/bindings.json | 187 +++++- .../resources/Resources.cs-CZ.json | 53 +- .../resources/Resources.de-DE.json | 106 +++- .../resources/Resources.es-ES.json | 106 +++- .../resources/Resources.fr-FR.json | 106 +++- .../resources/Resources.hu-HU.json | 106 +++- .../resources/Resources.it-IT.json | 104 +++- .../resources/Resources.ja-JP.json | 106 +++- .../resources/Resources.json | 53 +- .../resources/Resources.ko-KR.json | 106 +++- .../resources/Resources.nl-NL.json | 106 +++- .../resources/Resources.pl-PL.json | 106 +++- .../resources/Resources.pt-BR.json | 106 +++- .../resources/Resources.pt-PT.json | 106 +++- .../resources/Resources.ru-RU.json | 106 +++- .../resources/Resources.sv-SE.json | 106 +++- .../resources/Resources.tr-TR.json | 106 +++- .../resources/Resources.zh-CN.json | 106 +++- .../resources/Resources.zh-TW.json | 106 +++- .../templates/templates.json | 582 ++++++++++++++---- .../version.txt | 2 +- .../dotnet/~4/net6.0-isolated/item.nupkg | Bin 196069 -> 247324 bytes .../dotnet/~4/net6.0-isolated/project.nupkg | Bin 34743 -> 34803 bytes .../dotnet/~4/net6.0/item.nupkg | Bin 279613 -> 331223 bytes .../dotnet/~4/net6.0/project.nupkg | Bin 33938 -> 33992 bytes .../dotnet/~4/net7.0-isolated/item.nupkg | Bin 196069 -> 247324 bytes .../dotnet/~4/net7.0-isolated/project.nupkg | Bin 34743 -> 34803 bytes .../backupTemplates/dotnet/~4/version.txt | 2 +- .../java/~2/bindings/bindings.json | 50 ++ .../java/~2/resources/Resources.json | 42 +- .../java/~2/templates/templates.json | 67 +- resources/backupTemplates/java/~2/version.txt | 2 +- .../java/~3/bindings/bindings.json | 50 ++ .../java/~3/resources/Resources.json | 42 +- .../java/~3/templates/templates.json | 67 +- resources/backupTemplates/java/~3/version.txt | 2 +- .../java/~4/bindings/bindings.json | 50 ++ .../java/~4/resources/Resources.json | 42 +- .../java/~4/templates/templates.json | 67 +- resources/backupTemplates/java/~4/version.txt | 2 +- .../backupTemplates/script/~4/version.txt | 2 +- 41 files changed, 2756 insertions(+), 302 deletions(-) diff --git a/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/bindings/bindings.json b/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/bindings/bindings.json index 1ab8b9499..caf9a84f3 100644 --- a/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/bindings/bindings.json +++ b/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/bindings/bindings.json @@ -1402,7 +1402,7 @@ "documentation": "#### Settings\r\n\r\n- `activity`: (optional) the name of the activity. If not specified uses the Function name. You use the activity name to call a given Function from an orchestration triggered Functions\r\n\r\nNote: this feature is in preview and docs will improve before we GA", "extension": { "id": "Microsoft.Azure.WebJobs.Extensions.DurableTask", - "version": "2.7.1" + "version": "2.10.0" }, "settings": [ { @@ -1436,7 +1436,7 @@ "documentation": "#### Settings\r\n\r\n- `orchestration`: (optional) the name of the orchestration. If not specified uses the Function name. You use the orchestration name to start the given Function from an orchestration client\r\n\r\nNote: this feature is in preview and docs will improve before we GA", "extension": { "id": "Microsoft.Azure.WebJobs.Extensions.DurableTask", - "version": "2.7.1" + "version": "2.10.0" }, "settings": [ { @@ -1470,7 +1470,7 @@ "documentation": "#### Settings\r\n\r\n- `entity`: (optional) the name of the entity. If not specified uses the Function name. You use the entity name to start the given Function from an orchestration client", "extension": { "id": "Microsoft.Azure.WebJobs.Extensions.DurableTask", - "version": "2.7.1" + "version": "2.10.0" }, "settings": [ { @@ -1504,7 +1504,7 @@ "documentation": "", "extension": { "id": "Microsoft.Azure.WebJobs.Extensions.DurableTask", - "version": "2.7.1" + "version": "2.10.0" }, "settings": [ { @@ -1531,7 +1531,7 @@ "documentation": "", "extension": { "id": "Microsoft.Azure.WebJobs.Extensions.DurableTask", - "version": "2.7.1" + "version": "2.10.0" }, "settings": [ { @@ -1603,7 +1603,7 @@ ] }, { - "name": "connectionStringSetting", + "name": "connection", "value": "string", "required": true, "resource": "DocumentDB", @@ -1620,27 +1620,27 @@ "help": "$cosmosDBIn_databaseName_help" }, { - "name": "collectionName", + "name": "containerName", "value": "string", "defaultValue": "", "required": true, - "label": "$cosmosDBIn_collectionName_label", - "help": "$cosmosDBIn_collectionName_help" + "label": "$cosmosDBIn_leaseContainerName_label", + "help": "$cosmosDBIn_containerName_help" }, { - "name": "leaseCollectionName", + "name": "leaseContainerName", "value": "string", "required": true, - "label": "$cosmosDBIn_leaseCollectionName_label", - "help": "$cosmosDBIn_leaseCollectionName_help" + "label": "$cosmosDBIn_leaseContainerName_label", + "help": "$cosmosDBIn_leaseContainerName_help" }, { - "name": "createLeaseCollectionIfNotExists", + "name": "createLeaseContainerIfNotExists", "value": "boolean", "defaultValue": true, "required": true, - "label": "$cosmosDBIn_createIfNotExists_label", - "help": "$cosmosDBIn_createIfNotExists_help" + "label": "$cosmosDBIn_createContainerIfNotExists_label", + "help": "$cosmosDBIn_createContainerIfNotExists_help" } ] }, @@ -1886,6 +1886,163 @@ "help": "$signalROut_connectionString_help" } ] + }, + { + "type": "sql", + "displayName": "$sqlIn_displayName", + "direction": "in", + "enabledInTryMode": false, + "documentation": "#### Settings for an Azure SQL input binding\r\n\r\nSee [Input Binding Overview](/~https://github.com/Azure/azure-functions-sql-extension/blob/main/docs/BindingsOverview.md#input-binding) for general information about the Azure SQL Input binding.\r\n\r\nThe settings for a SQL input binding specifies the following properties:\r\n\r\n- `type` : Must be set to *sql*.\r\n- `name` : The name of the variable that represents the query results in function code.\r\n- `direction` : Must be set to *in*.\r\n- `commandText` : The Transact-SQL query command or name of the stored procedure executed by the binding.\r\n- `connectionStringSetting` : The name of an app setting that contains the connection string for the database against which the query or stored procedure is being executed. This value isn't the actual connection string and must instead resolve to an environment variable name. Optional keywords in the connection string value are [available to refine SQL bindings connectivity](https://aka.ms/sqlbindings#sql-connection-string).\r\n- `commandType` : A [CommandType](https://learn.microsoft.com/dotnet/api/system.data.commandtype) value, which is [Text](https://learn.microsoft.com/dotnet/api/system.data.commandtype#fields) for a query and [StoredProcedure](https://learn.microsoft.com/dotnet/api/system.data.commandtype#fields) for a stored procedure.\r\n- `parameters` : *optional*. Zero or more parameter values passed to the command during execution as a single string. Must follow the format `@param1=param1,@param2=param2`. Neither the parameter name nor the parameter value can contain a comma (`,`) or an equals sign (`=`).\r\n\r\n#### SQL input C# code example\r\n\r\nThis C# code example for getting data from Products table. Please refer to our [InputBinding C# Samples](/~https://github.com/Azure/azure-functions-sql-extension/tree/main/samples/samples-csharpscript/InputBindingSamples) for more examples.\r\n\r\n```csharp\r\n[FunctionName(\"GetProducts\")]\r\n public static IActionResult Run(\r\n [HttpTrigger(AuthorizationLevel.Anonymous, \"get\", Route = \"getproducts/{cost}\")]\r\n HttpRequest req,\r\n [Sql(\"select * from Products where Cost = @Cost\",\r\n \"SqlConnectionString\",\r\n parameters: \"@Cost={cost}\")]\r\n IEnumerable products)\r\n {\r\n return (ActionResult)new OkObjectResult(products);\r\n }\r\n```\r\n\r\n#### SQL input JavaScript example\r\n\r\n You can browse here for more [JavaScript Samples](/~https://github.com/Azure/azure-functions-sql-extension/tree/main/samples/samples-js).\r\n\r\n```JavaScript\r\n module.exports = async function (context, req, product) {\r\n return {\r\n status: 200,\r\n body: product\r\n };\r\n}\r\n```", + "extension": { + "id": "Microsoft.Azure.WebJobs.Extensions.Sql", + "version": "2.0.144" + }, + "settings": [ + { + "name": "name", + "value": "string", + "defaultValue": "object", + "required": true, + "label": "$sqlIn_name_label", + "help": "$sqlIn_name_help", + "validators": [ + { + "expression": "^[a-zA-Z][a-zA-Z0-9]{0,127}$", + "errorText": "[variables('parameterName')]" + } + ] + }, + { + "name": "commandText", + "value": "string", + "defaultValue": "SELECT * FROM Products", + "required": true, + "label": "$sqlIn_commandText_label", + "help": "$sqlIn_commandText_help" + }, + { + "name": "commandType", + "value": "enum", + "required": false, + "defaultValue": "Text", + "enum": [ + { + "value": "Text", + "display": "Text" + }, + { + "value": "StoredProcedure", + "display": "StoredProcedure" + } + ], + "label": "$sqlIn_commandType_label", + "help": "$sqlIn_commandType_help" + }, + { + "name": "connectionStringSetting", + "value": "string", + "defaultValue": "SqlConnectionString", + "required": true, + "label": "$sql_connection_label", + "help": "$sql_connection_help", + "placeholder": "[variables('selectConnection')]" + }, + { + "name": "parameters", + "value": "string", + "defaultValue": "", + "required": false, + "label": "$sqlIn_parameters_label", + "help": "$sqlIn_parameters_help" + } + ] + }, + { + "type": "sql", + "displayName": "$sqlOut_displayName", + "direction": "out", + "enabledInTryMode": false, + "documentation": "#### Settings for an Azure SQL output binding\r\n\r\nSee [Output Binding Overview](/~https://github.com/Azure/azure-functions-sql-extension/blob/main/docs/BindingsOverview.md#output-binding) for general information about the Azure SQL output binding.\r\n\r\nThe settings for a SQL output binding specifies the following properties:\r\n\r\n- `type` : Must be set to *sql*.\r\n- `name` : The name of the variable that represents the entity in function code.\r\n- `direction` : Must be set to *out*.\r\n- `commandText` : The name of the table being written to by the binding.\r\n- `connectionStringSetting` : The name of an app setting that contains the connection string for the database to which data is being written. This isn't the actual connection string and must instead resolve to an environment variable. Optional keywords in the connection string value are [available to refine SQL bindings connectivity](https://aka.ms/sqlbindings#sql-connection-string).\r\n\r\n#### SQL output C# code example\r\n\r\nThis C# code example upserts employees to Employees table. Please refer to our [OutputBinding C# Samples](/~https://github.com/Azure/azure-functions-sql-extension/tree/main/samples/samples-csharpscript/OutputBindingSamples) for more examples.\r\n\r\n```csharp\r\npublic static IActionResult Run(\r\n [HttpTrigger(AuthorizationLevel.Anonymous, \"get\", Route = \"addemployees\")]\r\n HttpRequest req, ILogger log,\r\n [Sql(\"dbo.Employees\", \"SqlConnectionString\")]\r\n out Employee[] output)\r\n {\r\n output = new Employee[]\r\n {\r\n new Employee\r\n {\r\n EmployeeId = 1,\r\n FirstName = \"Hello\",\r\n LastName = \"World\",\r\n Company = \"Microsoft\",\r\n Team = \"Functions\"\r\n },\r\n new Employee\r\n {\r\n EmployeeId = 2,\r\n FirstName = \"Hi\",\r\n LastName = \"SQLupdate\",\r\n Company = \"Microsoft\",\r\n Team = \"Functions\"\r\n },\r\n };\r\n\r\n return new CreatedResult($\"/api/addemployees\", output);\r\n }\r\n```\r\n\r\n#### SQL output JavaScript example\r\n\r\nYou can browse here for more [JavaScript Samples](/~https://github.com/Azure/azure-functions-sql-extension/tree/main/samples/samples-js).\r\n\r\n```JavaScript\r\n module.exports = async function (context, req) {\r\n const employees = [\r\n {\r\n EmployeeId : 1,\r\n FirstName : \"Hello\",\r\n LastName : \"World\",\r\n Company : \"Microsoft\",\r\n Team : \"Functions\"\r\n },\r\n {\r\n EmployeeId : 2,\r\n FirstName : \"Hi\",\r\n LastName : \"SQLupdate\",\r\n Company : \"Microsoft\",\r\n Team : \"Functions\"\r\n }\r\n ];\r\n context.bindings.employee = employees;\r\n\r\n return {\r\n status: 201,\r\n body: employees\r\n };\r\n }\r\n```", + "extension": { + "id": "Microsoft.Azure.WebJobs.Extensions.Sql", + "version": "2.0.144" + }, + "settings": [ + { + "name": "name", + "value": "string", + "defaultValue": "object", + "required": true, + "label": "$sqlOut_name_label", + "help": "$sqlOut_name_help", + "validators": [ + { + "expression": "^[a-zA-Z][a-zA-Z0-9]{0,127}$", + "errorText": "[variables('parameterName')]" + } + ] + }, + { + "name": "commandText", + "value": "string", + "defaultValue": "object", + "required": true, + "label": "$sqlOut_commandText_label", + "help": "$sqlOut_commandText_help" + }, + { + "name": "connectionStringSetting", + "value": "string", + "defaultValue": "SqlConnectionString", + "required": true, + "label": "$sql_connection_label", + "help": "$sql_connection_help", + "placeholder": "[variables('selectConnection')]" + } + ] + }, + { + "type": "sqlTrigger", + "displayName": "$sqlTrigger_displayName", + "direction": "trigger", + "enabledInTryMode": true, + "documentation": "#### Settings for an Azure SQL trigger binding\r\n\r\nSee [Trigger Binding Overview](/~https://github.com/Azure/azure-functions-sql-extension/blob/main/docs/BindingsOverview.md#trigger-binding) for general information about the Azure SQL trigger binding.\r\n\r\nThe settings for a SQL trigger binding specifies the following properties:\r\n\r\n- `type` : Must be set to *sqlTrigger*.\r\n- `name` : The name of the parameter that the trigger binds to.\r\n- `direction` : Must be set to *in*.\r\n- `tableName` : The name of the table being monitored by the trigger.\r\n- `connectionStringSetting` : The name of an app setting that contains the connection string for the database containing the table monitored for changes. This isn't the actual connection string and must instead resolve to an environment variable. Optional keywords in the connection string value are [available to refine SQL bindings connectivity](https://aka.ms/sqlbindings#sql-connection-string).\r\n\r\n#### SQL trigger C# code example\r\n\r\nThis C# code example monitors the Employees table. Please refer to our [TriggerBinding C# Samples](/~https://github.com/Azure/azure-functions-sql-extension/tree/main/samples/samples-csharp/TriggerBindingSamples) for more examples.\r\n\r\n```csharp\r\npublic static void Run(\r\n [SqlTrigger(\"[dbo].[Employees]\", \"SqlConnectionString\")]\r\n IReadOnlyList> changes,\r\n ILogger logger)\r\n {\r\n // The output is used to inspect the trigger binding parameter in test methods.\r\n logger.LogInformation(\"SQL Changes: \" + JsonConvert.SerializeObject(changes));\r\n }\r\n```\r\n\r\n#### SQL trigger JavaScript example\r\n\r\nYou can browse here for more [JavaScript Samples](/~https://github.com/Azure/azure-functions-sql-extension/tree/main/samples/samples-js).\r\n\r\n```JavaScript\r\n module.exports = async function (context, changes) {\r\n context.log(`SQL Changes: ${JSON.stringify(changes)}`)\r\n}\r\n```", + "extension": { + "id": "Microsoft.Azure.WebJobs.Extensions.Sql", + "version": "3.0.253-preview" + }, + "settings": [ + { + "name": "name", + "value": "string", + "defaultValue": "changes", + "required": true, + "label": "$sqlTrigger_name_label", + "help": "$sqlTrigger_name_help", + "validators": [ + { + "expression": "^[a-zA-Z][a-zA-Z0-9]{0,127}$", + "errorText": "[variables('parameterName')]" + } + ] + }, + { + "name": "tableName", + "value": "string", + "defaultValue": "object", + "required": true, + "label": "$sqlTrigger_tableName_label", + "help": "$sqlTrigger_tableName_help" + }, + { + "name": "connectionStringSetting", + "value": "string", + "resource": "AppSetting", + "required": true, + "label": "$sql_connectionstringsetting_label", + "help": "[variables('appSettingsHelp')]" + } + ] } ] } \ No newline at end of file diff --git a/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.cs-CZ.json b/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.cs-CZ.json index 3d3726a3f..4daaeaeb4 100644 --- a/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.cs-CZ.json +++ b/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.cs-CZ.json @@ -536,6 +536,7 @@ }, "en": { "eventHubOut_connection_help": "The name of the app setting containing your Event Hub connection string. The connection string must have Send permissions.", + "cosmosDBIn_leaseCollectionName_help": "The name of the collection in which the lease is stored", "eventHubOut_connection_label": "Event Hub connection", "eventHubOut_displayName": "Azure Event Hubs", "eventHubOut_name_help": "The name used to identify this binding in your code", @@ -1004,13 +1005,16 @@ "CosmosDBTriggerCSharp_description": "A C# function that will be run whenever documents change in a document collection.", "CosmosDBTriggerJavascript_description": "A JavaScript function that will be run whenever documents change in a document collection.", "cosmosDBIn_collectionName_help": "Name of the collection to be monitored.", + "cosmosDBIn_containerName_help": "Name of the container to be monitored.", "cosmosDBIn_collectionName_label": "Collection name", + "cosmosDBIn_containerName_label": "Container name", "cosmosDBIn_connection_help": "The name of the App Setting containing the connection string to the service that contains the collection to be monitored.", "cosmosDBIn_connection_label": "Cosmos DB account connection", - "cosmosDBIn_databaseName_help": "Name of the Cosmos DB database that includes the collection to be monitored.", + "cosmosDBIn_databaseName_help": "Name of the Cosmos DB database that includes the container to be monitored.", "cosmosDBIn_databaseName_label": "Database name", - "cosmosDBIn_leaseCollectionName_help": "Name of the collection to store the leases.", + "cosmosDBIn_leaseContainerName_help": "Name of the container to store the leases.", "cosmosDBIn_leaseCollectionName_label": "Collection name for leases", + "cosmosDBIn_leaseContainerName_label": "Container name for leases", "cosmosDBIn_leaseDatabaseName_help": "Name of the database that includes the collection to store the leases.", "cosmosDBIn_leaseDatabaseName_label": "Database name for leases", "cosmosDBIn_name_help": "The name used to identify this binding in your code", @@ -1019,7 +1023,9 @@ "IoTHubServiceBusTopicTriggerCSharp_description": "A C# function that will be run whenever a message is added to the specified Service Bus topic", "temp_category_IoTHub": "IoT Hub", "cosmosDBIn_createIfNotExists_help": "Checks for existence and automatically creates the leases collection.", + "cosmosDBIn_createContainerIfNotExists_help": "Checks for existence and automatically creates the leases container.", "cosmosDBIn_createIfNotExists_label": "Create lease collection if it does not exist", + "cosmosDBIn_createContainerIfNotExists_label": "Create lease container if it does not exist", "EventGridTriggerJavascript_description": "A JavaScript function that will be run whenever an event grid receives a new event", "Identity_help": "The identity that will be used to perform the action.", "Identity_label": "Identity", @@ -1063,6 +1069,8 @@ "DurableFunctionsHttpStart_description": "A function that will trigger whenever it receives an HTTP request to execute an orchestrator function.", "temp_category_durableFunctions": "Durable Functions", "BlobTrigger_name": "Blob trigger", + "blobTrigger_connection_label": "Storage account connection", + "blobTrigger_connection_help": "The name of the app setting containing your storage account connection string", "EventHubTrigger_name": "Event Hub trigger", "HttpTrigger_name": "HTTP trigger", "OutlookMessageWebhookCreator_name": "Outlook message webhook subscription creator", @@ -1131,6 +1139,45 @@ "kafka_consumergroup_help": "Consumer Group", "kafka_consumergroup_label": "Consumer Group", "SqlInputBinding_description": "A function that will be run on an HTTP trigger and returns the results of a provided SQL query.", - "SqlOuputBinding_description": "A function that will be run on an HTTP trigger and takes a list of rows and upserts them into the user table (i.e. If a row doesn't already exist, it is added. If it does, it is updated)." + "SqlOuputBinding_description": "A function that will be run on an HTTP trigger and takes a list of rows and upserts them into the user table (i.e. If a row doesn't already exist, it is added. If it does, it is updated).", + "authenticationEvents_description": "Triggers for Azure AD Authentication event custom extensions. Lets you focus on your business logic.", + "authenticationEvents_trigger_displayName": "Authentication Events Trigger", + "authenticationEvent_trigger_name_label": "Name", + "authenticationEvent_trigger_name_help": "Triggers for Azure AD Authentication event custom extensions. Lets you focus on your business logic. For more information please see /~https://github.com/Azure/microsoft-azure-webJobs-extensions-authentication-events", + "authenticationEvent_trigger_IssuanceStartVer_label": "OnTokenIssuanceStart Version", + "authenticationEvent_trigger_IssuanceStartVer_help": "API Schema Version for OnTokenIssuanceStart Event", + "sqlIn_displayName": "Azure SQL Input Binding", + "sqlIn_name_label": "Name", + "sqlIn_name_help": "The name used to identify this binding in your code.", + "sqlIn_commandText_label": "SQL Command Text", + "sqlIn_commandText_help": "The Transact-SQL query command or name of the stored procedure executed by the binding.", + "sqlIn_commandType_label": "Text or StoredProcedure", + "sqlIn_commandType_help": "The command type used to identify what type of value commandText is, either Text for a T-SQL query or StoredProcedure for a stored procedure.", + "sqlIn_parameters_label": "Parameters", + "sqlIn_parameters_help": "Parameter values passed to the command during execution as a single string. Must follow the format `@param1=param1,@param2=param2`.", + "sql_connection_label": "SQL Connection string setting", + "sql_connection_help": "The name of the app setting containing your Azure SQL binding connection string.", + "sqlOut_displayName": "Azure SQL Output Binding", + "sqlOut_name_label": "Name", + "sqlOut_name_help": "The name of the variable that represents the entity in function code.", + "sqlOut_commandText_label": "Table Name", + "sqlOut_commandText_help": "The name of the table being upserted to by the binding.", + "sqlTrigger_displayName": "Azure SQL Trigger Binding", + "sqlTrigger_name_label": "Name", + "sqlTrigger_name_help": "The name of the parameter that the trigger binds to.", + "sqlTrigger_tableName_label": "Table Name", + "sqlTrigger_tableName_help": "The name of the table being monitored by the trigger.", + "app_filename_label": "Provide a filename for your function", + "app_filename_help": "This is the file where you want to save your function code", + "trigger_functionName_help": "Name of the function you want to create", + "trigger_functionName_label": "Provide a function name", + "app_selected_filename_label": "File Name", + "app_selected_filename_help": "This is the file to which you want to add your function", + "blueprint_filename_label": "Blueprint function file Name", + "blueprint_filename_help": "This is the name of the file where you want to save your blueprint code", + "blueprint_selected_filename_help": "This is the name of the file where you want to add a function to the existing blueprint", + "blueprint_selected_filename_label": "Select a file to save for your blueprint function", + "blueprint_fileName_errorText": "Invalid fileName", + "app_filename_errorText": "Invalid fileName" } } \ No newline at end of file diff --git a/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.de-DE.json b/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.de-DE.json index cbe8173f5..261b3faf6 100644 --- a/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.de-DE.json +++ b/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.de-DE.json @@ -1,6 +1,7 @@ { "lang": { "eventHubOut_connection_help": "Der Name der App-Einstellung, die Ihre Event Hub-Verbindungszeichenfolge enthält. Die Verbindungszeichenfolge muss über Sendeberechtigungen verfügen.", + "cosmosDBIn_leaseCollectionName_help": "Der Name der Sammlung, in der die Lease gespeichert ist.", "eventHubOut_connection_label": "Event Hub-Verbindung", "eventHubOut_displayName": "Azure Event Hubs", "eventHubOut_name_help": "Der Name, der zum Identifizieren dieser Bindung in Ihrem Code verwendet wird", @@ -469,13 +470,16 @@ "CosmosDBTriggerCSharp_description": "Eine C#-Funktion, die immer dann ausgeführt wird, wenn sich Dokumente in einer Dokumentsammlung ändern.", "CosmosDBTriggerJavascript_description": "Eine JavaScript-Funktion, die immer dann ausgeführt wird, wenn sich Dokumente in einer Dokumentsammlung ändern.", "cosmosDBIn_collectionName_help": "Name der zu überwachenden Sammlung.", + "cosmosDBIn_containerName_help": "Name des zu überwachenden Containers.", "cosmosDBIn_collectionName_label": "Sammlungsname", + "cosmosDBIn_containerName_label": "Containername", "cosmosDBIn_connection_help": "Der Name der App-Einstellung mit der Verbindungszeichenfolge für den Dienst, der die zu überwachende Sammlung enthält.", "cosmosDBIn_connection_label": "Cosmos DB-Kontoverbindung", - "cosmosDBIn_databaseName_help": "Name der Cosmos DB-Datenbank, die die zu überwachende Sammlung enthält.", + "cosmosDBIn_databaseName_help": "Name der Cosmos DB-Datenbank, die den zu überwachenden Container enthält.", "cosmosDBIn_databaseName_label": "Datenbankname", - "cosmosDBIn_leaseCollectionName_help": "Name der Sammlung zum Speichern der Leases.", + "cosmosDBIn_leaseContainerName_help": "Name des Containers zum Speichern der Leases.", "cosmosDBIn_leaseCollectionName_label": "Sammlungsname für Leases", + "cosmosDBIn_leaseContainerName_label": "Containername für Leases", "cosmosDBIn_leaseDatabaseName_help": "Name der Datenbank, die die Sammlung zum Speichern der Leases enthält.", "cosmosDBIn_leaseDatabaseName_label": "Datenbankname für Leases", "cosmosDBIn_name_help": "Der Name, der zum Identifizieren dieser Bindung in Ihrem Code verwendet wird", @@ -484,7 +488,9 @@ "IoTHubServiceBusTopicTriggerCSharp_description": "Eine C#-Funktion, die immer dann ausgeführt wird, wenn dem angegebenen Service Bus-Thema eine Nachricht hinzugefügt wird.", "temp_category_IoTHub": "IoT Hub", "cosmosDBIn_createIfNotExists_help": "Überprüft das Vorhandensein und erstellt automatisch die Leasesammlung.", + "cosmosDBIn_createContainerIfNotExists_help": "Überprüft das Vorhandensein und erstellt automatisch den Leasecontainer.", "cosmosDBIn_createIfNotExists_label": "Leasesammlung erstellen, sofern nicht vorhanden", + "cosmosDBIn_createContainerIfNotExists_label": "Leasecontainer erstellen, sofern nicht vorhanden", "EventGridTriggerJavascript_description": "Eine JavaScript-Funktion, die immer dann ausgeführt wird, wenn ein Event Grid ein neues Ereignis empfängt.", "Identity_help": "Die Identität, die zum Ausführen der Aktion verwendet wird.", "Identity_label": "Identität", @@ -528,6 +534,8 @@ "DurableFunctionsHttpStart_description": "Eine Funktion, die ausgelöst wird, sobald sie eine HTTP-Anforderung zur Ausführung einer Orchestrator-Funktion erhält.", "temp_category_durableFunctions": "Durable Functions", "BlobTrigger_name": "Blobtrigger", + "blobTrigger_connection_label": "Speicherkontoverbindung", + "blobTrigger_connection_help": "Der Name der App-Einstellung, die die Verbindungszeichenfolge Ihres Speicherkontos enthält.", "EventHubTrigger_name": "Event Hub-Trigger", "HttpTrigger_name": "HTTP-Trigger", "OutlookMessageWebhookCreator_name": "Abonnementersteller für Outlook-Nachrichtenwebhook", @@ -596,10 +604,50 @@ "kafka_consumergroup_help": "Consumergruppe", "kafka_consumergroup_label": "Consumergruppe", "SqlInputBinding_description": "Eine Funktion, die bei einem HTTP-Auslöser ausgeführt wird und die Ergebnisse einer bereitgestellten SQL-Abfrage zurückgibt.", - "SqlOuputBinding_description": "Eine Funktion, die bei einem HTTP-Auslöser ausgeführt wird und eine Liste von Zeilen akzeptiert und diese in die Benutzertabelle einfügt (d. h. wenn eine Zeile noch nicht vorhanden ist, wird sie hinzugefügt. Wenn sie vorhanden ist, wird sie aktualisiert)." + "SqlOuputBinding_description": "Eine Funktion, die bei einem HTTP-Auslöser ausgeführt wird und eine Liste von Zeilen akzeptiert und diese in die Benutzertabelle einfügt (d. h. wenn eine Zeile noch nicht vorhanden ist, wird sie hinzugefügt. Wenn sie vorhanden ist, wird sie aktualisiert).", + "authenticationEvents_description": "Trigger für benutzerdefinierte Erweiterungen für Azure AD-Authentifizierungsereignisse. Ermöglicht Ihnen den Fokus auf Ihre Geschäftslogik.", + "authenticationEvents_trigger_displayName": "Trigger für Authentifizierungsereignisse", + "authenticationEvent_trigger_name_label": "Name", + "authenticationEvent_trigger_name_help": "Trigger für benutzerdefinierte Erweiterungen für Azure AD-Authentifizierungsereignisse. Ermöglicht Ihnen den Fokus auf Ihre Geschäftslogik. Weitere Informationen finden Sie unter /~https://github.com/Azure/microsoft-azure-webJobs-extensions-authentication-events", + "authenticationEvent_trigger_IssuanceStartVer_label": "OnTokenIssuanceStart-Version", + "authenticationEvent_trigger_IssuanceStartVer_help": "API-Schemaversion für OnTokenIssuanceStart-Ereignis", + "sqlIn_displayName": "Azure SQL-Eingabebindung", + "sqlIn_name_label": "Name", + "sqlIn_name_help": "Der Name, der zum Identifizieren dieser Bindung in Ihrem Code verwendet wird.", + "sqlIn_commandText_label": "SQL-Befehlstext", + "sqlIn_commandText_help": "Der Transact-SQL-Abfragebefehl oder Name der gespeicherten Prozedur, die von der Bindung ausgeführt wird.", + "sqlIn_commandType_label": "Text oder StoredProcedure", + "sqlIn_commandType_help": "Der Befehlstyp, der verwendet wird, um den Typ des Werts commandText zu identifizieren, entweder Text für eine T-SQL-Abfrage oder StoredProcedure für eine gespeicherte Prozedur.", + "sqlIn_parameters_label": "Parameter", + "sqlIn_parameters_help": "Parameterwerte, die während der Ausführung als einzelne Zeichenfolge an den Befehl übergeben werden. Muss das Format \"@param1=param1,@param2=param2\" aufweisen.", + "sql_connection_label": "Einstellung für SQL-Verbindungszeichenfolge", + "sql_connection_help": "Der Name der App-Einstellung, die Ihre Azure SQL-Bindungsverbindungszeichenfolge enthält.", + "sqlOut_displayName": "Azure SQL-Ausgabebindung", + "sqlOut_name_label": "Name", + "sqlOut_name_help": "Der Name der Variable, die die Entität im Funktionscode darstellt.", + "sqlOut_commandText_label": "Tabellenname", + "sqlOut_commandText_help": "Der Name der Tabelle, für die von der Bindung ein Upsert ausgeführt wird.", + "sqlTrigger_displayName": "Azure SQL-Triggerbindung", + "sqlTrigger_name_label": "Name", + "sqlTrigger_name_help": "Der Name des Parameters, an den der Trigger gebunden wird.", + "sqlTrigger_tableName_label": "Tabellenname", + "sqlTrigger_tableName_help": "Der Name der Tabelle, die vom Trigger überwacht wird.", + "app_filename_label": "Geben Sie einen Dateinamen für Ihre Funktion an.", + "app_filename_help": "Dies ist die Datei, in der Sie Ihren Funktionscode speichern möchten.", + "trigger_functionName_help": "Name der Funktion, die Sie erstellen möchten", + "trigger_functionName_label": "Geben Sie einen Funktionsnamen an.", + "app_selected_filename_label": "Dateiname", + "app_selected_filename_help": "Dies ist die Datei, der Sie Ihre Funktion hinzufügen möchten.", + "blueprint_filename_label": "Name der Blaupausenfunktionsdatei", + "blueprint_filename_help": "Dies ist der Name der Datei, in der Sie Ihren Blaupausencode speichern möchten.", + "blueprint_selected_filename_help": "Dies ist der Name der Datei, in der Sie der vorhandenen Blaupause eine Funktion hinzufügen.", + "blueprint_selected_filename_label": "Wählen Sie eine Datei aus, die für Ihre Blaupausenfunktion gespeichert werden soll.", + "blueprint_fileName_errorText": "Ungültiger fileName", + "app_filename_errorText": "Ungültiger fileName" }, "en": { "eventHubOut_connection_help": "The name of the app setting containing your Event Hub connection string. The connection string must have Send permissions.", + "cosmosDBIn_leaseCollectionName_help": "The name of the collection in which the lease is stored", "eventHubOut_connection_label": "Event Hub connection", "eventHubOut_displayName": "Azure Event Hubs", "eventHubOut_name_help": "The name used to identify this binding in your code", @@ -1068,13 +1116,16 @@ "CosmosDBTriggerCSharp_description": "A C# function that will be run whenever documents change in a document collection.", "CosmosDBTriggerJavascript_description": "A JavaScript function that will be run whenever documents change in a document collection.", "cosmosDBIn_collectionName_help": "Name of the collection to be monitored.", + "cosmosDBIn_containerName_help": "Name of the container to be monitored.", "cosmosDBIn_collectionName_label": "Collection name", + "cosmosDBIn_containerName_label": "Container name", "cosmosDBIn_connection_help": "The name of the App Setting containing the connection string to the service that contains the collection to be monitored.", "cosmosDBIn_connection_label": "Cosmos DB account connection", - "cosmosDBIn_databaseName_help": "Name of the Cosmos DB database that includes the collection to be monitored.", + "cosmosDBIn_databaseName_help": "Name of the Cosmos DB database that includes the container to be monitored.", "cosmosDBIn_databaseName_label": "Database name", - "cosmosDBIn_leaseCollectionName_help": "Name of the collection to store the leases.", + "cosmosDBIn_leaseContainerName_help": "Name of the container to store the leases.", "cosmosDBIn_leaseCollectionName_label": "Collection name for leases", + "cosmosDBIn_leaseContainerName_label": "Container name for leases", "cosmosDBIn_leaseDatabaseName_help": "Name of the database that includes the collection to store the leases.", "cosmosDBIn_leaseDatabaseName_label": "Database name for leases", "cosmosDBIn_name_help": "The name used to identify this binding in your code", @@ -1083,7 +1134,9 @@ "IoTHubServiceBusTopicTriggerCSharp_description": "A C# function that will be run whenever a message is added to the specified Service Bus topic", "temp_category_IoTHub": "IoT Hub", "cosmosDBIn_createIfNotExists_help": "Checks for existence and automatically creates the leases collection.", + "cosmosDBIn_createContainerIfNotExists_help": "Checks for existence and automatically creates the leases container.", "cosmosDBIn_createIfNotExists_label": "Create lease collection if it does not exist", + "cosmosDBIn_createContainerIfNotExists_label": "Create lease container if it does not exist", "EventGridTriggerJavascript_description": "A JavaScript function that will be run whenever an event grid receives a new event", "Identity_help": "The identity that will be used to perform the action.", "Identity_label": "Identity", @@ -1127,6 +1180,8 @@ "DurableFunctionsHttpStart_description": "A function that will trigger whenever it receives an HTTP request to execute an orchestrator function.", "temp_category_durableFunctions": "Durable Functions", "BlobTrigger_name": "Blob trigger", + "blobTrigger_connection_label": "Storage account connection", + "blobTrigger_connection_help": "The name of the app setting containing your storage account connection string", "EventHubTrigger_name": "Event Hub trigger", "HttpTrigger_name": "HTTP trigger", "OutlookMessageWebhookCreator_name": "Outlook message webhook subscription creator", @@ -1195,6 +1250,45 @@ "kafka_consumergroup_help": "Consumer Group", "kafka_consumergroup_label": "Consumer Group", "SqlInputBinding_description": "A function that will be run on an HTTP trigger and returns the results of a provided SQL query.", - "SqlOuputBinding_description": "A function that will be run on an HTTP trigger and takes a list of rows and upserts them into the user table (i.e. If a row doesn't already exist, it is added. If it does, it is updated)." + "SqlOuputBinding_description": "A function that will be run on an HTTP trigger and takes a list of rows and upserts them into the user table (i.e. If a row doesn't already exist, it is added. If it does, it is updated).", + "authenticationEvents_description": "Triggers for Azure AD Authentication event custom extensions. Lets you focus on your business logic.", + "authenticationEvents_trigger_displayName": "Authentication Events Trigger", + "authenticationEvent_trigger_name_label": "Name", + "authenticationEvent_trigger_name_help": "Triggers for Azure AD Authentication event custom extensions. Lets you focus on your business logic. For more information please see /~https://github.com/Azure/microsoft-azure-webJobs-extensions-authentication-events", + "authenticationEvent_trigger_IssuanceStartVer_label": "OnTokenIssuanceStart Version", + "authenticationEvent_trigger_IssuanceStartVer_help": "API Schema Version for OnTokenIssuanceStart Event", + "sqlIn_displayName": "Azure SQL Input Binding", + "sqlIn_name_label": "Name", + "sqlIn_name_help": "The name used to identify this binding in your code.", + "sqlIn_commandText_label": "SQL Command Text", + "sqlIn_commandText_help": "The Transact-SQL query command or name of the stored procedure executed by the binding.", + "sqlIn_commandType_label": "Text or StoredProcedure", + "sqlIn_commandType_help": "The command type used to identify what type of value commandText is, either Text for a T-SQL query or StoredProcedure for a stored procedure.", + "sqlIn_parameters_label": "Parameters", + "sqlIn_parameters_help": "Parameter values passed to the command during execution as a single string. Must follow the format `@param1=param1,@param2=param2`.", + "sql_connection_label": "SQL Connection string setting", + "sql_connection_help": "The name of the app setting containing your Azure SQL binding connection string.", + "sqlOut_displayName": "Azure SQL Output Binding", + "sqlOut_name_label": "Name", + "sqlOut_name_help": "The name of the variable that represents the entity in function code.", + "sqlOut_commandText_label": "Table Name", + "sqlOut_commandText_help": "The name of the table being upserted to by the binding.", + "sqlTrigger_displayName": "Azure SQL Trigger Binding", + "sqlTrigger_name_label": "Name", + "sqlTrigger_name_help": "The name of the parameter that the trigger binds to.", + "sqlTrigger_tableName_label": "Table Name", + "sqlTrigger_tableName_help": "The name of the table being monitored by the trigger.", + "app_filename_label": "Provide a filename for your function", + "app_filename_help": "This is the file where you want to save your function code", + "trigger_functionName_help": "Name of the function you want to create", + "trigger_functionName_label": "Provide a function name", + "app_selected_filename_label": "File Name", + "app_selected_filename_help": "This is the file to which you want to add your function", + "blueprint_filename_label": "Blueprint function file Name", + "blueprint_filename_help": "This is the name of the file where you want to save your blueprint code", + "blueprint_selected_filename_help": "This is the name of the file where you want to add a function to the existing blueprint", + "blueprint_selected_filename_label": "Select a file to save for your blueprint function", + "blueprint_fileName_errorText": "Invalid fileName", + "app_filename_errorText": "Invalid fileName" } } \ No newline at end of file diff --git a/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.es-ES.json b/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.es-ES.json index 31a73196d..5c11791ba 100644 --- a/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.es-ES.json +++ b/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.es-ES.json @@ -1,6 +1,7 @@ { "lang": { "eventHubOut_connection_help": "El nombre de la configuración de la aplicación que contiene la cadena de conexión del Centro de eventos. La cadena de conexión debe tener permisos de envío.", + "cosmosDBIn_leaseCollectionName_help": "Nombre de la colección en la que se almacena la concesión.", "eventHubOut_connection_label": "Conexión del Centro de eventos", "eventHubOut_displayName": "Azure Event Hubs", "eventHubOut_name_help": "El nombre que se usa para identificar este enlace en el código", @@ -469,13 +470,16 @@ "CosmosDBTriggerCSharp_description": "Una función C# que se ejecutará cada vez que se modifiquen los documentos de una colección.", "CosmosDBTriggerJavascript_description": "Una función JavaScript que se ejecutará cada vez que se modifiquen los documentos de una colección.", "cosmosDBIn_collectionName_help": "Nombre de la colección que se va a supervisar.", + "cosmosDBIn_containerName_help": "Nombre del contenedor que se va a supervisar.", "cosmosDBIn_collectionName_label": "Nombre de la colección", + "cosmosDBIn_containerName_label": "Nombre de contenedor", "cosmosDBIn_connection_help": "Nombre de la configuración de aplicación que contiene la cadena de conexión al servicio que incluye la colección que se va a supervisar.", "cosmosDBIn_connection_label": "Conexión de cuenta de Cosmos DB", - "cosmosDBIn_databaseName_help": "Nombre de la base de datos de Cosmos DB que incluye la colección que se va a supervisar.", + "cosmosDBIn_databaseName_help": "Nombre de la base de datos de Cosmos DB que incluye el contenedor que se va a supervisar.", "cosmosDBIn_databaseName_label": "Nombre de la base de datos", - "cosmosDBIn_leaseCollectionName_help": "Nombre de la colección para almacenar las concesiones.", + "cosmosDBIn_leaseContainerName_help": "Nombre del contenedor para almacenar las concesiones.", "cosmosDBIn_leaseCollectionName_label": "Nombre de la colección de concesiones", + "cosmosDBIn_leaseContainerName_label": "Nombre de contenedor para concesiones", "cosmosDBIn_leaseDatabaseName_help": "Nombre de la base de datos que incluye la colección para almacenar las concesiones.", "cosmosDBIn_leaseDatabaseName_label": "Nombre de la base de datos para las concesiones", "cosmosDBIn_name_help": "El nombre que se usa para identificar este enlace en el código", @@ -484,7 +488,9 @@ "IoTHubServiceBusTopicTriggerCSharp_description": "Una función C# que se ejecutará cada vez que se agregue un mensaje al tema de Service Bus especificado.", "temp_category_IoTHub": "Centro de IoT", "cosmosDBIn_createIfNotExists_help": "Comprueba si existe la colección de concesiones y la crea automáticamente.", + "cosmosDBIn_createContainerIfNotExists_help": "Comprueba la existencia y crea automáticamente el contenedor de concesiones.", "cosmosDBIn_createIfNotExists_label": "Crear colección de concesiones si no existe", + "cosmosDBIn_createContainerIfNotExists_label": "Crear contenedor de concesión si no existe", "EventGridTriggerJavascript_description": "Una función JavaScript que se ejecutará cada vez que una cuadrícula de eventos reciba un evento nuevo.", "Identity_help": "Identidad que se usará para realizar la acción.", "Identity_label": "Identidad", @@ -528,6 +534,8 @@ "DurableFunctionsHttpStart_description": "Función que se desencadenará cada vez que reciba una solicitud HTTP para ejecutar una función del orquestador.", "temp_category_durableFunctions": "Durable Functions", "BlobTrigger_name": "Desencadenador de blob", + "blobTrigger_connection_label": "Conexión de cuenta de Storage", + "blobTrigger_connection_help": "El nombre de la configuración de aplicación que contiene la cadena de conexión de la cuenta de almacenamiento", "EventHubTrigger_name": "Desencadenador de centro de eventos", "HttpTrigger_name": "Desencadenador HTTP", "OutlookMessageWebhookCreator_name": "Creador de suscripción de webhook de mensaje de Outlook", @@ -596,10 +604,50 @@ "kafka_consumergroup_help": "Grupo de consumidores", "kafka_consumergroup_label": "Grupo de consumidores", "SqlInputBinding_description": "Una función que se ejecutará en un desencadenador HTTP y devuelve los resultados de una consulta SQL proporcionada.", - "SqlOuputBinding_description": "Una función que se ejecutará en un desencadenador HTTP y toma una lista de filas y las agrega a la tabla de usuario (es decir, si aún no existe una fila, se agregará. Si es así, se actualizará)." + "SqlOuputBinding_description": "Una función que se ejecutará en un desencadenador HTTP y toma una lista de filas y las agrega a la tabla de usuario (es decir, si aún no existe una fila, se agregará. Si es así, se actualizará).", + "authenticationEvents_description": "Desencadenadores para extensiones personalizadas de eventos de autenticación de Azure AD. Permiten centrarse en la lógica de negocios.", + "authenticationEvents_trigger_displayName": "Desencadenador de eventos de autenticación", + "authenticationEvent_trigger_name_label": "Nombre", + "authenticationEvent_trigger_name_help": "Desencadenadores para extensiones personalizadas de eventos de autenticación de Azure AD. Permiten centrarse en la lógica de negocios. Para obtener más información, consulte /~https://github.com/Azure/microsoft-azure-webJobs-extensions-authentication-events", + "authenticationEvent_trigger_IssuanceStartVer_label": "Versión de OnTokenIssuanceStart", + "authenticationEvent_trigger_IssuanceStartVer_help": "Versión del esquema de API para el evento OnTokenIssuanceStart", + "sqlIn_displayName": "Enlace de entrada de Azure SQL", + "sqlIn_name_label": "Nombre", + "sqlIn_name_help": "Nombre que se usa para identificar este enlace en el código.", + "sqlIn_commandText_label": "Texto de comando SQL", + "sqlIn_commandText_help": "Nombre o comando de consulta de Transact-SQL del procedimiento almacenado ejecutado por el enlace.", + "sqlIn_commandType_label": "Texto o StoredProcedure", + "sqlIn_commandType_help": "Tipo de comando usado para identificar el tipo de valor de commandText, ya sea Text para una consulta T-SQL o StoredProcedure para un procedimiento almacenado.", + "sqlIn_parameters_label": "Parámetros", + "sqlIn_parameters_help": "Valores de parámetro pasados al comando durante la ejecución como una sola cadena. Debe seguir el formato \"@param1=param1,@param2=param2\".", + "sql_connection_label": "Configuración de la cadena de conexión de SQL", + "sql_connection_help": "Nombre de la configuración de aplicación que contiene la cadena de conexión del enlace de Azure SQL.", + "sqlOut_displayName": "Enlace de salida de Azure SQL", + "sqlOut_name_label": "Nombre", + "sqlOut_name_help": "Nombre de la variable que representa la entidad en el código de función.", + "sqlOut_commandText_label": "Nombre de tabla", + "sqlOut_commandText_help": "Nombre de la tabla que es modificada por el enlace.", + "sqlTrigger_displayName": "Enlace de desencadenador de Azure SQL", + "sqlTrigger_name_label": "Nombre", + "sqlTrigger_name_help": "Nombre del parámetro al que se enlaza el desencadenador.", + "sqlTrigger_tableName_label": "Nombre de tabla", + "sqlTrigger_tableName_help": "Nombre de la tabla que supervisa el desencadenador.", + "app_filename_label": "Proporcione un nombre de archivo para la función.", + "app_filename_help": "Este es el archivo donde desea guardar el código de función.", + "trigger_functionName_help": "Nombre de la función que desea crear", + "trigger_functionName_label": "Proporcione un nombre de función", + "app_selected_filename_label": "Nombre de archivo", + "app_selected_filename_help": "Este es el archivo al que desea agregar la función", + "blueprint_filename_label": "Nombre del archivo de función de plano técnico", + "blueprint_filename_help": "Este es el nombre del archivo donde desea guardar el código del plano técnico.", + "blueprint_selected_filename_help": "Nombre del archivo donde desea agregar una función al proyecto existente.", + "blueprint_selected_filename_label": "Seleccione un archivo para guardar para la función de plano técnico.", + "blueprint_fileName_errorText": "Nombre de archivo no válido", + "app_filename_errorText": "Nombre de archivo no válido" }, "en": { "eventHubOut_connection_help": "The name of the app setting containing your Event Hub connection string. The connection string must have Send permissions.", + "cosmosDBIn_leaseCollectionName_help": "The name of the collection in which the lease is stored", "eventHubOut_connection_label": "Event Hub connection", "eventHubOut_displayName": "Azure Event Hubs", "eventHubOut_name_help": "The name used to identify this binding in your code", @@ -1068,13 +1116,16 @@ "CosmosDBTriggerCSharp_description": "A C# function that will be run whenever documents change in a document collection.", "CosmosDBTriggerJavascript_description": "A JavaScript function that will be run whenever documents change in a document collection.", "cosmosDBIn_collectionName_help": "Name of the collection to be monitored.", + "cosmosDBIn_containerName_help": "Name of the container to be monitored.", "cosmosDBIn_collectionName_label": "Collection name", + "cosmosDBIn_containerName_label": "Container name", "cosmosDBIn_connection_help": "The name of the App Setting containing the connection string to the service that contains the collection to be monitored.", "cosmosDBIn_connection_label": "Cosmos DB account connection", - "cosmosDBIn_databaseName_help": "Name of the Cosmos DB database that includes the collection to be monitored.", + "cosmosDBIn_databaseName_help": "Name of the Cosmos DB database that includes the container to be monitored.", "cosmosDBIn_databaseName_label": "Database name", - "cosmosDBIn_leaseCollectionName_help": "Name of the collection to store the leases.", + "cosmosDBIn_leaseContainerName_help": "Name of the container to store the leases.", "cosmosDBIn_leaseCollectionName_label": "Collection name for leases", + "cosmosDBIn_leaseContainerName_label": "Container name for leases", "cosmosDBIn_leaseDatabaseName_help": "Name of the database that includes the collection to store the leases.", "cosmosDBIn_leaseDatabaseName_label": "Database name for leases", "cosmosDBIn_name_help": "The name used to identify this binding in your code", @@ -1083,7 +1134,9 @@ "IoTHubServiceBusTopicTriggerCSharp_description": "A C# function that will be run whenever a message is added to the specified Service Bus topic", "temp_category_IoTHub": "IoT Hub", "cosmosDBIn_createIfNotExists_help": "Checks for existence and automatically creates the leases collection.", + "cosmosDBIn_createContainerIfNotExists_help": "Checks for existence and automatically creates the leases container.", "cosmosDBIn_createIfNotExists_label": "Create lease collection if it does not exist", + "cosmosDBIn_createContainerIfNotExists_label": "Create lease container if it does not exist", "EventGridTriggerJavascript_description": "A JavaScript function that will be run whenever an event grid receives a new event", "Identity_help": "The identity that will be used to perform the action.", "Identity_label": "Identity", @@ -1127,6 +1180,8 @@ "DurableFunctionsHttpStart_description": "A function that will trigger whenever it receives an HTTP request to execute an orchestrator function.", "temp_category_durableFunctions": "Durable Functions", "BlobTrigger_name": "Blob trigger", + "blobTrigger_connection_label": "Storage account connection", + "blobTrigger_connection_help": "The name of the app setting containing your storage account connection string", "EventHubTrigger_name": "Event Hub trigger", "HttpTrigger_name": "HTTP trigger", "OutlookMessageWebhookCreator_name": "Outlook message webhook subscription creator", @@ -1195,6 +1250,45 @@ "kafka_consumergroup_help": "Consumer Group", "kafka_consumergroup_label": "Consumer Group", "SqlInputBinding_description": "A function that will be run on an HTTP trigger and returns the results of a provided SQL query.", - "SqlOuputBinding_description": "A function that will be run on an HTTP trigger and takes a list of rows and upserts them into the user table (i.e. If a row doesn't already exist, it is added. If it does, it is updated)." + "SqlOuputBinding_description": "A function that will be run on an HTTP trigger and takes a list of rows and upserts them into the user table (i.e. If a row doesn't already exist, it is added. If it does, it is updated).", + "authenticationEvents_description": "Triggers for Azure AD Authentication event custom extensions. Lets you focus on your business logic.", + "authenticationEvents_trigger_displayName": "Authentication Events Trigger", + "authenticationEvent_trigger_name_label": "Name", + "authenticationEvent_trigger_name_help": "Triggers for Azure AD Authentication event custom extensions. Lets you focus on your business logic. For more information please see /~https://github.com/Azure/microsoft-azure-webJobs-extensions-authentication-events", + "authenticationEvent_trigger_IssuanceStartVer_label": "OnTokenIssuanceStart Version", + "authenticationEvent_trigger_IssuanceStartVer_help": "API Schema Version for OnTokenIssuanceStart Event", + "sqlIn_displayName": "Azure SQL Input Binding", + "sqlIn_name_label": "Name", + "sqlIn_name_help": "The name used to identify this binding in your code.", + "sqlIn_commandText_label": "SQL Command Text", + "sqlIn_commandText_help": "The Transact-SQL query command or name of the stored procedure executed by the binding.", + "sqlIn_commandType_label": "Text or StoredProcedure", + "sqlIn_commandType_help": "The command type used to identify what type of value commandText is, either Text for a T-SQL query or StoredProcedure for a stored procedure.", + "sqlIn_parameters_label": "Parameters", + "sqlIn_parameters_help": "Parameter values passed to the command during execution as a single string. Must follow the format `@param1=param1,@param2=param2`.", + "sql_connection_label": "SQL Connection string setting", + "sql_connection_help": "The name of the app setting containing your Azure SQL binding connection string.", + "sqlOut_displayName": "Azure SQL Output Binding", + "sqlOut_name_label": "Name", + "sqlOut_name_help": "The name of the variable that represents the entity in function code.", + "sqlOut_commandText_label": "Table Name", + "sqlOut_commandText_help": "The name of the table being upserted to by the binding.", + "sqlTrigger_displayName": "Azure SQL Trigger Binding", + "sqlTrigger_name_label": "Name", + "sqlTrigger_name_help": "The name of the parameter that the trigger binds to.", + "sqlTrigger_tableName_label": "Table Name", + "sqlTrigger_tableName_help": "The name of the table being monitored by the trigger.", + "app_filename_label": "Provide a filename for your function", + "app_filename_help": "This is the file where you want to save your function code", + "trigger_functionName_help": "Name of the function you want to create", + "trigger_functionName_label": "Provide a function name", + "app_selected_filename_label": "File Name", + "app_selected_filename_help": "This is the file to which you want to add your function", + "blueprint_filename_label": "Blueprint function file Name", + "blueprint_filename_help": "This is the name of the file where you want to save your blueprint code", + "blueprint_selected_filename_help": "This is the name of the file where you want to add a function to the existing blueprint", + "blueprint_selected_filename_label": "Select a file to save for your blueprint function", + "blueprint_fileName_errorText": "Invalid fileName", + "app_filename_errorText": "Invalid fileName" } } \ No newline at end of file diff --git a/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.fr-FR.json b/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.fr-FR.json index f379d467c..4bc9caf6f 100644 --- a/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.fr-FR.json +++ b/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.fr-FR.json @@ -1,6 +1,7 @@ { "lang": { "eventHubOut_connection_help": "Nom du paramètre d'application contenant votre chaîne de connexion Event Hub. La chaîne de connexion doit avoir les autorisations d'envoi.", + "cosmosDBIn_leaseCollectionName_help": "Nom de la collection dans laquelle le bail est stocké", "eventHubOut_connection_label": "Connexion de l'Event Hub", "eventHubOut_displayName": "Azure Event Hubs", "eventHubOut_name_help": "Nom utilisé pour identifier cette liaison dans votre code", @@ -469,13 +470,16 @@ "CosmosDBTriggerCSharp_description": "Fonction C# exécutée en cas de changement des documents dans une collection de documents.", "CosmosDBTriggerJavascript_description": "Fonction JavaScript exécutée en cas de changement des documents dans une collection de documents.", "cosmosDBIn_collectionName_help": "Nom de la collection à surveiller.", + "cosmosDBIn_containerName_help": "Nom du conteneur à surveiller.", "cosmosDBIn_collectionName_label": "Nom de la collection", + "cosmosDBIn_containerName_label": "Nom du conteneur", "cosmosDBIn_connection_help": "Nom du paramètre d'application contenant la chaîne de connexion au service qui contient la collection à surveiller.", "cosmosDBIn_connection_label": "Connexion au compte Cosmos DB", - "cosmosDBIn_databaseName_help": "Nom de la base de données Cosmos DB qui inclut la collection à surveiller.", + "cosmosDBIn_databaseName_help": "Nom de la base de données Cosmos DB qui inclut la conteneur à surveiller.", "cosmosDBIn_databaseName_label": "Nom de la base de données", - "cosmosDBIn_leaseCollectionName_help": "Nom de la collection dans laquelle stocker les baux.", + "cosmosDBIn_leaseContainerName_help": "Nom du conteneur dans lequel stocker les baux.", "cosmosDBIn_leaseCollectionName_label": "Nom de la collection pour les baux", + "cosmosDBIn_leaseContainerName_label": "Nom du conteneur pour les baux", "cosmosDBIn_leaseDatabaseName_help": "Nom de la base de données qui inclut la collection dans laquelle stocker les baux.", "cosmosDBIn_leaseDatabaseName_label": "Nom de la base de données pour les baux", "cosmosDBIn_name_help": "Nom utilisé pour identifier cette liaison dans votre code", @@ -484,7 +488,9 @@ "IoTHubServiceBusTopicTriggerCSharp_description": "Fonction C# exécutée quand un message est ajouté à la rubrique Service Bus spécifiée", "temp_category_IoTHub": "IoT Hub", "cosmosDBIn_createIfNotExists_help": "Vérifie l'existence et crée automatiquement la collection de baux.", + "cosmosDBIn_createContainerIfNotExists_help": "Vérifie l'existence et crée automatiquement le conteneur de baux.", "cosmosDBIn_createIfNotExists_label": "Créer la collection de baux si elle n'existe pas", + "cosmosDBIn_createContainerIfNotExists_label": "Créer le conteneur de baux s’il n'existe pas", "EventGridTriggerJavascript_description": "Fonction JavaScript exécutée quand une grille d'événements reçoit un nouvel événement", "Identity_help": "Identité utilisée pour effectuer l'action.", "Identity_label": "Identité", @@ -528,6 +534,8 @@ "DurableFunctionsHttpStart_description": "Fonction déclenchée chaque fois qu'elle reçoit une requête HTTP pour exécuter une fonction orchestrator.", "temp_category_durableFunctions": "Durable Functions", "BlobTrigger_name": "Déclencheur de blob", + "blobTrigger_connection_label": "Connexion du compte de stockage", + "blobTrigger_connection_help": "Nom du paramètre d’application contenant votre chaîne de connexion du compte de stockage", "EventHubTrigger_name": "Déclencheur de hub d'événements", "HttpTrigger_name": "Déclencheur HTTP", "OutlookMessageWebhookCreator_name": "Créateur de l'abonnement webhook aux messages Outlook", @@ -596,10 +604,50 @@ "kafka_consumergroup_help": "Groupe de consommateurs", "kafka_consumergroup_label": "Groupe de consommateurs", "SqlInputBinding_description": "Fonction qui sera exécutée sur un déclencheur HTTP et qui retourne les résultats d’une requête SQL fournie.", - "SqlOuputBinding_description": "Fonction qui est exécutée sur un déclencheur HTTP et qui accepte une liste de lignes et les place dans la table utilisateur (c’est-à-dire si une ligne n’existe pas déjà, elle est ajoutée. Si c’est le cas, il est mis à jour)." + "SqlOuputBinding_description": "Fonction qui est exécutée sur un déclencheur HTTP et qui accepte une liste de lignes et les place dans la table utilisateur (c’est-à-dire si une ligne n’existe pas déjà, elle est ajoutée. Si c’est le cas, il est mis à jour).", + "authenticationEvents_description": "Déclencheurs pour les extensions personnalisées d’événement Azure AD Authentication. Vous permet de vous concentrer sur votre logique métier.", + "authenticationEvents_trigger_displayName": "Déclencheur d’événements d’authentification", + "authenticationEvent_trigger_name_label": "Nom", + "authenticationEvent_trigger_name_help": "Déclencheurs pour les extensions personnalisées d’événement Azure AD Authentication. Vous permet de vous concentrer sur votre logique métier. Pour en savoir plus, consultez /~https://github.com/Azure/microsoft-azure-webJobs-extensions-authentication-events", + "authenticationEvent_trigger_IssuanceStartVer_label": "Version OnTokenIssuanceStart", + "authenticationEvent_trigger_IssuanceStartVer_help": "Version du schéma d’API pour l’événement OnTokenIssuanceStart", + "sqlIn_displayName": "Liaison d’entrée Azure SQL", + "sqlIn_name_label": "Nom", + "sqlIn_name_help": "Nom utilisé pour identifier cette liaison dans votre code.", + "sqlIn_commandText_label": "Texte de commande SQL", + "sqlIn_commandText_help": "Commande de requête Transact-SQL ou nom de la procédure stockée exécutée par la liaison.", + "sqlIn_commandType_label": "Text ou StoredProcedure", + "sqlIn_commandType_help": "Type de commande utilisé pour identifier le type de valeur de commandText, soit Text pour une requête T-SQL ou StoredProcedure pour une procédure stockée.", + "sqlIn_parameters_label": "Paramètres", + "sqlIn_parameters_help": "Valeurs de paramètre passées à la commande pendant l’exécution en tant que chaîne unique. Doit respecter le format « @param1=param1,@param2=param2 ».", + "sql_connection_label": "Paramètre de la chaîne de connexion SQL", + "sql_connection_help": "Nom du paramètre d’application contenant votre chaîne de connexion de liaison Azure SQL.", + "sqlOut_displayName": "Liaison de sortie Azure SQL", + "sqlOut_name_label": "Nom", + "sqlOut_name_help": "Nom de la variable représentant l’entité dans le code de fonction.", + "sqlOut_commandText_label": "Nom de la table", + "sqlOut_commandText_help": "Nom de la table faisant l’objet d’un upsert par la liaison.", + "sqlTrigger_displayName": "Liaison de déclencheur Azure SQL", + "sqlTrigger_name_label": "Nom", + "sqlTrigger_name_help": "Nom du paramètre auquel le déclencheur est lié.", + "sqlTrigger_tableName_label": "Nom de la table", + "sqlTrigger_tableName_help": "Nom de la table en cours de surveillance par le déclencheur.", + "app_filename_label": "Indiquer un nom de fichier pour votre fonction", + "app_filename_help": "Il s’agit du fichier dans lequel vous souhaitez enregistrer votre code de fonction", + "trigger_functionName_help": "Nom de la fonction que vous souhaitez créer", + "trigger_functionName_label": "Indiquer un nom de fonction", + "app_selected_filename_label": "Nom de fichier", + "app_selected_filename_help": "Il s’agit du fichier auquel vous souhaitez ajouter votre fonction", + "blueprint_filename_label": "Nom du fichier de la fonction blueprint", + "blueprint_filename_help": "Il s’agit du nom du fichier dans lequel vous souhaitez enregistrer votre code de blueprint", + "blueprint_selected_filename_help": "Il s’agit du nom du fichier dans lequel vous voulez ajouter une fonction au blueprint existant", + "blueprint_selected_filename_label": "Sélectionner un fichier à enregistrer pour votre fonction blueprint", + "blueprint_fileName_errorText": "Nom de fichier non valide", + "app_filename_errorText": "Nom de fichier non valide" }, "en": { "eventHubOut_connection_help": "The name of the app setting containing your Event Hub connection string. The connection string must have Send permissions.", + "cosmosDBIn_leaseCollectionName_help": "The name of the collection in which the lease is stored", "eventHubOut_connection_label": "Event Hub connection", "eventHubOut_displayName": "Azure Event Hubs", "eventHubOut_name_help": "The name used to identify this binding in your code", @@ -1068,13 +1116,16 @@ "CosmosDBTriggerCSharp_description": "A C# function that will be run whenever documents change in a document collection.", "CosmosDBTriggerJavascript_description": "A JavaScript function that will be run whenever documents change in a document collection.", "cosmosDBIn_collectionName_help": "Name of the collection to be monitored.", + "cosmosDBIn_containerName_help": "Name of the container to be monitored.", "cosmosDBIn_collectionName_label": "Collection name", + "cosmosDBIn_containerName_label": "Container name", "cosmosDBIn_connection_help": "The name of the App Setting containing the connection string to the service that contains the collection to be monitored.", "cosmosDBIn_connection_label": "Cosmos DB account connection", - "cosmosDBIn_databaseName_help": "Name of the Cosmos DB database that includes the collection to be monitored.", + "cosmosDBIn_databaseName_help": "Name of the Cosmos DB database that includes the container to be monitored.", "cosmosDBIn_databaseName_label": "Database name", - "cosmosDBIn_leaseCollectionName_help": "Name of the collection to store the leases.", + "cosmosDBIn_leaseContainerName_help": "Name of the container to store the leases.", "cosmosDBIn_leaseCollectionName_label": "Collection name for leases", + "cosmosDBIn_leaseContainerName_label": "Container name for leases", "cosmosDBIn_leaseDatabaseName_help": "Name of the database that includes the collection to store the leases.", "cosmosDBIn_leaseDatabaseName_label": "Database name for leases", "cosmosDBIn_name_help": "The name used to identify this binding in your code", @@ -1083,7 +1134,9 @@ "IoTHubServiceBusTopicTriggerCSharp_description": "A C# function that will be run whenever a message is added to the specified Service Bus topic", "temp_category_IoTHub": "IoT Hub", "cosmosDBIn_createIfNotExists_help": "Checks for existence and automatically creates the leases collection.", + "cosmosDBIn_createContainerIfNotExists_help": "Checks for existence and automatically creates the leases container.", "cosmosDBIn_createIfNotExists_label": "Create lease collection if it does not exist", + "cosmosDBIn_createContainerIfNotExists_label": "Create lease container if it does not exist", "EventGridTriggerJavascript_description": "A JavaScript function that will be run whenever an event grid receives a new event", "Identity_help": "The identity that will be used to perform the action.", "Identity_label": "Identity", @@ -1127,6 +1180,8 @@ "DurableFunctionsHttpStart_description": "A function that will trigger whenever it receives an HTTP request to execute an orchestrator function.", "temp_category_durableFunctions": "Durable Functions", "BlobTrigger_name": "Blob trigger", + "blobTrigger_connection_label": "Storage account connection", + "blobTrigger_connection_help": "The name of the app setting containing your storage account connection string", "EventHubTrigger_name": "Event Hub trigger", "HttpTrigger_name": "HTTP trigger", "OutlookMessageWebhookCreator_name": "Outlook message webhook subscription creator", @@ -1195,6 +1250,45 @@ "kafka_consumergroup_help": "Consumer Group", "kafka_consumergroup_label": "Consumer Group", "SqlInputBinding_description": "A function that will be run on an HTTP trigger and returns the results of a provided SQL query.", - "SqlOuputBinding_description": "A function that will be run on an HTTP trigger and takes a list of rows and upserts them into the user table (i.e. If a row doesn't already exist, it is added. If it does, it is updated)." + "SqlOuputBinding_description": "A function that will be run on an HTTP trigger and takes a list of rows and upserts them into the user table (i.e. If a row doesn't already exist, it is added. If it does, it is updated).", + "authenticationEvents_description": "Triggers for Azure AD Authentication event custom extensions. Lets you focus on your business logic.", + "authenticationEvents_trigger_displayName": "Authentication Events Trigger", + "authenticationEvent_trigger_name_label": "Name", + "authenticationEvent_trigger_name_help": "Triggers for Azure AD Authentication event custom extensions. Lets you focus on your business logic. For more information please see /~https://github.com/Azure/microsoft-azure-webJobs-extensions-authentication-events", + "authenticationEvent_trigger_IssuanceStartVer_label": "OnTokenIssuanceStart Version", + "authenticationEvent_trigger_IssuanceStartVer_help": "API Schema Version for OnTokenIssuanceStart Event", + "sqlIn_displayName": "Azure SQL Input Binding", + "sqlIn_name_label": "Name", + "sqlIn_name_help": "The name used to identify this binding in your code.", + "sqlIn_commandText_label": "SQL Command Text", + "sqlIn_commandText_help": "The Transact-SQL query command or name of the stored procedure executed by the binding.", + "sqlIn_commandType_label": "Text or StoredProcedure", + "sqlIn_commandType_help": "The command type used to identify what type of value commandText is, either Text for a T-SQL query or StoredProcedure for a stored procedure.", + "sqlIn_parameters_label": "Parameters", + "sqlIn_parameters_help": "Parameter values passed to the command during execution as a single string. Must follow the format `@param1=param1,@param2=param2`.", + "sql_connection_label": "SQL Connection string setting", + "sql_connection_help": "The name of the app setting containing your Azure SQL binding connection string.", + "sqlOut_displayName": "Azure SQL Output Binding", + "sqlOut_name_label": "Name", + "sqlOut_name_help": "The name of the variable that represents the entity in function code.", + "sqlOut_commandText_label": "Table Name", + "sqlOut_commandText_help": "The name of the table being upserted to by the binding.", + "sqlTrigger_displayName": "Azure SQL Trigger Binding", + "sqlTrigger_name_label": "Name", + "sqlTrigger_name_help": "The name of the parameter that the trigger binds to.", + "sqlTrigger_tableName_label": "Table Name", + "sqlTrigger_tableName_help": "The name of the table being monitored by the trigger.", + "app_filename_label": "Provide a filename for your function", + "app_filename_help": "This is the file where you want to save your function code", + "trigger_functionName_help": "Name of the function you want to create", + "trigger_functionName_label": "Provide a function name", + "app_selected_filename_label": "File Name", + "app_selected_filename_help": "This is the file to which you want to add your function", + "blueprint_filename_label": "Blueprint function file Name", + "blueprint_filename_help": "This is the name of the file where you want to save your blueprint code", + "blueprint_selected_filename_help": "This is the name of the file where you want to add a function to the existing blueprint", + "blueprint_selected_filename_label": "Select a file to save for your blueprint function", + "blueprint_fileName_errorText": "Invalid fileName", + "app_filename_errorText": "Invalid fileName" } } \ No newline at end of file diff --git a/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.hu-HU.json b/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.hu-HU.json index eb8a668d0..4b2290316 100644 --- a/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.hu-HU.json +++ b/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.hu-HU.json @@ -1,6 +1,7 @@ { "lang": { "eventHubOut_connection_help": "Az Event Hub-kapcsolati sztringet tartalmazó alkalmazásbeállítás neve. A kapcsolati sztringnek küldési jogosultsággal kell rendelkeznie.", + "cosmosDBIn_leaseCollectionName_help": "Annak a gyűjteménynek a neve, amelyben a címbérlet tárolva van", "eventHubOut_connection_label": "Eseményközpont-kapcsolat", "eventHubOut_displayName": "Azure Event Hubs", "eventHubOut_name_help": "Ez a név szolgál a kötés azonosítására a kódban.", @@ -469,13 +470,16 @@ "CosmosDBTriggerCSharp_description": "C#-függvény, amely akkor fut le, amikor módosul egy dokumentum egy dokumentumgyűjteményben.", "CosmosDBTriggerJavascript_description": "JavaScript-függvény, amely akkor fut le, amikor módosul egy dokumentum egy dokumentumgyűjteményben.", "cosmosDBIn_collectionName_help": "A figyelni kívánt gyűjtemény neve.", + "cosmosDBIn_containerName_help": "A figyelni kívánt tároló neve.", "cosmosDBIn_collectionName_label": "Gyűjtemény neve", + "cosmosDBIn_containerName_label": "Tároló neve", "cosmosDBIn_connection_help": "Azon alkalmazástulajdonság neve, mely tartalmazza az ahhoz a szolgáltatáshoz tartozó kapcsolati sztringet, amely a figyelni kívánt gyűjteményt tartalmazza.", "cosmosDBIn_connection_label": "Cosmos DB-fiók-kapcsolat", - "cosmosDBIn_databaseName_help": "A figyelni kívánt gyűjteményt tartalmazó Cosmos DB-adatbázis neve.", + "cosmosDBIn_databaseName_help": "A figyelni kívánt tárolót tartalmazó Cosmos DB-adatbázis neve.", "cosmosDBIn_databaseName_label": "Adatbázis neve", - "cosmosDBIn_leaseCollectionName_help": "A bérletek tárolásához használni kívánt gyűjtemény neve.", + "cosmosDBIn_leaseContainerName_help": "A bérletek tárolásához használni kívánt tároló neve.", "cosmosDBIn_leaseCollectionName_label": "A bérletek gyűjteményének neve", + "cosmosDBIn_leaseContainerName_label": "Bérlettároló neve", "cosmosDBIn_leaseDatabaseName_help": "A bérletek tárolásához használni kívánt gyűjteményt tartalmazó adatbázis neve.", "cosmosDBIn_leaseDatabaseName_label": "A bérletek adatbázisának neve", "cosmosDBIn_name_help": "Ez a név szolgál a kötés azonosítására a kódban.", @@ -484,7 +488,9 @@ "IoTHubServiceBusTopicTriggerCSharp_description": "C#-függvény, amely akkor fut le, amikor egy üzenet bekerül a megadott Service Bus-témakörbe", "temp_category_IoTHub": "IoT Hub", "cosmosDBIn_createIfNotExists_help": "A bérletek gyűjteménye létezésének ellenőrzése, és annak automatikus létrehozása.", + "cosmosDBIn_createContainerIfNotExists_help": "A bérlettároló létezésének ellenőrzése, és annak automatikus létrehozása.", "cosmosDBIn_createIfNotExists_label": "A bérletek gyűjteményének létrehozása, ha az nem létezik", + "cosmosDBIn_createContainerIfNotExists_label": "A bérlettároló létrehozása, ha az nem létezik", "EventGridTriggerJavascript_description": "JavaScript-függvény, amely akkor fut le, amikor egy eseményrács új eseményt kap", "Identity_help": "Az az identitás, amelynek használatával a művelet végre lesz hajtva.", "Identity_label": "Identitás", @@ -528,6 +534,8 @@ "DurableFunctionsHttpStart_description": "Függvény, amely akkor fut, ha vezénylőfüggvény végrehajtására irányuló HTTP-kérést kap.", "temp_category_durableFunctions": "Durable Functions", "BlobTrigger_name": "Blobalapú eseményindító", + "blobTrigger_connection_label": "Tárfiók kapcsolata", + "blobTrigger_connection_help": "A tárfiók kapcsolati sztringjét tartalmazó alkalmazásbeállítás neve", "EventHubTrigger_name": "Eseményközpont-trigger", "HttpTrigger_name": "HTTP-eseményindító", "OutlookMessageWebhookCreator_name": "„Outlook-üzenet” webhook előfizetésének létrehozója", @@ -596,10 +604,50 @@ "kafka_consumergroup_help": "Fogyasztói csoport", "kafka_consumergroup_label": "Fogyasztói csoport", "SqlInputBinding_description": "Egy HTTP-eseményindító hatására futó függvény, amely egy megadott SQL-lekérdezés eredményeit adja vissza.", - "SqlOuputBinding_description": "Egy HTTP-eseményindító hatására futó függvény, amely sorok listáját veszi át, majd upsert művelettel beszúrja azokat egy felhasználói táblába (azaz ha egy sor még nem létezik, akkor hozzáadja, ha létezik, akkor pedig módosítja azt)." + "SqlOuputBinding_description": "Egy HTTP-eseményindító hatására futó függvény, amely sorok listáját veszi át, majd upsert művelettel beszúrja azokat egy felhasználói táblába (azaz ha egy sor még nem létezik, akkor hozzáadja, ha létezik, akkor pedig módosítja azt).", + "authenticationEvents_description": "Eseményindítók az Azure AD hitelesítési eseményeinek egyéni bővítményeihez. Lehetővé teszik, hogy Ön az üzleti logikára összpontosítson.", + "authenticationEvents_trigger_displayName": "Hitelesítési események eseményindítója", + "authenticationEvent_trigger_name_label": "Név", + "authenticationEvent_trigger_name_help": "Eseményindítók az Azure AD hitelesítési eseményeinek egyéni bővítményeihez. Lehetővé teszik, hogy Ön az üzleti logikára összpontosítson. További információ: /~https://github.com/Azure/microsoft-azure-webJobs-extensions-authentication-events", + "authenticationEvent_trigger_IssuanceStartVer_label": "Az OnTokenIssuanceStart verziója", + "authenticationEvent_trigger_IssuanceStartVer_help": "API-séma verziója az OnTokenIssuanceStart eseményhez", + "sqlIn_displayName": "Azure SQL Input Binding", + "sqlIn_name_label": "Név", + "sqlIn_name_help": "Ez a név szolgál a kötés azonosítására a kódban.", + "sqlIn_commandText_label": "SQL-parancs szövege", + "sqlIn_commandText_help": "A transact-SQL lekérdezési parancs vagy a kötés által végrehajtott tárolt eljárás neve.", + "sqlIn_commandType_label": "Szöveg vagy tárolt eljárás", + "sqlIn_commandType_help": "A commandText értéktípus azonosítására használt parancstípus, amely egy T-SQL-lekérdezés szövege vagy egy tárolt eljárás StoredProcedure tulajdonsága.", + "sqlIn_parameters_label": "Paraméterek", + "sqlIn_parameters_help": "A parancsnak egyetlen sztringként átadott paraméterértékek. A következő formátumot kell követnie: @param1=param1,@param2=param2.", + "sql_connection_label": "SQL-kapcsolati sztring beállítása", + "sql_connection_help": "Az Azure SQL kötési kapcsolati sztringet tartalmazó alkalmazásbeállítás neve.", + "sqlOut_displayName": "Azure SQL Output Binding", + "sqlOut_name_label": "Név", + "sqlOut_name_help": "Az entitást a függvénykódban jelölő változó neve.", + "sqlOut_commandText_label": "Táblanév", + "sqlOut_commandText_help": "A kötés által a frissítéshez/beszúráshoz használt tábla neve.", + "sqlTrigger_displayName": "Azure SQL-trigger kötése", + "sqlTrigger_name_label": "Név", + "sqlTrigger_name_help": "Annak a paraméternek a neve, amelyhez a trigger kötve van.", + "sqlTrigger_tableName_label": "Táblanév", + "sqlTrigger_tableName_help": "A trigger által monitorozott tábla neve.", + "app_filename_label": "Adja meg a függvény fájlnevét", + "app_filename_help": "Ebbe a fájlba szeretné menteni a függvénykódot", + "trigger_functionName_help": "A létrehozni kívánt függvény neve", + "trigger_functionName_label": "Adjon meg egy függvénynevet", + "app_selected_filename_label": "Fájlnév", + "app_selected_filename_help": "Ehhez a fájlhoz szeretné hozzáadni a függvényt", + "blueprint_filename_label": "Tervfüggvény fájlneve", + "blueprint_filename_help": "Ez annak a fájlnak a neve, ahová menteni szeretné a tervkódot", + "blueprint_selected_filename_help": "Ez annak a fájlnak a neve, amelyben függvényt szeretne hozzáadni a meglévő tervhez", + "blueprint_selected_filename_label": "Válassza ki a tervfüggvényhez menteni kívánt fájlt", + "blueprint_fileName_errorText": "Érvénytelen fájlnév", + "app_filename_errorText": "Érvénytelen fájlnév" }, "en": { "eventHubOut_connection_help": "The name of the app setting containing your Event Hub connection string. The connection string must have Send permissions.", + "cosmosDBIn_leaseCollectionName_help": "The name of the collection in which the lease is stored", "eventHubOut_connection_label": "Event Hub connection", "eventHubOut_displayName": "Azure Event Hubs", "eventHubOut_name_help": "The name used to identify this binding in your code", @@ -1068,13 +1116,16 @@ "CosmosDBTriggerCSharp_description": "A C# function that will be run whenever documents change in a document collection.", "CosmosDBTriggerJavascript_description": "A JavaScript function that will be run whenever documents change in a document collection.", "cosmosDBIn_collectionName_help": "Name of the collection to be monitored.", + "cosmosDBIn_containerName_help": "Name of the container to be monitored.", "cosmosDBIn_collectionName_label": "Collection name", + "cosmosDBIn_containerName_label": "Container name", "cosmosDBIn_connection_help": "The name of the App Setting containing the connection string to the service that contains the collection to be monitored.", "cosmosDBIn_connection_label": "Cosmos DB account connection", - "cosmosDBIn_databaseName_help": "Name of the Cosmos DB database that includes the collection to be monitored.", + "cosmosDBIn_databaseName_help": "Name of the Cosmos DB database that includes the container to be monitored.", "cosmosDBIn_databaseName_label": "Database name", - "cosmosDBIn_leaseCollectionName_help": "Name of the collection to store the leases.", + "cosmosDBIn_leaseContainerName_help": "Name of the container to store the leases.", "cosmosDBIn_leaseCollectionName_label": "Collection name for leases", + "cosmosDBIn_leaseContainerName_label": "Container name for leases", "cosmosDBIn_leaseDatabaseName_help": "Name of the database that includes the collection to store the leases.", "cosmosDBIn_leaseDatabaseName_label": "Database name for leases", "cosmosDBIn_name_help": "The name used to identify this binding in your code", @@ -1083,7 +1134,9 @@ "IoTHubServiceBusTopicTriggerCSharp_description": "A C# function that will be run whenever a message is added to the specified Service Bus topic", "temp_category_IoTHub": "IoT Hub", "cosmosDBIn_createIfNotExists_help": "Checks for existence and automatically creates the leases collection.", + "cosmosDBIn_createContainerIfNotExists_help": "Checks for existence and automatically creates the leases container.", "cosmosDBIn_createIfNotExists_label": "Create lease collection if it does not exist", + "cosmosDBIn_createContainerIfNotExists_label": "Create lease container if it does not exist", "EventGridTriggerJavascript_description": "A JavaScript function that will be run whenever an event grid receives a new event", "Identity_help": "The identity that will be used to perform the action.", "Identity_label": "Identity", @@ -1127,6 +1180,8 @@ "DurableFunctionsHttpStart_description": "A function that will trigger whenever it receives an HTTP request to execute an orchestrator function.", "temp_category_durableFunctions": "Durable Functions", "BlobTrigger_name": "Blob trigger", + "blobTrigger_connection_label": "Storage account connection", + "blobTrigger_connection_help": "The name of the app setting containing your storage account connection string", "EventHubTrigger_name": "Event Hub trigger", "HttpTrigger_name": "HTTP trigger", "OutlookMessageWebhookCreator_name": "Outlook message webhook subscription creator", @@ -1195,6 +1250,45 @@ "kafka_consumergroup_help": "Consumer Group", "kafka_consumergroup_label": "Consumer Group", "SqlInputBinding_description": "A function that will be run on an HTTP trigger and returns the results of a provided SQL query.", - "SqlOuputBinding_description": "A function that will be run on an HTTP trigger and takes a list of rows and upserts them into the user table (i.e. If a row doesn't already exist, it is added. If it does, it is updated)." + "SqlOuputBinding_description": "A function that will be run on an HTTP trigger and takes a list of rows and upserts them into the user table (i.e. If a row doesn't already exist, it is added. If it does, it is updated).", + "authenticationEvents_description": "Triggers for Azure AD Authentication event custom extensions. Lets you focus on your business logic.", + "authenticationEvents_trigger_displayName": "Authentication Events Trigger", + "authenticationEvent_trigger_name_label": "Name", + "authenticationEvent_trigger_name_help": "Triggers for Azure AD Authentication event custom extensions. Lets you focus on your business logic. For more information please see /~https://github.com/Azure/microsoft-azure-webJobs-extensions-authentication-events", + "authenticationEvent_trigger_IssuanceStartVer_label": "OnTokenIssuanceStart Version", + "authenticationEvent_trigger_IssuanceStartVer_help": "API Schema Version for OnTokenIssuanceStart Event", + "sqlIn_displayName": "Azure SQL Input Binding", + "sqlIn_name_label": "Name", + "sqlIn_name_help": "The name used to identify this binding in your code.", + "sqlIn_commandText_label": "SQL Command Text", + "sqlIn_commandText_help": "The Transact-SQL query command or name of the stored procedure executed by the binding.", + "sqlIn_commandType_label": "Text or StoredProcedure", + "sqlIn_commandType_help": "The command type used to identify what type of value commandText is, either Text for a T-SQL query or StoredProcedure for a stored procedure.", + "sqlIn_parameters_label": "Parameters", + "sqlIn_parameters_help": "Parameter values passed to the command during execution as a single string. Must follow the format `@param1=param1,@param2=param2`.", + "sql_connection_label": "SQL Connection string setting", + "sql_connection_help": "The name of the app setting containing your Azure SQL binding connection string.", + "sqlOut_displayName": "Azure SQL Output Binding", + "sqlOut_name_label": "Name", + "sqlOut_name_help": "The name of the variable that represents the entity in function code.", + "sqlOut_commandText_label": "Table Name", + "sqlOut_commandText_help": "The name of the table being upserted to by the binding.", + "sqlTrigger_displayName": "Azure SQL Trigger Binding", + "sqlTrigger_name_label": "Name", + "sqlTrigger_name_help": "The name of the parameter that the trigger binds to.", + "sqlTrigger_tableName_label": "Table Name", + "sqlTrigger_tableName_help": "The name of the table being monitored by the trigger.", + "app_filename_label": "Provide a filename for your function", + "app_filename_help": "This is the file where you want to save your function code", + "trigger_functionName_help": "Name of the function you want to create", + "trigger_functionName_label": "Provide a function name", + "app_selected_filename_label": "File Name", + "app_selected_filename_help": "This is the file to which you want to add your function", + "blueprint_filename_label": "Blueprint function file Name", + "blueprint_filename_help": "This is the name of the file where you want to save your blueprint code", + "blueprint_selected_filename_help": "This is the name of the file where you want to add a function to the existing blueprint", + "blueprint_selected_filename_label": "Select a file to save for your blueprint function", + "blueprint_fileName_errorText": "Invalid fileName", + "app_filename_errorText": "Invalid fileName" } } \ No newline at end of file diff --git a/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.it-IT.json b/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.it-IT.json index 3d603ab5b..609a67ed6 100644 --- a/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.it-IT.json +++ b/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.it-IT.json @@ -1,6 +1,7 @@ { "lang": { "eventHubOut_connection_help": "Nome dell'impostazione dell'app contenente la stringa di connessione dell'hub eventi. Alla stringa di connessione devono essere assegnate le autorizzazioni di invio.", + "cosmosDBIn_leaseCollectionName_help": "Nome della raccolta in cui è archiviato il lease", "eventHubOut_connection_label": "Connessione dell'hub eventi", "eventHubOut_displayName": "Hub eventi di Azure", "eventHubOut_name_help": "Nome usato per identificare questa associazione nel codice", @@ -469,13 +470,16 @@ "CosmosDBTriggerCSharp_description": "Funzione C# che verrà eseguita ogni volta che vengono modificati documenti in una raccolta di documenti.", "CosmosDBTriggerJavascript_description": "Funzione JavaScript che verrà eseguita ogni volta che vengono modificati documenti in una raccolta di documenti.", "cosmosDBIn_collectionName_help": "Nome della raccolta da monitorare.", + "cosmosDBIn_containerName_help": "Nome del contenitore da monitorare.", "cosmosDBIn_collectionName_label": "Nome della raccolta", + "cosmosDBIn_containerName_label": "Nome del contenitore", "cosmosDBIn_connection_help": "Nome dell'impostazione app contenente la stringa di connessione al servizio che include la raccolta da monitorare.", "cosmosDBIn_connection_label": "Connessione all'account Cosmos DB", "cosmosDBIn_databaseName_help": "Nome del database Cosmos DB che include la raccolta da monitorare.", "cosmosDBIn_databaseName_label": "Nome database", - "cosmosDBIn_leaseCollectionName_help": "Nome della raccolta per l'archiviazione dei lease.", + "cosmosDBIn_leaseContainerName_help": "Nome del contenitore in cui archiviare i lease.", "cosmosDBIn_leaseCollectionName_label": "Nome della raccolta per i lease", + "cosmosDBIn_leaseContainerName_label": "Nome del contenitore per i lease", "cosmosDBIn_leaseDatabaseName_help": "Nome del database che include la raccolta per l'archiviazione dei lease.", "cosmosDBIn_leaseDatabaseName_label": "Nome del database per i lease", "cosmosDBIn_name_help": "Nome usato per identificare questa associazione nel codice", @@ -484,7 +488,9 @@ "IoTHubServiceBusTopicTriggerCSharp_description": "Funzione C# che verrà eseguita ogni volta che un messaggio viene aggiunto a un argomento del bus di servizio specificato", "temp_category_IoTHub": "Hub IoT", "cosmosDBIn_createIfNotExists_help": "Verifica l'esistenza e crea automaticamente la raccolta di lease.", + "cosmosDBIn_createContainerIfNotExists_help": "Verifica l'esistenza e crea automaticamente il contenitore di lease.", "cosmosDBIn_createIfNotExists_label": "Crea raccolta di lease se non esiste", + "cosmosDBIn_createContainerIfNotExists_label": "Creare un contenitore di lease se non esiste", "EventGridTriggerJavascript_description": "Funzione JavaScript che verrà eseguita ogni volta che una griglia di eventi riceve un nuovo evento", "Identity_help": "Identità che verrà usata per eseguire l'azione.", "Identity_label": "Identità", @@ -528,6 +534,8 @@ "DurableFunctionsHttpStart_description": "Funzione che verrà attivata ogni volta che viene ricevuta una richiesta HTTP per l'esecuzione di una funzione dell'agente di orchestrazione.", "temp_category_durableFunctions": "Durable Functions", "BlobTrigger_name": "Trigger BLOB", + "blobTrigger_connection_label": "Connessione dell'account di archiviazione", + "blobTrigger_connection_help": "Nome dell'impostazione dell'app contenente la stringa di connessione dell'account di archiviazione", "EventHubTrigger_name": "Trigger hub eventi", "HttpTrigger_name": "Trigger HTTP", "OutlookMessageWebhookCreator_name": "Creazione sottoscrizione webhook per messaggi di Outlook", @@ -596,10 +604,50 @@ "kafka_consumergroup_help": "Gruppo di consumer", "kafka_consumergroup_label": "Gruppo di consumer", "SqlInputBinding_description": "Una funzione che verrà eseguita su un trigger HTTP e restituisce i risultati di una query SQL specificata.", - "SqlOuputBinding_description": "Una funzione che verrà eseguita su un trigger HTTP e che accetta un elenco di righe e le aggiunge alla tabella utente (se una riga non esiste già, viene aggiunta. Se esiste già, viene aggiornata)." + "SqlOuputBinding_description": "Una funzione che verrà eseguita su un trigger HTTP e che accetta un elenco di righe e le aggiunge alla tabella utente (se una riga non esiste già, viene aggiunta. Se esiste già, viene aggiornata).", + "authenticationEvents_description": "Trigger per estensioni personalizzate di eventi di Autenticazione di Azure AD. Consente di concentrarsi sulla logica di business.", + "authenticationEvents_trigger_displayName": "Trigger eventi di autenticazione", + "authenticationEvent_trigger_name_label": "Nome", + "authenticationEvent_trigger_name_help": "Trigger per estensioni personalizzate di eventi di Autenticazione di Azure AD. Consente di concentrarsi sulla logica di business. Per altre informazioni, vedere /~https://github.com/Azure/microsoft-azure-webJobs-extensions-authentication-events", + "authenticationEvent_trigger_IssuanceStartVer_label": "Versione di OnTokenIssuanceStart", + "authenticationEvent_trigger_IssuanceStartVer_help": "Versione dello schema API per l'evento OnTokenIssuanceStart", + "sqlIn_displayName": "Binding di input di Azure SQL", + "sqlIn_name_label": "Nome", + "sqlIn_name_help": "Nome usato per identificare questo binding nel codice.", + "sqlIn_commandText_label": "Testo comando SQL", + "sqlIn_commandText_help": "Comando o nome della query Transact-SQL della stored procedure eseguita dal binding.", + "sqlIn_commandType_label": "Text o StoredProcedure", + "sqlIn_commandType_help": "Tipo di comando usato per identificare il tipo di valore di commandText, ovvero Text per una query T-SQL o StoredProcedure per un stored procedure.", + "sqlIn_parameters_label": "Parametri", + "sqlIn_parameters_help": "Valori dei parametri passati al comando durante l'esecuzione come singola stringa. Devono seguire il formato '@param1=param1,@param2=param2'.", + "sql_connection_label": "Impostazione della stringa di connessione SQL", + "sql_connection_help": "Nome dell'impostazione dell'app contenente la stringa di connessione del binding di Azure SQL.", + "sqlOut_displayName": "Binding di output di Azure SQL", + "sqlOut_name_label": "Nome", + "sqlOut_name_help": "Nome della variabile che rappresenta l'entità nel codice di funzione.", + "sqlOut_commandText_label": "Nome tabella", + "sqlOut_commandText_help": "Nome della tabella sottoposta a upsert dal binding.", + "sqlTrigger_displayName": "Binding attivazione Azure SQL", + "sqlTrigger_name_label": "Nome", + "sqlTrigger_name_help": "Nome del parametro a cui è associato il trigger.", + "sqlTrigger_tableName_label": "Nome tabella", + "sqlTrigger_tableName_help": "Il nome della tabella che il trigger dovrà monitorare.", + "app_filename_label": "Specifica un nome del file per la funzione", + "app_filename_help": "Questo è il file in cui si vuole salvare il codice della funzione", + "trigger_functionName_help": "Nome della funzione da creare", + "trigger_functionName_label": "Specifica un nome di funzione", + "app_selected_filename_label": "Nome del file", + "app_selected_filename_help": "Questo è il file a cui si vuole aggiungere la funzione", + "blueprint_filename_label": "Nome del file di funzione del progetto", + "blueprint_filename_help": "Questo è il nome del file in cui si vuole salvare il codice del progetto", + "blueprint_selected_filename_help": "Nome del file in cui si vuole aggiungere una funzione al progetto esistente", + "blueprint_selected_filename_label": "Seleziona un file da salvare per la funzione di progetto", + "blueprint_fileName_errorText": "Nome del file non valido", + "app_filename_errorText": "Nome del file non valido" }, "en": { "eventHubOut_connection_help": "The name of the app setting containing your Event Hub connection string. The connection string must have Send permissions.", + "cosmosDBIn_leaseCollectionName_help": "The name of the collection in which the lease is stored", "eventHubOut_connection_label": "Event Hub connection", "eventHubOut_displayName": "Azure Event Hubs", "eventHubOut_name_help": "The name used to identify this binding in your code", @@ -1068,13 +1116,16 @@ "CosmosDBTriggerCSharp_description": "A C# function that will be run whenever documents change in a document collection.", "CosmosDBTriggerJavascript_description": "A JavaScript function that will be run whenever documents change in a document collection.", "cosmosDBIn_collectionName_help": "Name of the collection to be monitored.", + "cosmosDBIn_containerName_help": "Name of the container to be monitored.", "cosmosDBIn_collectionName_label": "Collection name", + "cosmosDBIn_containerName_label": "Container name", "cosmosDBIn_connection_help": "The name of the App Setting containing the connection string to the service that contains the collection to be monitored.", "cosmosDBIn_connection_label": "Cosmos DB account connection", - "cosmosDBIn_databaseName_help": "Name of the Cosmos DB database that includes the collection to be monitored.", + "cosmosDBIn_databaseName_help": "Name of the Cosmos DB database that includes the container to be monitored.", "cosmosDBIn_databaseName_label": "Database name", - "cosmosDBIn_leaseCollectionName_help": "Name of the collection to store the leases.", + "cosmosDBIn_leaseContainerName_help": "Name of the container to store the leases.", "cosmosDBIn_leaseCollectionName_label": "Collection name for leases", + "cosmosDBIn_leaseContainerName_label": "Container name for leases", "cosmosDBIn_leaseDatabaseName_help": "Name of the database that includes the collection to store the leases.", "cosmosDBIn_leaseDatabaseName_label": "Database name for leases", "cosmosDBIn_name_help": "The name used to identify this binding in your code", @@ -1083,7 +1134,9 @@ "IoTHubServiceBusTopicTriggerCSharp_description": "A C# function that will be run whenever a message is added to the specified Service Bus topic", "temp_category_IoTHub": "IoT Hub", "cosmosDBIn_createIfNotExists_help": "Checks for existence and automatically creates the leases collection.", + "cosmosDBIn_createContainerIfNotExists_help": "Checks for existence and automatically creates the leases container.", "cosmosDBIn_createIfNotExists_label": "Create lease collection if it does not exist", + "cosmosDBIn_createContainerIfNotExists_label": "Create lease container if it does not exist", "EventGridTriggerJavascript_description": "A JavaScript function that will be run whenever an event grid receives a new event", "Identity_help": "The identity that will be used to perform the action.", "Identity_label": "Identity", @@ -1127,6 +1180,8 @@ "DurableFunctionsHttpStart_description": "A function that will trigger whenever it receives an HTTP request to execute an orchestrator function.", "temp_category_durableFunctions": "Durable Functions", "BlobTrigger_name": "Blob trigger", + "blobTrigger_connection_label": "Storage account connection", + "blobTrigger_connection_help": "The name of the app setting containing your storage account connection string", "EventHubTrigger_name": "Event Hub trigger", "HttpTrigger_name": "HTTP trigger", "OutlookMessageWebhookCreator_name": "Outlook message webhook subscription creator", @@ -1195,6 +1250,45 @@ "kafka_consumergroup_help": "Consumer Group", "kafka_consumergroup_label": "Consumer Group", "SqlInputBinding_description": "A function that will be run on an HTTP trigger and returns the results of a provided SQL query.", - "SqlOuputBinding_description": "A function that will be run on an HTTP trigger and takes a list of rows and upserts them into the user table (i.e. If a row doesn't already exist, it is added. If it does, it is updated)." + "SqlOuputBinding_description": "A function that will be run on an HTTP trigger and takes a list of rows and upserts them into the user table (i.e. If a row doesn't already exist, it is added. If it does, it is updated).", + "authenticationEvents_description": "Triggers for Azure AD Authentication event custom extensions. Lets you focus on your business logic.", + "authenticationEvents_trigger_displayName": "Authentication Events Trigger", + "authenticationEvent_trigger_name_label": "Name", + "authenticationEvent_trigger_name_help": "Triggers for Azure AD Authentication event custom extensions. Lets you focus on your business logic. For more information please see /~https://github.com/Azure/microsoft-azure-webJobs-extensions-authentication-events", + "authenticationEvent_trigger_IssuanceStartVer_label": "OnTokenIssuanceStart Version", + "authenticationEvent_trigger_IssuanceStartVer_help": "API Schema Version for OnTokenIssuanceStart Event", + "sqlIn_displayName": "Azure SQL Input Binding", + "sqlIn_name_label": "Name", + "sqlIn_name_help": "The name used to identify this binding in your code.", + "sqlIn_commandText_label": "SQL Command Text", + "sqlIn_commandText_help": "The Transact-SQL query command or name of the stored procedure executed by the binding.", + "sqlIn_commandType_label": "Text or StoredProcedure", + "sqlIn_commandType_help": "The command type used to identify what type of value commandText is, either Text for a T-SQL query or StoredProcedure for a stored procedure.", + "sqlIn_parameters_label": "Parameters", + "sqlIn_parameters_help": "Parameter values passed to the command during execution as a single string. Must follow the format `@param1=param1,@param2=param2`.", + "sql_connection_label": "SQL Connection string setting", + "sql_connection_help": "The name of the app setting containing your Azure SQL binding connection string.", + "sqlOut_displayName": "Azure SQL Output Binding", + "sqlOut_name_label": "Name", + "sqlOut_name_help": "The name of the variable that represents the entity in function code.", + "sqlOut_commandText_label": "Table Name", + "sqlOut_commandText_help": "The name of the table being upserted to by the binding.", + "sqlTrigger_displayName": "Azure SQL Trigger Binding", + "sqlTrigger_name_label": "Name", + "sqlTrigger_name_help": "The name of the parameter that the trigger binds to.", + "sqlTrigger_tableName_label": "Table Name", + "sqlTrigger_tableName_help": "The name of the table being monitored by the trigger.", + "app_filename_label": "Provide a filename for your function", + "app_filename_help": "This is the file where you want to save your function code", + "trigger_functionName_help": "Name of the function you want to create", + "trigger_functionName_label": "Provide a function name", + "app_selected_filename_label": "File Name", + "app_selected_filename_help": "This is the file to which you want to add your function", + "blueprint_filename_label": "Blueprint function file Name", + "blueprint_filename_help": "This is the name of the file where you want to save your blueprint code", + "blueprint_selected_filename_help": "This is the name of the file where you want to add a function to the existing blueprint", + "blueprint_selected_filename_label": "Select a file to save for your blueprint function", + "blueprint_fileName_errorText": "Invalid fileName", + "app_filename_errorText": "Invalid fileName" } } \ No newline at end of file diff --git a/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.ja-JP.json b/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.ja-JP.json index c0f97b00d..5d58d4a1e 100644 --- a/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.ja-JP.json +++ b/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.ja-JP.json @@ -1,6 +1,7 @@ { "lang": { "eventHubOut_connection_help": "イベント ハブの接続文字列が含まれるアプリ設定の名前です。接続文字列には、送信アクセス許可が必要です。", + "cosmosDBIn_leaseCollectionName_help": "リースが格納されているコレクションの名前", "eventHubOut_connection_label": "イベント ハブ接続", "eventHubOut_displayName": "Azure Event Hubs", "eventHubOut_name_help": "コードでこのバインドの特定に使用する名前", @@ -469,13 +470,16 @@ "CosmosDBTriggerCSharp_description": "ドキュメント コレクションのドキュメントが変更されるたびに実行される C# 関数。", "CosmosDBTriggerJavascript_description": "ドキュメント コレクションのドキュメントが変更されるたびに実行される JavaScript 関数。", "cosmosDBIn_collectionName_help": "監視対象のコレクションの名前。", + "cosmosDBIn_containerName_help": "監視対象のコンテナーの名前。", "cosmosDBIn_collectionName_label": "コレクション名", + "cosmosDBIn_containerName_label": "コンテナー名", "cosmosDBIn_connection_help": "監視対象のコレクションが格納されているサービスへの接続文字列を格納しているアプリ設定の名前。", "cosmosDBIn_connection_label": "Cosmos DB アカウント接続", - "cosmosDBIn_databaseName_help": "監視対象のコレクションが含まれている Cosmos DB データベースの名前。", + "cosmosDBIn_databaseName_help": "監視するコンテナーが含まれている、Cosmos DB データベースの名前。", "cosmosDBIn_databaseName_label": "データベース名", - "cosmosDBIn_leaseCollectionName_help": "リースを格納するコレクションの名前。", + "cosmosDBIn_leaseContainerName_help": "リースを格納するコンテナーの名前。", "cosmosDBIn_leaseCollectionName_label": "リースのコレクション名", + "cosmosDBIn_leaseContainerName_label": "リースのコンテナー名", "cosmosDBIn_leaseDatabaseName_help": "リースを格納するコレクションを含むデータベースの名前。", "cosmosDBIn_leaseDatabaseName_label": "リースのデータベース名", "cosmosDBIn_name_help": "コードでこのバインドの特定に使用する名前", @@ -484,7 +488,9 @@ "IoTHubServiceBusTopicTriggerCSharp_description": "指定した Service Bus トピックにメッセージが追加されるたびに実行される C# 関数", "temp_category_IoTHub": "IoT Hub", "cosmosDBIn_createIfNotExists_help": "存在をチェックし、リースのコレクションを自動的に作成します。", + "cosmosDBIn_createContainerIfNotExists_help": "存在をチェックし、リースのコンテナーを自動的に作成します。", "cosmosDBIn_createIfNotExists_label": "リースのコレクションが存在しない場合、作成します", + "cosmosDBIn_createContainerIfNotExists_label": "リースのコンテナーが存在しない場合、作成します", "EventGridTriggerJavascript_description": "イベント グリッドが新しいイベントを受信するたびに実行される JavaScript 関数", "Identity_help": "アクションを実行するために使用される ID です。", "Identity_label": "ID", @@ -528,6 +534,8 @@ "DurableFunctionsHttpStart_description": "オーケストレーター関数を実行するよう求める HTTP 要求を受信するたびにトリガーする関数です。", "temp_category_durableFunctions": "Durable Functions", "BlobTrigger_name": "BLOB トリガー", + "blobTrigger_connection_label": "ストレージ アカウント接続", + "blobTrigger_connection_help": "ストレージ アカウント接続文字列が含まれているアプリ設定の名前。", "EventHubTrigger_name": "Event Hub トリガー", "HttpTrigger_name": "HTTP トリガー", "OutlookMessageWebhookCreator_name": "Outlook メッセージの webhook サブスクリプション作成者", @@ -596,10 +604,50 @@ "kafka_consumergroup_help": "コンシューマー グループ", "kafka_consumergroup_label": "コンシューマー グループ", "SqlInputBinding_description": "HTTP トリガーで実行され、指定された SQL クエリの結果を返す関数。", - "SqlOuputBinding_description": "HTTP トリガーで実行され、行の一覧を取得して、ユーザー テーブルにアップサートする関数 (つまり、行がまだ存在しない場合は追加されます。存在する場合は更新されます)。" + "SqlOuputBinding_description": "HTTP トリガーで実行され、行の一覧を取得して、ユーザー テーブルにアップサートする関数 (つまり、行がまだ存在しない場合は追加されます。存在する場合は更新されます)。", + "authenticationEvents_description": "Azure AD Authentication イベント カスタム拡張機能のトリガー。ビジネス ロジックに集中できます。", + "authenticationEvents_trigger_displayName": "Authentication イベント トリガー", + "authenticationEvent_trigger_name_label": "名前", + "authenticationEvent_trigger_name_help": "Azure AD Authentication イベント カスタム拡張機能のトリガー。ビジネス ロジックに集中できます。詳細については、/~https://github.com/Azure/microsoft-azure-webJobs-extensions-authentication-events をご覧ください", + "authenticationEvent_trigger_IssuanceStartVer_label": "OnTokenIssuanceStart バージョン", + "authenticationEvent_trigger_IssuanceStartVer_help": "OnTokenIssuanceStart イベントの API スキーマのバージョン", + "sqlIn_displayName": "Azure SQL 入力バインド", + "sqlIn_name_label": "名前", + "sqlIn_name_help": "コードでこのバインドの特定に使用する名前。", + "sqlIn_commandText_label": "SQL コマンド テキスト", + "sqlIn_commandText_help": "バインドによって実行されるストアド プロシージャの Transact-SQL クエリ コマンドまたは名前。", + "sqlIn_commandType_label": "Text または StoredProcedure", + "sqlIn_commandType_help": "commandText が値の型を識別するために使用されるコマンドの種類です。T-SQL クエリの場合は Text、ストアド プロシージャの場合は StoredProcedure のいずれかです。", + "sqlIn_parameters_label": "パラメーター", + "sqlIn_parameters_help": "実行中にコマンドに渡されるパラメーター値を 1 つの文字列として指定します。'@param1=param1,@param2=param2' の形式にする必要があります。", + "sql_connection_label": "SQL 接続文字列の設定", + "sql_connection_help": "Azure SQL バインド接続文字列を含むアプリ設定の名前。", + "sqlOut_displayName": "Azure SQL 出力バインド", + "sqlOut_name_label": "名前", + "sqlOut_name_help": "関数コード内のエンティティを表す変数の名前。", + "sqlOut_commandText_label": "テーブル名", + "sqlOut_commandText_help": "バインドによってアップサートされるテーブルの名前。", + "sqlTrigger_displayName": "Azure SQL トリガー バインディング", + "sqlTrigger_name_label": "名前", + "sqlTrigger_name_help": "トリガーがバインドするパラメーターの名前。", + "sqlTrigger_tableName_label": "テーブル名", + "sqlTrigger_tableName_help": "トリガーによって監視されるテーブルの名前。", + "app_filename_label": "関数のファイル名を指定", + "app_filename_help": "これは関数コードを保存するファイルです", + "trigger_functionName_help": "作成する関数の名前です", + "trigger_functionName_label": "関数名を指定", + "app_selected_filename_label": "ファイル名", + "app_selected_filename_help": "これは関数を追加するファイルです", + "blueprint_filename_label": "ブループリント関数ファイル名", + "blueprint_filename_help": "これは、ブループリント コードを保存するファイルの名前です", + "blueprint_selected_filename_help": "これは、既存のブループリントに関数を追加するファイルの名前です", + "blueprint_selected_filename_label": "ブループリント関数用に保存するファイルを選択します", + "blueprint_fileName_errorText": "ファイル名が無効です", + "app_filename_errorText": "ファイル名が無効です" }, "en": { "eventHubOut_connection_help": "The name of the app setting containing your Event Hub connection string. The connection string must have Send permissions.", + "cosmosDBIn_leaseCollectionName_help": "The name of the collection in which the lease is stored", "eventHubOut_connection_label": "Event Hub connection", "eventHubOut_displayName": "Azure Event Hubs", "eventHubOut_name_help": "The name used to identify this binding in your code", @@ -1068,13 +1116,16 @@ "CosmosDBTriggerCSharp_description": "A C# function that will be run whenever documents change in a document collection.", "CosmosDBTriggerJavascript_description": "A JavaScript function that will be run whenever documents change in a document collection.", "cosmosDBIn_collectionName_help": "Name of the collection to be monitored.", + "cosmosDBIn_containerName_help": "Name of the container to be monitored.", "cosmosDBIn_collectionName_label": "Collection name", + "cosmosDBIn_containerName_label": "Container name", "cosmosDBIn_connection_help": "The name of the App Setting containing the connection string to the service that contains the collection to be monitored.", "cosmosDBIn_connection_label": "Cosmos DB account connection", - "cosmosDBIn_databaseName_help": "Name of the Cosmos DB database that includes the collection to be monitored.", + "cosmosDBIn_databaseName_help": "Name of the Cosmos DB database that includes the container to be monitored.", "cosmosDBIn_databaseName_label": "Database name", - "cosmosDBIn_leaseCollectionName_help": "Name of the collection to store the leases.", + "cosmosDBIn_leaseContainerName_help": "Name of the container to store the leases.", "cosmosDBIn_leaseCollectionName_label": "Collection name for leases", + "cosmosDBIn_leaseContainerName_label": "Container name for leases", "cosmosDBIn_leaseDatabaseName_help": "Name of the database that includes the collection to store the leases.", "cosmosDBIn_leaseDatabaseName_label": "Database name for leases", "cosmosDBIn_name_help": "The name used to identify this binding in your code", @@ -1083,7 +1134,9 @@ "IoTHubServiceBusTopicTriggerCSharp_description": "A C# function that will be run whenever a message is added to the specified Service Bus topic", "temp_category_IoTHub": "IoT Hub", "cosmosDBIn_createIfNotExists_help": "Checks for existence and automatically creates the leases collection.", + "cosmosDBIn_createContainerIfNotExists_help": "Checks for existence and automatically creates the leases container.", "cosmosDBIn_createIfNotExists_label": "Create lease collection if it does not exist", + "cosmosDBIn_createContainerIfNotExists_label": "Create lease container if it does not exist", "EventGridTriggerJavascript_description": "A JavaScript function that will be run whenever an event grid receives a new event", "Identity_help": "The identity that will be used to perform the action.", "Identity_label": "Identity", @@ -1127,6 +1180,8 @@ "DurableFunctionsHttpStart_description": "A function that will trigger whenever it receives an HTTP request to execute an orchestrator function.", "temp_category_durableFunctions": "Durable Functions", "BlobTrigger_name": "Blob trigger", + "blobTrigger_connection_label": "Storage account connection", + "blobTrigger_connection_help": "The name of the app setting containing your storage account connection string", "EventHubTrigger_name": "Event Hub trigger", "HttpTrigger_name": "HTTP trigger", "OutlookMessageWebhookCreator_name": "Outlook message webhook subscription creator", @@ -1195,6 +1250,45 @@ "kafka_consumergroup_help": "Consumer Group", "kafka_consumergroup_label": "Consumer Group", "SqlInputBinding_description": "A function that will be run on an HTTP trigger and returns the results of a provided SQL query.", - "SqlOuputBinding_description": "A function that will be run on an HTTP trigger and takes a list of rows and upserts them into the user table (i.e. If a row doesn't already exist, it is added. If it does, it is updated)." + "SqlOuputBinding_description": "A function that will be run on an HTTP trigger and takes a list of rows and upserts them into the user table (i.e. If a row doesn't already exist, it is added. If it does, it is updated).", + "authenticationEvents_description": "Triggers for Azure AD Authentication event custom extensions. Lets you focus on your business logic.", + "authenticationEvents_trigger_displayName": "Authentication Events Trigger", + "authenticationEvent_trigger_name_label": "Name", + "authenticationEvent_trigger_name_help": "Triggers for Azure AD Authentication event custom extensions. Lets you focus on your business logic. For more information please see /~https://github.com/Azure/microsoft-azure-webJobs-extensions-authentication-events", + "authenticationEvent_trigger_IssuanceStartVer_label": "OnTokenIssuanceStart Version", + "authenticationEvent_trigger_IssuanceStartVer_help": "API Schema Version for OnTokenIssuanceStart Event", + "sqlIn_displayName": "Azure SQL Input Binding", + "sqlIn_name_label": "Name", + "sqlIn_name_help": "The name used to identify this binding in your code.", + "sqlIn_commandText_label": "SQL Command Text", + "sqlIn_commandText_help": "The Transact-SQL query command or name of the stored procedure executed by the binding.", + "sqlIn_commandType_label": "Text or StoredProcedure", + "sqlIn_commandType_help": "The command type used to identify what type of value commandText is, either Text for a T-SQL query or StoredProcedure for a stored procedure.", + "sqlIn_parameters_label": "Parameters", + "sqlIn_parameters_help": "Parameter values passed to the command during execution as a single string. Must follow the format `@param1=param1,@param2=param2`.", + "sql_connection_label": "SQL Connection string setting", + "sql_connection_help": "The name of the app setting containing your Azure SQL binding connection string.", + "sqlOut_displayName": "Azure SQL Output Binding", + "sqlOut_name_label": "Name", + "sqlOut_name_help": "The name of the variable that represents the entity in function code.", + "sqlOut_commandText_label": "Table Name", + "sqlOut_commandText_help": "The name of the table being upserted to by the binding.", + "sqlTrigger_displayName": "Azure SQL Trigger Binding", + "sqlTrigger_name_label": "Name", + "sqlTrigger_name_help": "The name of the parameter that the trigger binds to.", + "sqlTrigger_tableName_label": "Table Name", + "sqlTrigger_tableName_help": "The name of the table being monitored by the trigger.", + "app_filename_label": "Provide a filename for your function", + "app_filename_help": "This is the file where you want to save your function code", + "trigger_functionName_help": "Name of the function you want to create", + "trigger_functionName_label": "Provide a function name", + "app_selected_filename_label": "File Name", + "app_selected_filename_help": "This is the file to which you want to add your function", + "blueprint_filename_label": "Blueprint function file Name", + "blueprint_filename_help": "This is the name of the file where you want to save your blueprint code", + "blueprint_selected_filename_help": "This is the name of the file where you want to add a function to the existing blueprint", + "blueprint_selected_filename_label": "Select a file to save for your blueprint function", + "blueprint_fileName_errorText": "Invalid fileName", + "app_filename_errorText": "Invalid fileName" } } \ No newline at end of file diff --git a/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.json b/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.json index c928b4cb3..1f4a05fd1 100644 --- a/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.json +++ b/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.json @@ -1,6 +1,7 @@ { "en": { "eventHubOut_connection_help": "The name of the app setting containing your Event Hub connection string. The connection string must have Send permissions.", + "cosmosDBIn_leaseCollectionName_help": "The name of the collection in which the lease is stored", "eventHubOut_connection_label": "Event Hub connection", "eventHubOut_displayName": "Azure Event Hubs", "eventHubOut_name_help": "The name used to identify this binding in your code", @@ -469,13 +470,16 @@ "CosmosDBTriggerCSharp_description": "A C# function that will be run whenever documents change in a document collection.", "CosmosDBTriggerJavascript_description": "A JavaScript function that will be run whenever documents change in a document collection.", "cosmosDBIn_collectionName_help": "Name of the collection to be monitored.", + "cosmosDBIn_containerName_help": "Name of the container to be monitored.", "cosmosDBIn_collectionName_label": "Collection name", + "cosmosDBIn_containerName_label": "Container name", "cosmosDBIn_connection_help": "The name of the App Setting containing the connection string to the service that contains the collection to be monitored.", "cosmosDBIn_connection_label": "Cosmos DB account connection", - "cosmosDBIn_databaseName_help": "Name of the Cosmos DB database that includes the collection to be monitored.", + "cosmosDBIn_databaseName_help": "Name of the Cosmos DB database that includes the container to be monitored.", "cosmosDBIn_databaseName_label": "Database name", - "cosmosDBIn_leaseCollectionName_help": "Name of the collection to store the leases.", + "cosmosDBIn_leaseContainerName_help": "Name of the container to store the leases.", "cosmosDBIn_leaseCollectionName_label": "Collection name for leases", + "cosmosDBIn_leaseContainerName_label": "Container name for leases", "cosmosDBIn_leaseDatabaseName_help": "Name of the database that includes the collection to store the leases.", "cosmosDBIn_leaseDatabaseName_label": "Database name for leases", "cosmosDBIn_name_help": "The name used to identify this binding in your code", @@ -484,7 +488,9 @@ "IoTHubServiceBusTopicTriggerCSharp_description": "A C# function that will be run whenever a message is added to the specified Service Bus topic", "temp_category_IoTHub": "IoT Hub", "cosmosDBIn_createIfNotExists_help": "Checks for existence and automatically creates the leases collection.", + "cosmosDBIn_createContainerIfNotExists_help": "Checks for existence and automatically creates the leases container.", "cosmosDBIn_createIfNotExists_label": "Create lease collection if it does not exist", + "cosmosDBIn_createContainerIfNotExists_label": "Create lease container if it does not exist", "EventGridTriggerJavascript_description": "A JavaScript function that will be run whenever an event grid receives a new event", "Identity_help": "The identity that will be used to perform the action.", "Identity_label": "Identity", @@ -528,6 +534,8 @@ "DurableFunctionsHttpStart_description": "A function that will trigger whenever it receives an HTTP request to execute an orchestrator function.", "temp_category_durableFunctions": "Durable Functions", "BlobTrigger_name": "Blob trigger", + "blobTrigger_connection_label": "Storage account connection", + "blobTrigger_connection_help": "The name of the app setting containing your storage account connection string", "EventHubTrigger_name": "Event Hub trigger", "HttpTrigger_name": "HTTP trigger", "OutlookMessageWebhookCreator_name": "Outlook message webhook subscription creator", @@ -596,6 +604,45 @@ "kafka_consumergroup_help": "Consumer Group", "kafka_consumergroup_label": "Consumer Group", "SqlInputBinding_description": "A function that will be run on an HTTP trigger and returns the results of a provided SQL query.", - "SqlOuputBinding_description": "A function that will be run on an HTTP trigger and takes a list of rows and upserts them into the user table (i.e. If a row doesn't already exist, it is added. If it does, it is updated)." + "SqlOuputBinding_description": "A function that will be run on an HTTP trigger and takes a list of rows and upserts them into the user table (i.e. If a row doesn't already exist, it is added. If it does, it is updated).", + "authenticationEvents_description": "Triggers for Azure AD Authentication event custom extensions. Lets you focus on your business logic.", + "authenticationEvents_trigger_displayName": "Authentication Events Trigger", + "authenticationEvent_trigger_name_label": "Name", + "authenticationEvent_trigger_name_help": "Triggers for Azure AD Authentication event custom extensions. Lets you focus on your business logic. For more information please see /~https://github.com/Azure/microsoft-azure-webJobs-extensions-authentication-events", + "authenticationEvent_trigger_IssuanceStartVer_label": "OnTokenIssuanceStart Version", + "authenticationEvent_trigger_IssuanceStartVer_help": "API Schema Version for OnTokenIssuanceStart Event", + "sqlIn_displayName": "Azure SQL Input Binding", + "sqlIn_name_label": "Name", + "sqlIn_name_help": "The name used to identify this binding in your code.", + "sqlIn_commandText_label": "SQL Command Text", + "sqlIn_commandText_help": "The Transact-SQL query command or name of the stored procedure executed by the binding.", + "sqlIn_commandType_label": "Text or StoredProcedure", + "sqlIn_commandType_help": "The command type used to identify what type of value commandText is, either Text for a T-SQL query or StoredProcedure for a stored procedure.", + "sqlIn_parameters_label": "Parameters", + "sqlIn_parameters_help": "Parameter values passed to the command during execution as a single string. Must follow the format `@param1=param1,@param2=param2`.", + "sql_connection_label": "SQL Connection string setting", + "sql_connection_help": "The name of the app setting containing your Azure SQL binding connection string.", + "sqlOut_displayName": "Azure SQL Output Binding", + "sqlOut_name_label": "Name", + "sqlOut_name_help": "The name of the variable that represents the entity in function code.", + "sqlOut_commandText_label": "Table Name", + "sqlOut_commandText_help": "The name of the table being upserted to by the binding.", + "sqlTrigger_displayName": "Azure SQL Trigger Binding", + "sqlTrigger_name_label": "Name", + "sqlTrigger_name_help": "The name of the parameter that the trigger binds to.", + "sqlTrigger_tableName_label": "Table Name", + "sqlTrigger_tableName_help": "The name of the table being monitored by the trigger.", + "app_filename_label": "Provide a filename for your function", + "app_filename_help": "This is the file where you want to save your function code", + "trigger_functionName_help": "Name of the function you want to create", + "trigger_functionName_label": "Provide a function name", + "app_selected_filename_label": "File Name", + "app_selected_filename_help": "This is the file to which you want to add your function", + "blueprint_filename_label": "Blueprint function file Name", + "blueprint_filename_help": "This is the name of the file where you want to save your blueprint code", + "blueprint_selected_filename_help": "This is the name of the file where you want to add a function to the existing blueprint", + "blueprint_selected_filename_label": "Select a file to save for your blueprint function", + "blueprint_fileName_errorText": "Invalid fileName", + "app_filename_errorText": "Invalid fileName" } } \ No newline at end of file diff --git a/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.ko-KR.json b/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.ko-KR.json index c0b09d34d..926cb11c8 100644 --- a/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.ko-KR.json +++ b/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.ko-KR.json @@ -1,6 +1,7 @@ { "lang": { "eventHubOut_connection_help": "이벤트 허브 연결 문자열을 포함하는 앱 설정의 이름입니다. 이 연결 문자열에 보내기 권한이 있어야 합니다.", + "cosmosDBIn_leaseCollectionName_help": "임대가 저장되는 컬렉션의 이름입니다.", "eventHubOut_connection_label": "이벤트 허브 연결", "eventHubOut_displayName": "Azure Event Hubs", "eventHubOut_name_help": "코드에서 이 바인딩을 식별하는 데 사용되는 이름입니다.", @@ -469,13 +470,16 @@ "CosmosDBTriggerCSharp_description": "문서 컬렉션에서 문서가 변경될 때마다 실행되는 C# 함수입니다.", "CosmosDBTriggerJavascript_description": "문서 컬렉션에서 문서가 변경될 때마다 실행되는 JavaScript 함수입니다.", "cosmosDBIn_collectionName_help": "모니터링할 컬렉션의 이름입니다.", + "cosmosDBIn_containerName_help": "모니터링할 컨테이너의 이름입니다.", "cosmosDBIn_collectionName_label": "컬렉션 이름", + "cosmosDBIn_containerName_label": "컨테이너 이름", "cosmosDBIn_connection_help": "모니터링할 컬렉션이 포함된 서비스에 대한 연결 문자열을 포함하는 앱 설정의 이름입니다.", "cosmosDBIn_connection_label": "Cosmos DB 계정 연결", - "cosmosDBIn_databaseName_help": "모니터링할 컬렉션이 포함된 Cosmos DB 데이터베이스의 이름입니다.", + "cosmosDBIn_databaseName_help": "모니터링할 컨테이너가 포함된 Cosmos DB 데이터베이스의 이름입니다.", "cosmosDBIn_databaseName_label": "데이터베이스 이름", - "cosmosDBIn_leaseCollectionName_help": "임대를 저장하는 컬렉션의 이름입니다.", + "cosmosDBIn_leaseContainerName_help": "임대를 저장할 컨테이너의 이름입니다.", "cosmosDBIn_leaseCollectionName_label": "임대 컬렉션 이름", + "cosmosDBIn_leaseContainerName_label": "임대에 대한 컨테이너 이름", "cosmosDBIn_leaseDatabaseName_help": "임대를 저장하는 컬렉션이 포함된 데이터베이스의 이름입니다.", "cosmosDBIn_leaseDatabaseName_label": "임대 데이터베이스 이름", "cosmosDBIn_name_help": "코드에서 이 바인딩을 식별하는 데 사용되는 이름입니다.", @@ -484,7 +488,9 @@ "IoTHubServiceBusTopicTriggerCSharp_description": "지정된 Service Bus 항목에 메시지가 추가될 때마다 실행되는 C# 함수", "temp_category_IoTHub": "IoT Hub", "cosmosDBIn_createIfNotExists_help": "임대 컬렉션이 있는지 확인하고 자동으로 만듭니다.", + "cosmosDBIn_createContainerIfNotExists_help": "존재 여부가 확인되고 임대 컨테이너가 자동으로 만들어집니다.", "cosmosDBIn_createIfNotExists_label": "임대 컬렉션이 없는 경우 만들기", + "cosmosDBIn_createContainerIfNotExists_label": "임대 컨테이너가 없는 경우 만들기", "EventGridTriggerJavascript_description": "이벤트 표에서 새 이벤트를 받을 때마다 실행되는 JavaScript 함수", "Identity_help": "작업을 수행하는 데 사용될 ID입니다.", "Identity_label": "ID", @@ -528,6 +534,8 @@ "DurableFunctionsHttpStart_description": "오케스트레이터 함수를 실행하라는 HTTP 요청을 받을 때마다 트리거되는 함수입니다.", "temp_category_durableFunctions": "Durable Functions", "BlobTrigger_name": "Blob 트리거", + "blobTrigger_connection_label": "스토리지 계정 연결", + "blobTrigger_connection_help": "스토리지 계정 연결 문자열을 포함하는 앱 설정의 이름", "EventHubTrigger_name": "Event Hubs 트리거", "HttpTrigger_name": "HTTP 트리거", "OutlookMessageWebhookCreator_name": "Outlook 메시지 웹후크 구독 작성자", @@ -596,10 +604,50 @@ "kafka_consumergroup_help": "소비자 그룹", "kafka_consumergroup_label": "소비자 그룹", "SqlInputBinding_description": "HTTP 트리거에서 실행되고 제공된 SQL 쿼리의 결과를 반환하는 함수입니다.", - "SqlOuputBinding_description": "HTTP 트리거에서 실행되고 행 목록을 가져와서 사용자 테이블에 삽입하는 함수입니다(예: 행이 아직 없는 경우 추가됨). 이 경우 업데이트됩니다." + "SqlOuputBinding_description": "HTTP 트리거에서 실행되고 행 목록을 가져와서 사용자 테이블에 삽입하는 함수입니다(예: 행이 아직 없는 경우 추가됨). 이 경우 업데이트됩니다.", + "authenticationEvents_description": "Azure AD 인증 이벤트 사용자 지정 확장에 대한 트리거입니다. 비즈니스 논리에 집중할 수 있습니다.", + "authenticationEvents_trigger_displayName": "인증 이벤트 트리거", + "authenticationEvent_trigger_name_label": "이름", + "authenticationEvent_trigger_name_help": "Azure AD 인증 이벤트 사용자 지정 확장에 대한 트리거입니다. 비즈니스 논리에 집중할 수 있습니다. 자세한 내용은 /~https://github.com/Azure/microsoft-azure-webJobs-extensions-authentication-events 링크를 참조하세요.", + "authenticationEvent_trigger_IssuanceStartVer_label": "OnTokenIssuanceStart 버전", + "authenticationEvent_trigger_IssuanceStartVer_help": "OnTokenIssuanceStart 이벤트에 대한 API 스키마 버전", + "sqlIn_displayName": "Azure SQL 입력 바인딩", + "sqlIn_name_label": "이름", + "sqlIn_name_help": "코드에서 이 바인딩을 식별하는 데 사용되는 이름입니다.", + "sqlIn_commandText_label": "SQL 명령 텍스트", + "sqlIn_commandText_help": "Transact-SQL 쿼리 명령 또는 바인딩에 의해 실행되는 저장 프로시저의 이름입니다.", + "sqlIn_commandType_label": "텍스트 또는 StoredProcedure", + "sqlIn_commandType_help": "commandText의 값 형식이 T-SQL 쿼리의 텍스트인지 저장 프로시저의 StoredProcedure인지 식별하는 데 사용하는 명령 유형입니다.", + "sqlIn_parameters_label": "매개 변수", + "sqlIn_parameters_help": "실행하는 동안 명령에 단일 문자열로 전달되는 매개 변수 값입니다. '@param1=param1,@param2=param2' 형식을 따라야 합니다.", + "sql_connection_label": "SQL 연결 문자열 설정", + "sql_connection_help": "Azure SQL 바인딩 연결 문자열을 포함하는 앱 설정의 이름입니다.", + "sqlOut_displayName": "Azure SQL 출력 바인딩", + "sqlOut_name_label": "이름", + "sqlOut_name_help": "함수 코드의 엔터티를 나타내는 변수의 이름입니다.", + "sqlOut_commandText_label": "테이블 이름", + "sqlOut_commandText_help": "바인딩에 의해 upsert되는 테이블의 이름입니다.", + "sqlTrigger_displayName": "Azure SQL 트리거 바인딩", + "sqlTrigger_name_label": "이름", + "sqlTrigger_name_help": "트리거가 바인딩되는 매개 변수의 이름입니다.", + "sqlTrigger_tableName_label": "테이블 이름", + "sqlTrigger_tableName_help": "트리거에 의해 모니터링되는 테이블의 이름입니다.", + "app_filename_label": "함수의 파일 이름을 제공하세요", + "app_filename_help": "함수 코드를 저장하려는 파일입니다.", + "trigger_functionName_help": "만들려는 함수의 이름", + "trigger_functionName_label": "함수 이름을 제공하세요", + "app_selected_filename_label": "파일 이름", + "app_selected_filename_help": "함수를 추가하려는 파일입니다.", + "blueprint_filename_label": "청사진 함수 파일 이름", + "blueprint_filename_help": "청사진 코드를 저장하려는 파일의 이름입니다.", + "blueprint_selected_filename_help": "기존 청사진에 기능을 추가하려는 파일의 이름입니다.", + "blueprint_selected_filename_label": "청사진 함수에 저장할 파일 선택", + "blueprint_fileName_errorText": "잘못된 파일 이름", + "app_filename_errorText": "잘못된 파일 이름" }, "en": { "eventHubOut_connection_help": "The name of the app setting containing your Event Hub connection string. The connection string must have Send permissions.", + "cosmosDBIn_leaseCollectionName_help": "The name of the collection in which the lease is stored", "eventHubOut_connection_label": "Event Hub connection", "eventHubOut_displayName": "Azure Event Hubs", "eventHubOut_name_help": "The name used to identify this binding in your code", @@ -1068,13 +1116,16 @@ "CosmosDBTriggerCSharp_description": "A C# function that will be run whenever documents change in a document collection.", "CosmosDBTriggerJavascript_description": "A JavaScript function that will be run whenever documents change in a document collection.", "cosmosDBIn_collectionName_help": "Name of the collection to be monitored.", + "cosmosDBIn_containerName_help": "Name of the container to be monitored.", "cosmosDBIn_collectionName_label": "Collection name", + "cosmosDBIn_containerName_label": "Container name", "cosmosDBIn_connection_help": "The name of the App Setting containing the connection string to the service that contains the collection to be monitored.", "cosmosDBIn_connection_label": "Cosmos DB account connection", - "cosmosDBIn_databaseName_help": "Name of the Cosmos DB database that includes the collection to be monitored.", + "cosmosDBIn_databaseName_help": "Name of the Cosmos DB database that includes the container to be monitored.", "cosmosDBIn_databaseName_label": "Database name", - "cosmosDBIn_leaseCollectionName_help": "Name of the collection to store the leases.", + "cosmosDBIn_leaseContainerName_help": "Name of the container to store the leases.", "cosmosDBIn_leaseCollectionName_label": "Collection name for leases", + "cosmosDBIn_leaseContainerName_label": "Container name for leases", "cosmosDBIn_leaseDatabaseName_help": "Name of the database that includes the collection to store the leases.", "cosmosDBIn_leaseDatabaseName_label": "Database name for leases", "cosmosDBIn_name_help": "The name used to identify this binding in your code", @@ -1083,7 +1134,9 @@ "IoTHubServiceBusTopicTriggerCSharp_description": "A C# function that will be run whenever a message is added to the specified Service Bus topic", "temp_category_IoTHub": "IoT Hub", "cosmosDBIn_createIfNotExists_help": "Checks for existence and automatically creates the leases collection.", + "cosmosDBIn_createContainerIfNotExists_help": "Checks for existence and automatically creates the leases container.", "cosmosDBIn_createIfNotExists_label": "Create lease collection if it does not exist", + "cosmosDBIn_createContainerIfNotExists_label": "Create lease container if it does not exist", "EventGridTriggerJavascript_description": "A JavaScript function that will be run whenever an event grid receives a new event", "Identity_help": "The identity that will be used to perform the action.", "Identity_label": "Identity", @@ -1127,6 +1180,8 @@ "DurableFunctionsHttpStart_description": "A function that will trigger whenever it receives an HTTP request to execute an orchestrator function.", "temp_category_durableFunctions": "Durable Functions", "BlobTrigger_name": "Blob trigger", + "blobTrigger_connection_label": "Storage account connection", + "blobTrigger_connection_help": "The name of the app setting containing your storage account connection string", "EventHubTrigger_name": "Event Hub trigger", "HttpTrigger_name": "HTTP trigger", "OutlookMessageWebhookCreator_name": "Outlook message webhook subscription creator", @@ -1195,6 +1250,45 @@ "kafka_consumergroup_help": "Consumer Group", "kafka_consumergroup_label": "Consumer Group", "SqlInputBinding_description": "A function that will be run on an HTTP trigger and returns the results of a provided SQL query.", - "SqlOuputBinding_description": "A function that will be run on an HTTP trigger and takes a list of rows and upserts them into the user table (i.e. If a row doesn't already exist, it is added. If it does, it is updated)." + "SqlOuputBinding_description": "A function that will be run on an HTTP trigger and takes a list of rows and upserts them into the user table (i.e. If a row doesn't already exist, it is added. If it does, it is updated).", + "authenticationEvents_description": "Triggers for Azure AD Authentication event custom extensions. Lets you focus on your business logic.", + "authenticationEvents_trigger_displayName": "Authentication Events Trigger", + "authenticationEvent_trigger_name_label": "Name", + "authenticationEvent_trigger_name_help": "Triggers for Azure AD Authentication event custom extensions. Lets you focus on your business logic. For more information please see /~https://github.com/Azure/microsoft-azure-webJobs-extensions-authentication-events", + "authenticationEvent_trigger_IssuanceStartVer_label": "OnTokenIssuanceStart Version", + "authenticationEvent_trigger_IssuanceStartVer_help": "API Schema Version for OnTokenIssuanceStart Event", + "sqlIn_displayName": "Azure SQL Input Binding", + "sqlIn_name_label": "Name", + "sqlIn_name_help": "The name used to identify this binding in your code.", + "sqlIn_commandText_label": "SQL Command Text", + "sqlIn_commandText_help": "The Transact-SQL query command or name of the stored procedure executed by the binding.", + "sqlIn_commandType_label": "Text or StoredProcedure", + "sqlIn_commandType_help": "The command type used to identify what type of value commandText is, either Text for a T-SQL query or StoredProcedure for a stored procedure.", + "sqlIn_parameters_label": "Parameters", + "sqlIn_parameters_help": "Parameter values passed to the command during execution as a single string. Must follow the format `@param1=param1,@param2=param2`.", + "sql_connection_label": "SQL Connection string setting", + "sql_connection_help": "The name of the app setting containing your Azure SQL binding connection string.", + "sqlOut_displayName": "Azure SQL Output Binding", + "sqlOut_name_label": "Name", + "sqlOut_name_help": "The name of the variable that represents the entity in function code.", + "sqlOut_commandText_label": "Table Name", + "sqlOut_commandText_help": "The name of the table being upserted to by the binding.", + "sqlTrigger_displayName": "Azure SQL Trigger Binding", + "sqlTrigger_name_label": "Name", + "sqlTrigger_name_help": "The name of the parameter that the trigger binds to.", + "sqlTrigger_tableName_label": "Table Name", + "sqlTrigger_tableName_help": "The name of the table being monitored by the trigger.", + "app_filename_label": "Provide a filename for your function", + "app_filename_help": "This is the file where you want to save your function code", + "trigger_functionName_help": "Name of the function you want to create", + "trigger_functionName_label": "Provide a function name", + "app_selected_filename_label": "File Name", + "app_selected_filename_help": "This is the file to which you want to add your function", + "blueprint_filename_label": "Blueprint function file Name", + "blueprint_filename_help": "This is the name of the file where you want to save your blueprint code", + "blueprint_selected_filename_help": "This is the name of the file where you want to add a function to the existing blueprint", + "blueprint_selected_filename_label": "Select a file to save for your blueprint function", + "blueprint_fileName_errorText": "Invalid fileName", + "app_filename_errorText": "Invalid fileName" } } \ No newline at end of file diff --git a/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.nl-NL.json b/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.nl-NL.json index 8c98beb97..bd4c3e8f1 100644 --- a/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.nl-NL.json +++ b/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.nl-NL.json @@ -1,6 +1,7 @@ { "lang": { "eventHubOut_connection_help": "De naam van de app-instelling met daarin de Event Hub-verbindingsreeks. Voor de verbindingsreeks moeten machtigingen voor verzenden zijn ingesteld.", + "cosmosDBIn_leaseCollectionName_help": "De naam van de verzameling waarin de lease is opgeslagen", "eventHubOut_connection_label": "Event Hub-verbinding", "eventHubOut_displayName": "Azure Event Hubs", "eventHubOut_name_help": "De naam die wordt gebruikt om de binding in uw code aan te geven", @@ -469,13 +470,16 @@ "CosmosDBTriggerCSharp_description": "Een C#-functie die wordt uitgevoerd wanneer met de functie documenten in een documentverzameling worden gewijzigd.", "CosmosDBTriggerJavascript_description": "Een JavaScript-functie die wordt uitgevoerd wanneer met de functie documenten in een documentverzameling worden gewijzigd.", "cosmosDBIn_collectionName_help": "De naam van de verzameling die moet worden bewaakt.", + "cosmosDBIn_containerName_help": "De naam van de container die bewaakt moet worden.", "cosmosDBIn_collectionName_label": "Naam van verzameling", + "cosmosDBIn_containerName_label": "Containernaam", "cosmosDBIn_connection_help": "De naam van de app-instelling met daarin de verbindingsreeks voor de service die de verzameling bevat die moet worden bewaakt.", "cosmosDBIn_connection_label": "De verbinding met het Cosmos DB-account", - "cosmosDBIn_databaseName_help": "De naam van de Cosmos DB-database die de verzameling bevat die moet worden bewaakt.", + "cosmosDBIn_databaseName_help": "De naam van de Cosmos DB-database die de container bevat die moet worden bewaakt.", "cosmosDBIn_databaseName_label": "Databasenaam", - "cosmosDBIn_leaseCollectionName_help": "De naam van de verzameling voor het opslaan van de leases.", + "cosmosDBIn_leaseContainerName_help": "De naam van de container voor het opslaan van de leases.", "cosmosDBIn_leaseCollectionName_label": "De naam van de verzameling voor leases", + "cosmosDBIn_leaseContainerName_label": "Containernaam voor leases", "cosmosDBIn_leaseDatabaseName_help": "De naam van de verzameling die de verzameling bevat waarin de leases moeten worden opgeslagen.", "cosmosDBIn_leaseDatabaseName_label": "De databasenaam voor leases", "cosmosDBIn_name_help": "De naam die wordt gebruikt om de binding in uw code aan te geven", @@ -484,7 +488,9 @@ "IoTHubServiceBusTopicTriggerCSharp_description": "Een C#-functie die wordt uitgevoerd wanneer met de functie een bericht wordt toegevoegd aan het opgegeven Service Bus-onderwerp", "temp_category_IoTHub": "IoT Hub", "cosmosDBIn_createIfNotExists_help": "Controleert op de aanwezigheid van en maakt automatisch de verzameling leases.", + "cosmosDBIn_createContainerIfNotExists_help": "Hiermee wordt de aanwezigheid van de leasecontainer gecontroleerd en als deze nog niet bestaat wordt er automatisch een gemaakt.", "cosmosDBIn_createIfNotExists_label": "Leaseverzameling maken als deze nog niet bestaat", + "cosmosDBIn_createContainerIfNotExists_label": "Een leasecontainer maken als deze nog niet bestaat", "EventGridTriggerJavascript_description": "Een JavaScript-functie die wordt uitgevoerd wanneer met de functie een Event Grid een gebeurtenis wordt ontvangen", "Identity_help": "De identiteit waarmee de actie wordt uitgevoerd.", "Identity_label": "Identiteit", @@ -528,6 +534,8 @@ "DurableFunctionsHttpStart_description": "Een functie die wordt geactiveerd wanneer er een HTTP-aanvraag wordt ontvangen om een orchestrator-functie uit te voeren.", "temp_category_durableFunctions": "Durable Functions", "BlobTrigger_name": "Blob-trigger", + "blobTrigger_connection_label": "Opslagaccountverbinding", + "blobTrigger_connection_help": "De naam van de app-instelling met daarin de verbindingsreeks voor uw opslagaccount", "EventHubTrigger_name": "Event Hub trigger", "HttpTrigger_name": "HTTP-trigger", "OutlookMessageWebhookCreator_name": "Maker van webhookabonnement voor Outlook-berichten", @@ -596,10 +604,50 @@ "kafka_consumergroup_help": "Consumentengroep", "kafka_consumergroup_label": "Consumentengroep", "SqlInputBinding_description": "Een functie die wordt uitgevoerd op een HTTP-trigger en de resultaten van een opgegeven SQL-query retourneert.", - "SqlOuputBinding_description": "Een functie die wordt uitgevoerd op een HTTP-trigger en een lijst met rijen opneemt en upsert in de gebruikerstabel (d.w.z. als er nog geen rij bestaat, wordt deze toegevoegd en als de rij wel bestaat, wordt deze bijgewerkt)." + "SqlOuputBinding_description": "Een functie die wordt uitgevoerd op een HTTP-trigger en een lijst met rijen opneemt en upsert in de gebruikerstabel (d.w.z. als er nog geen rij bestaat, wordt deze toegevoegd en als de rij wel bestaat, wordt deze bijgewerkt).", + "authenticationEvents_description": "Triggers voor aangepaste extensies voor Azure AD-verificatiegebeurtenissen. Hiermee kunt u zich richten op uw bedrijfslogica.", + "authenticationEvents_trigger_displayName": "Trigger voor verificatiegebeurtenissen", + "authenticationEvent_trigger_name_label": "Naam", + "authenticationEvent_trigger_name_help": "Triggers voor aangepaste extensies voor Azure AD-verificatiegebeurtenissen. Hiermee kunt u zich richten op uw bedrijfslogica. Zie /~https://github.com/Azure/microsoft-azure-webJobs-extensions-authentication-events voor meer informatie", + "authenticationEvent_trigger_IssuanceStartVer_label": "OnTokenIssuanceStart-versie", + "authenticationEvent_trigger_IssuanceStartVer_help": "API-schemaversie voor onTokenIssuanceStart-gebeurtenis", + "sqlIn_displayName": "Azure SQL-invoerbinding", + "sqlIn_name_label": "Naam", + "sqlIn_name_help": "De naam die wordt gebruikt om de binding in uw code aan te geven.", + "sqlIn_commandText_label": "SQL-opdrachttekst", + "sqlIn_commandText_help": "De Transact-SQL-queryopdracht of -naam van de opgeslagen procedure die door de binding wordt uitgevoerd.", + "sqlIn_commandType_label": "Text of StoredProcedure", + "sqlIn_commandType_help": "Het opdrachttype dat wordt gebruikt om te bepalen welk type waarde commandText is, ofwel Text voor een T-SQL-query of StoredProcedure voor een opgeslagen procedure.", + "sqlIn_parameters_label": "Parameters", + "sqlIn_parameters_help": "Parameterwaarden die tijdens de uitvoering aan de opdracht zijn doorgegeven als een enkele tekenreeks. Moet de notatie `@param1=param1,@param2=param2` volgen.", + "sql_connection_label": "Instelling voor SQL-verbindingsreeks", + "sql_connection_help": "De naam van de app-instelling met daarin uw Azure SQL-binding-verbindingsreeks.", + "sqlOut_displayName": "Azure SQL-uitvoerbinding", + "sqlOut_name_label": "Naam", + "sqlOut_name_help": "De naam van de variabele die de entiteit in de functiecode vertegenwoordigt.", + "sqlOut_commandText_label": "Tabelnaam", + "sqlOut_commandText_help": "De naam van de tabel waarnaar door de binding een upsert is uitgevoerd.", + "sqlTrigger_displayName": "Azure SQL-triggerbinding", + "sqlTrigger_name_label": "Naam", + "sqlTrigger_name_help": "De naam van de parameter waarmee de trigger is verbonden.", + "sqlTrigger_tableName_label": "Tabelnaam", + "sqlTrigger_tableName_help": "De naam van de tabel die door de trigger wordt gemonitord.", + "app_filename_label": "Geef een bestandsnaam op voor uw functie", + "app_filename_help": "Dit is het bestand waarin u de functiecode wilt opslaan", + "trigger_functionName_help": "Naam van de functie die u wilt maken", + "trigger_functionName_label": "Geef een functienaam op", + "app_selected_filename_label": "Bestandsnaam", + "app_selected_filename_help": "Dit is het bestand waaraan u uw functie wilt toevoegen", + "blueprint_filename_label": "Bestandsnaam van blauwdrukfunctie", + "blueprint_filename_help": "Dit is de naam van het bestand waarin u uw blauwdrukcode wilt opslaan", + "blueprint_selected_filename_help": "Dit is de naam van het bestand waarin u een functie wilt toevoegen aan de bestaande blauwdruk", + "blueprint_selected_filename_label": "Selecteer een bestand dat u wilt opslaan voor uw blauwdrukfunctie", + "blueprint_fileName_errorText": "Ongeldige bestandsnaam", + "app_filename_errorText": "Ongeldige bestandsnaam" }, "en": { "eventHubOut_connection_help": "The name of the app setting containing your Event Hub connection string. The connection string must have Send permissions.", + "cosmosDBIn_leaseCollectionName_help": "The name of the collection in which the lease is stored", "eventHubOut_connection_label": "Event Hub connection", "eventHubOut_displayName": "Azure Event Hubs", "eventHubOut_name_help": "The name used to identify this binding in your code", @@ -1068,13 +1116,16 @@ "CosmosDBTriggerCSharp_description": "A C# function that will be run whenever documents change in a document collection.", "CosmosDBTriggerJavascript_description": "A JavaScript function that will be run whenever documents change in a document collection.", "cosmosDBIn_collectionName_help": "Name of the collection to be monitored.", + "cosmosDBIn_containerName_help": "Name of the container to be monitored.", "cosmosDBIn_collectionName_label": "Collection name", + "cosmosDBIn_containerName_label": "Container name", "cosmosDBIn_connection_help": "The name of the App Setting containing the connection string to the service that contains the collection to be monitored.", "cosmosDBIn_connection_label": "Cosmos DB account connection", - "cosmosDBIn_databaseName_help": "Name of the Cosmos DB database that includes the collection to be monitored.", + "cosmosDBIn_databaseName_help": "Name of the Cosmos DB database that includes the container to be monitored.", "cosmosDBIn_databaseName_label": "Database name", - "cosmosDBIn_leaseCollectionName_help": "Name of the collection to store the leases.", + "cosmosDBIn_leaseContainerName_help": "Name of the container to store the leases.", "cosmosDBIn_leaseCollectionName_label": "Collection name for leases", + "cosmosDBIn_leaseContainerName_label": "Container name for leases", "cosmosDBIn_leaseDatabaseName_help": "Name of the database that includes the collection to store the leases.", "cosmosDBIn_leaseDatabaseName_label": "Database name for leases", "cosmosDBIn_name_help": "The name used to identify this binding in your code", @@ -1083,7 +1134,9 @@ "IoTHubServiceBusTopicTriggerCSharp_description": "A C# function that will be run whenever a message is added to the specified Service Bus topic", "temp_category_IoTHub": "IoT Hub", "cosmosDBIn_createIfNotExists_help": "Checks for existence and automatically creates the leases collection.", + "cosmosDBIn_createContainerIfNotExists_help": "Checks for existence and automatically creates the leases container.", "cosmosDBIn_createIfNotExists_label": "Create lease collection if it does not exist", + "cosmosDBIn_createContainerIfNotExists_label": "Create lease container if it does not exist", "EventGridTriggerJavascript_description": "A JavaScript function that will be run whenever an event grid receives a new event", "Identity_help": "The identity that will be used to perform the action.", "Identity_label": "Identity", @@ -1127,6 +1180,8 @@ "DurableFunctionsHttpStart_description": "A function that will trigger whenever it receives an HTTP request to execute an orchestrator function.", "temp_category_durableFunctions": "Durable Functions", "BlobTrigger_name": "Blob trigger", + "blobTrigger_connection_label": "Storage account connection", + "blobTrigger_connection_help": "The name of the app setting containing your storage account connection string", "EventHubTrigger_name": "Event Hub trigger", "HttpTrigger_name": "HTTP trigger", "OutlookMessageWebhookCreator_name": "Outlook message webhook subscription creator", @@ -1195,6 +1250,45 @@ "kafka_consumergroup_help": "Consumer Group", "kafka_consumergroup_label": "Consumer Group", "SqlInputBinding_description": "A function that will be run on an HTTP trigger and returns the results of a provided SQL query.", - "SqlOuputBinding_description": "A function that will be run on an HTTP trigger and takes a list of rows and upserts them into the user table (i.e. If a row doesn't already exist, it is added. If it does, it is updated)." + "SqlOuputBinding_description": "A function that will be run on an HTTP trigger and takes a list of rows and upserts them into the user table (i.e. If a row doesn't already exist, it is added. If it does, it is updated).", + "authenticationEvents_description": "Triggers for Azure AD Authentication event custom extensions. Lets you focus on your business logic.", + "authenticationEvents_trigger_displayName": "Authentication Events Trigger", + "authenticationEvent_trigger_name_label": "Name", + "authenticationEvent_trigger_name_help": "Triggers for Azure AD Authentication event custom extensions. Lets you focus on your business logic. For more information please see /~https://github.com/Azure/microsoft-azure-webJobs-extensions-authentication-events", + "authenticationEvent_trigger_IssuanceStartVer_label": "OnTokenIssuanceStart Version", + "authenticationEvent_trigger_IssuanceStartVer_help": "API Schema Version for OnTokenIssuanceStart Event", + "sqlIn_displayName": "Azure SQL Input Binding", + "sqlIn_name_label": "Name", + "sqlIn_name_help": "The name used to identify this binding in your code.", + "sqlIn_commandText_label": "SQL Command Text", + "sqlIn_commandText_help": "The Transact-SQL query command or name of the stored procedure executed by the binding.", + "sqlIn_commandType_label": "Text or StoredProcedure", + "sqlIn_commandType_help": "The command type used to identify what type of value commandText is, either Text for a T-SQL query or StoredProcedure for a stored procedure.", + "sqlIn_parameters_label": "Parameters", + "sqlIn_parameters_help": "Parameter values passed to the command during execution as a single string. Must follow the format `@param1=param1,@param2=param2`.", + "sql_connection_label": "SQL Connection string setting", + "sql_connection_help": "The name of the app setting containing your Azure SQL binding connection string.", + "sqlOut_displayName": "Azure SQL Output Binding", + "sqlOut_name_label": "Name", + "sqlOut_name_help": "The name of the variable that represents the entity in function code.", + "sqlOut_commandText_label": "Table Name", + "sqlOut_commandText_help": "The name of the table being upserted to by the binding.", + "sqlTrigger_displayName": "Azure SQL Trigger Binding", + "sqlTrigger_name_label": "Name", + "sqlTrigger_name_help": "The name of the parameter that the trigger binds to.", + "sqlTrigger_tableName_label": "Table Name", + "sqlTrigger_tableName_help": "The name of the table being monitored by the trigger.", + "app_filename_label": "Provide a filename for your function", + "app_filename_help": "This is the file where you want to save your function code", + "trigger_functionName_help": "Name of the function you want to create", + "trigger_functionName_label": "Provide a function name", + "app_selected_filename_label": "File Name", + "app_selected_filename_help": "This is the file to which you want to add your function", + "blueprint_filename_label": "Blueprint function file Name", + "blueprint_filename_help": "This is the name of the file where you want to save your blueprint code", + "blueprint_selected_filename_help": "This is the name of the file where you want to add a function to the existing blueprint", + "blueprint_selected_filename_label": "Select a file to save for your blueprint function", + "blueprint_fileName_errorText": "Invalid fileName", + "app_filename_errorText": "Invalid fileName" } } \ No newline at end of file diff --git a/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.pl-PL.json b/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.pl-PL.json index cae122737..187da766d 100644 --- a/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.pl-PL.json +++ b/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.pl-PL.json @@ -1,6 +1,7 @@ { "lang": { "eventHubOut_connection_help": "Nazwa ustawienia aplikacji zawierającego parametry połączenia centrum zdarzeń. Parametry połączenia muszą mieć uprawnienia do wysyłania.", + "cosmosDBIn_leaseCollectionName_help": "Nazwa kolekcji, w której jest przechowywana dzierżawa", "eventHubOut_connection_label": "Połączenie centrum zdarzeń", "eventHubOut_displayName": "Azure Event Hubs", "eventHubOut_name_help": "Nazwa służąca do identyfikacji tego powiązania w kodzie", @@ -469,13 +470,16 @@ "CosmosDBTriggerCSharp_description": "Funkcja języka C#, która zostanie uruchomiona za każdym razem, gdy zmienią się dokumenty w kolekcji dokumentów.", "CosmosDBTriggerJavascript_description": "Funkcja języka JavaScript, która zostanie uruchomiona za każdym razem, gdy zmienią się dokumenty w kolekcji dokumentów.", "cosmosDBIn_collectionName_help": "Nazwa kolekcji do monitorowania.", + "cosmosDBIn_containerName_help": "Nazwa kontenera do monitorowania.", "cosmosDBIn_collectionName_label": "Nazwa kolekcji", + "cosmosDBIn_containerName_label": "Nazwa kontenera", "cosmosDBIn_connection_help": "Nazwa ustawienia aplikacji zawierającego parametry połączenia z usługą, która zawiera kolekcję do monitorowania.", "cosmosDBIn_connection_label": "Połączenie konta usługi Cosmos DB", - "cosmosDBIn_databaseName_help": "Nazwa bazy danych usługi Cosmos DB, która zawiera kolekcję do monitorowania.", + "cosmosDBIn_databaseName_help": "Nazwa bazy danych Cosmos DB, która zawiera kontener do monitorowania.", "cosmosDBIn_databaseName_label": "Nazwa bazy danych", - "cosmosDBIn_leaseCollectionName_help": "Nazwa kolekcji do przechowywania dzierżaw.", + "cosmosDBIn_leaseContainerName_help": "Nazwa kontenera do przechowywania dzierżaw.", "cosmosDBIn_leaseCollectionName_label": "Nazwa kolekcji dzierżaw", + "cosmosDBIn_leaseContainerName_label": "Nazwa kontenera dla dzierżaw", "cosmosDBIn_leaseDatabaseName_help": "Nazwa bazy danych, która zawiera kolekcję używaną do przechowywania dzierżaw.", "cosmosDBIn_leaseDatabaseName_label": "Nazwa bazy danych dla dzierżaw", "cosmosDBIn_name_help": "Nazwa służąca do identyfikacji tego powiązania w kodzie", @@ -484,7 +488,9 @@ "IoTHubServiceBusTopicTriggerCSharp_description": "Funkcja języka C#, która będzie uruchamiana za każdym razem, gdy komunikat zostanie dodany do określonego tematu usługi Service Bus", "temp_category_IoTHub": "IoT Hub", "cosmosDBIn_createIfNotExists_help": "Sprawdza istnienie i automatycznie tworzy kolekcję dzierżaw.", + "cosmosDBIn_createContainerIfNotExists_help": "Sprawdza istnienie i automatycznie tworzy kolekcję dzierżaw.", "cosmosDBIn_createIfNotExists_label": "Utwórz kolekcję dzierżaw, jeśli nie istnieje", + "cosmosDBIn_createContainerIfNotExists_label": "Utwórz kontener dzierżawy, jeśli nie istnieje", "EventGridTriggerJavascript_description": "Funkcja języka JavaScript, która będzie uruchamiana po każdym odebraniu nowego zdarzenia przez siatkę zdarzeń", "Identity_help": "Tożsamość, która zostanie użyta do wykonania akcji.", "Identity_label": "Tożsamość", @@ -528,6 +534,8 @@ "DurableFunctionsHttpStart_description": "Funkcja, która będzie wyzwalana za każdym razem, gdy otrzyma żądanie HTTP wykonania funkcji orkiestratora.", "temp_category_durableFunctions": "Durable Functions", "BlobTrigger_name": "Obiekt blob wyzwalacza", + "blobTrigger_connection_label": "Połączenie konta magazynu", + "blobTrigger_connection_help": "Nazwa ustawienia aplikacji zawierającego parametry połączenia konta magazynu", "EventHubTrigger_name": "Wyzwalacz Centrum zdarzeń", "HttpTrigger_name": "Wyzwalacz HTTP", "OutlookMessageWebhookCreator_name": "Procedura tworzenia subskrypcji elementu webhook wiadomości programu Outlook", @@ -596,10 +604,50 @@ "kafka_consumergroup_help": "Grupa konsumentów", "kafka_consumergroup_label": "Grupa konsumentów", "SqlInputBinding_description": "Funkcja, która zostanie uruchomiona na wyzwalaczu HTTP i zwraca wyniki podanego zapytania SQL.", - "SqlOuputBinding_description": "Funkcja, która zostanie uruchomiona na wyzwalaczu HTTP, pobiera listę wierszy i wstawia je do tabeli użytkownika (tj. Jeśli wiersz jeszcze nie istnieje, zostanie dodany. Jeśli istnieje, zostanie zaktualizowany)." + "SqlOuputBinding_description": "Funkcja, która zostanie uruchomiona na wyzwalaczu HTTP, pobiera listę wierszy i wstawia je do tabeli użytkownika (tj. Jeśli wiersz jeszcze nie istnieje, zostanie dodany. Jeśli istnieje, zostanie zaktualizowany).", + "authenticationEvents_description": "Wyzwalacze dla rozszerzeń niestandardowych zdarzeń uwierzytelniania Azure AD. Umożliwia skupienie się na logice biznesowej.", + "authenticationEvents_trigger_displayName": "Wyzwalacz zdarzeń uwierzytelniania", + "authenticationEvent_trigger_name_label": "Nazwa", + "authenticationEvent_trigger_name_help": "Wyzwalacze dla rozszerzeń niestandardowych zdarzeń uwierzytelniania Azure AD. Umożliwia skupienie się na logice biznesowej. Aby uzyskać więcej informacji, zobacz /~https://github.com/Azure/microsoft-azure-webJobs-extensions-authentication-events", + "authenticationEvent_trigger_IssuanceStartVer_label": "Wersja onTokenIssuanceStart", + "authenticationEvent_trigger_IssuanceStartVer_help": "Wersja schematu interfejsu API dla zdarzenia OnTokenIssuanceStart", + "sqlIn_displayName": "Powiązanie wejściowe Azure SQL", + "sqlIn_name_label": "Nazwa", + "sqlIn_name_help": "Nazwa służąca do identyfikacji tego powiązania w kodzie.", + "sqlIn_commandText_label": "Tekst polecenia SQL", + "sqlIn_commandText_help": "Polecenie zapytania Transact-SQL lub nazwa procedury składowanej wykonanej przez powiązanie.", + "sqlIn_commandType_label": "Tekst lub procedura składowana", + "sqlIn_commandType_help": "Typem polecenia używanym do identyfikowania typu wartości commandText jest Text dla zapytania T-SQL lub StoredProcedure dla procedury składowanej.", + "sqlIn_parameters_label": "Parametry", + "sqlIn_parameters_help": "Wartości parametrów przekazane do polecenia podczas wykonywania w postaci pojedynczego ciągu. Musi być zgodny z formatem „@param1=param1,@param2=param2”.", + "sql_connection_label": "Ustawienie parametru połączenia SQL", + "sql_connection_help": "Nazwa ustawienia aplikacji zawierająca parametr połączenia powiązania usługi Azure SQL.", + "sqlOut_displayName": "Powiązanie wyjściowe Azure SQL", + "sqlOut_name_label": "Nazwa", + "sqlOut_name_help": "Nazwa zmiennej reprezentującej jednostkę w kodzie funkcji.", + "sqlOut_commandText_label": "Nazwa tabeli", + "sqlOut_commandText_help": "Nazwa tabeli, w przypadku której jest wykonywana operacja upsert przez powiązanie.", + "sqlTrigger_displayName": "Powiązanie wyzwalacza usługi Azure SQL", + "sqlTrigger_name_label": "Nazwa", + "sqlTrigger_name_help": "Nazwa parametru, z który jest powiązany wyzwalacz.", + "sqlTrigger_tableName_label": "Nazwa tabeli", + "sqlTrigger_tableName_help": "Nazwa tabeli monitorowanej przez wyzwalacz.", + "app_filename_label": "Podaj nazwę pliku dla funkcji", + "app_filename_help": "To jest plik, w którym chcesz zapisać kod funkcji", + "trigger_functionName_help": "Nazwa funkcji, którą chcesz utworzyć", + "trigger_functionName_label": "Podaj nazwę funkcji", + "app_selected_filename_label": "Nazwa pliku", + "app_selected_filename_help": "To jest plik, do którego chcesz dodać funkcję", + "blueprint_filename_label": "Nazwa pliku funkcji konspektu", + "blueprint_filename_help": "To jest nazwa pliku, w którym chcesz zapisać kod konspektu", + "blueprint_selected_filename_help": "Jest to nazwa pliku, w którym chcesz dodać funkcję do istniejącej strategii", + "blueprint_selected_filename_label": "Wybierz plik do zapisania dla funkcji konspektu", + "blueprint_fileName_errorText": "Nieprawidłowa nazwa pliku", + "app_filename_errorText": "Nieprawidłowa nazwa pliku" }, "en": { "eventHubOut_connection_help": "The name of the app setting containing your Event Hub connection string. The connection string must have Send permissions.", + "cosmosDBIn_leaseCollectionName_help": "The name of the collection in which the lease is stored", "eventHubOut_connection_label": "Event Hub connection", "eventHubOut_displayName": "Azure Event Hubs", "eventHubOut_name_help": "The name used to identify this binding in your code", @@ -1068,13 +1116,16 @@ "CosmosDBTriggerCSharp_description": "A C# function that will be run whenever documents change in a document collection.", "CosmosDBTriggerJavascript_description": "A JavaScript function that will be run whenever documents change in a document collection.", "cosmosDBIn_collectionName_help": "Name of the collection to be monitored.", + "cosmosDBIn_containerName_help": "Name of the container to be monitored.", "cosmosDBIn_collectionName_label": "Collection name", + "cosmosDBIn_containerName_label": "Container name", "cosmosDBIn_connection_help": "The name of the App Setting containing the connection string to the service that contains the collection to be monitored.", "cosmosDBIn_connection_label": "Cosmos DB account connection", - "cosmosDBIn_databaseName_help": "Name of the Cosmos DB database that includes the collection to be monitored.", + "cosmosDBIn_databaseName_help": "Name of the Cosmos DB database that includes the container to be monitored.", "cosmosDBIn_databaseName_label": "Database name", - "cosmosDBIn_leaseCollectionName_help": "Name of the collection to store the leases.", + "cosmosDBIn_leaseContainerName_help": "Name of the container to store the leases.", "cosmosDBIn_leaseCollectionName_label": "Collection name for leases", + "cosmosDBIn_leaseContainerName_label": "Container name for leases", "cosmosDBIn_leaseDatabaseName_help": "Name of the database that includes the collection to store the leases.", "cosmosDBIn_leaseDatabaseName_label": "Database name for leases", "cosmosDBIn_name_help": "The name used to identify this binding in your code", @@ -1083,7 +1134,9 @@ "IoTHubServiceBusTopicTriggerCSharp_description": "A C# function that will be run whenever a message is added to the specified Service Bus topic", "temp_category_IoTHub": "IoT Hub", "cosmosDBIn_createIfNotExists_help": "Checks for existence and automatically creates the leases collection.", + "cosmosDBIn_createContainerIfNotExists_help": "Checks for existence and automatically creates the leases container.", "cosmosDBIn_createIfNotExists_label": "Create lease collection if it does not exist", + "cosmosDBIn_createContainerIfNotExists_label": "Create lease container if it does not exist", "EventGridTriggerJavascript_description": "A JavaScript function that will be run whenever an event grid receives a new event", "Identity_help": "The identity that will be used to perform the action.", "Identity_label": "Identity", @@ -1127,6 +1180,8 @@ "DurableFunctionsHttpStart_description": "A function that will trigger whenever it receives an HTTP request to execute an orchestrator function.", "temp_category_durableFunctions": "Durable Functions", "BlobTrigger_name": "Blob trigger", + "blobTrigger_connection_label": "Storage account connection", + "blobTrigger_connection_help": "The name of the app setting containing your storage account connection string", "EventHubTrigger_name": "Event Hub trigger", "HttpTrigger_name": "HTTP trigger", "OutlookMessageWebhookCreator_name": "Outlook message webhook subscription creator", @@ -1195,6 +1250,45 @@ "kafka_consumergroup_help": "Consumer Group", "kafka_consumergroup_label": "Consumer Group", "SqlInputBinding_description": "A function that will be run on an HTTP trigger and returns the results of a provided SQL query.", - "SqlOuputBinding_description": "A function that will be run on an HTTP trigger and takes a list of rows and upserts them into the user table (i.e. If a row doesn't already exist, it is added. If it does, it is updated)." + "SqlOuputBinding_description": "A function that will be run on an HTTP trigger and takes a list of rows and upserts them into the user table (i.e. If a row doesn't already exist, it is added. If it does, it is updated).", + "authenticationEvents_description": "Triggers for Azure AD Authentication event custom extensions. Lets you focus on your business logic.", + "authenticationEvents_trigger_displayName": "Authentication Events Trigger", + "authenticationEvent_trigger_name_label": "Name", + "authenticationEvent_trigger_name_help": "Triggers for Azure AD Authentication event custom extensions. Lets you focus on your business logic. For more information please see /~https://github.com/Azure/microsoft-azure-webJobs-extensions-authentication-events", + "authenticationEvent_trigger_IssuanceStartVer_label": "OnTokenIssuanceStart Version", + "authenticationEvent_trigger_IssuanceStartVer_help": "API Schema Version for OnTokenIssuanceStart Event", + "sqlIn_displayName": "Azure SQL Input Binding", + "sqlIn_name_label": "Name", + "sqlIn_name_help": "The name used to identify this binding in your code.", + "sqlIn_commandText_label": "SQL Command Text", + "sqlIn_commandText_help": "The Transact-SQL query command or name of the stored procedure executed by the binding.", + "sqlIn_commandType_label": "Text or StoredProcedure", + "sqlIn_commandType_help": "The command type used to identify what type of value commandText is, either Text for a T-SQL query or StoredProcedure for a stored procedure.", + "sqlIn_parameters_label": "Parameters", + "sqlIn_parameters_help": "Parameter values passed to the command during execution as a single string. Must follow the format `@param1=param1,@param2=param2`.", + "sql_connection_label": "SQL Connection string setting", + "sql_connection_help": "The name of the app setting containing your Azure SQL binding connection string.", + "sqlOut_displayName": "Azure SQL Output Binding", + "sqlOut_name_label": "Name", + "sqlOut_name_help": "The name of the variable that represents the entity in function code.", + "sqlOut_commandText_label": "Table Name", + "sqlOut_commandText_help": "The name of the table being upserted to by the binding.", + "sqlTrigger_displayName": "Azure SQL Trigger Binding", + "sqlTrigger_name_label": "Name", + "sqlTrigger_name_help": "The name of the parameter that the trigger binds to.", + "sqlTrigger_tableName_label": "Table Name", + "sqlTrigger_tableName_help": "The name of the table being monitored by the trigger.", + "app_filename_label": "Provide a filename for your function", + "app_filename_help": "This is the file where you want to save your function code", + "trigger_functionName_help": "Name of the function you want to create", + "trigger_functionName_label": "Provide a function name", + "app_selected_filename_label": "File Name", + "app_selected_filename_help": "This is the file to which you want to add your function", + "blueprint_filename_label": "Blueprint function file Name", + "blueprint_filename_help": "This is the name of the file where you want to save your blueprint code", + "blueprint_selected_filename_help": "This is the name of the file where you want to add a function to the existing blueprint", + "blueprint_selected_filename_label": "Select a file to save for your blueprint function", + "blueprint_fileName_errorText": "Invalid fileName", + "app_filename_errorText": "Invalid fileName" } } \ No newline at end of file diff --git a/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.pt-BR.json b/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.pt-BR.json index dc79e699f..47f965f0b 100644 --- a/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.pt-BR.json +++ b/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.pt-BR.json @@ -1,6 +1,7 @@ { "lang": { "eventHubOut_connection_help": "O nome da configuração do aplicativo contendo sua cadeia de conexão do Hub de Eventos. A cadeia de conexão deve ter permissões de Envio.", + "cosmosDBIn_leaseCollectionName_help": "O nome da coleção na qual a concessão é armazenada", "eventHubOut_connection_label": "Conexão do Hub de Eventos", "eventHubOut_displayName": "Hubs de Eventos do Azure", "eventHubOut_name_help": "O nome usado para identificar esta associação em seu código", @@ -469,13 +470,16 @@ "CosmosDBTriggerCSharp_description": "Uma função C# que será executada sempre que os documentos forem alterados em um conjunto de documentos.", "CosmosDBTriggerJavascript_description": "Uma função JavaScript que será executada sempre que os documentos forem alterados em uma coleção de documentos.", "cosmosDBIn_collectionName_help": "Nome da coleção a ser monitorada.", + "cosmosDBIn_containerName_help": "Nome do contêiner a ser monitorado.", "cosmosDBIn_collectionName_label": "Nome da coleção", + "cosmosDBIn_containerName_label": "Nome do contêiner", "cosmosDBIn_connection_help": "O nome da configuração do aplicativo que contém a cadeia de conexão para o serviço que contém a coleção a ser monitorada.", "cosmosDBIn_connection_label": "Conexão de conta do Cosmos DB", - "cosmosDBIn_databaseName_help": "Nome do banco de dados do Cosmos DB que inclui a coleção a ser monitorada.", + "cosmosDBIn_databaseName_help": "Nome do banco de dados Cosmos DB que inclui o contêiner a ser monitorado.", "cosmosDBIn_databaseName_label": "Nome do banco de dados", - "cosmosDBIn_leaseCollectionName_help": "Nome da coleção para armazenar as concessões.", + "cosmosDBIn_leaseContainerName_help": "Nome do contêiner para armazenar as concessões.", "cosmosDBIn_leaseCollectionName_label": "Nome da coleção para concessões", + "cosmosDBIn_leaseContainerName_label": "Nome do contêiner para concessões", "cosmosDBIn_leaseDatabaseName_help": "Nome do banco de dados que inclui a coleção para armazenar as concessões.", "cosmosDBIn_leaseDatabaseName_label": "Nome do banco de dados para concessões", "cosmosDBIn_name_help": "O nome usado para identificar esta associação em seu código", @@ -484,7 +488,9 @@ "IoTHubServiceBusTopicTriggerCSharp_description": "Uma função C# que será executada sempre que uma mensagem for adicionada a um tópico especificado do Barramento de Serviço", "temp_category_IoTHub": "Hub IoT", "cosmosDBIn_createIfNotExists_help": "Verifica a existência e cria automaticamente a coleção de concessões.", + "cosmosDBIn_createContainerIfNotExists_help": "Verifica a existência e cria automaticamente o contêiner de concessões.", "cosmosDBIn_createIfNotExists_label": "Criar coleção de concessão se não existir", + "cosmosDBIn_createContainerIfNotExists_label": "Criar contêiner de concessão se ele não existir", "EventGridTriggerJavascript_description": "Uma função JavaScript que será executada sempre que uma grade de evento receber um novo evento", "Identity_help": "A identidade que será usada para executar a ação.", "Identity_label": "Identidade", @@ -528,6 +534,8 @@ "DurableFunctionsHttpStart_description": "Uma função que será acionada sempre que você receber uma solicitação HTTP para executar uma função de orquestrador.", "temp_category_durableFunctions": "Durable Functions", "BlobTrigger_name": "Gatilho de blob", + "blobTrigger_connection_label": "Conexão da conta de armazenamento", + "blobTrigger_connection_help": "O nome da configuração do aplicativo que contém a cadeia de caracteres de conexão da sua conta de armazenamento", "EventHubTrigger_name": "Gatilho de Hub de Eventos", "HttpTrigger_name": "Gatilho HTTP", "OutlookMessageWebhookCreator_name": "Criador de assinatura de webhook de mensagens do Outlook", @@ -596,10 +604,50 @@ "kafka_consumergroup_help": "Grupo de Consumidores", "kafka_consumergroup_label": "Grupo de Consumidores", "SqlInputBinding_description": "Uma função que será executada em um gatilho HTTP e retorna os resultados de uma consulta SQL fornecida.", - "SqlOuputBinding_description": "Uma função que será executada em um gatilho HTTP e pega uma lista de linhas e as insere na tabela do usuário (ou seja, se uma linha ainda não existir, ela será adicionada. Se existir, ela será atualizada)." + "SqlOuputBinding_description": "Uma função que será executada em um gatilho HTTP e pega uma lista de linhas e as insere na tabela do usuário (ou seja, se uma linha ainda não existir, ela será adicionada. Se existir, ela será atualizada).", + "authenticationEvents_description": "Gatilhos para extensões personalizadas de eventos de Autenticação do Azure AD. Permite que você se concentre em sua lógica de negócios.", + "authenticationEvents_trigger_displayName": "Gatilho de Eventos de Autenticação", + "authenticationEvent_trigger_name_label": "Nome", + "authenticationEvent_trigger_name_help": "Gatilhos para extensões personalizadas de eventos de Autenticação do Azure AD. Permite que você se concentre em sua lógica de negócios. Para obter mais informações, consulte /~https://github.com/Azure/microsoft-azure-webJobs-extensions-authentication-events", + "authenticationEvent_trigger_IssuanceStartVer_label": "Versão OnTokenIssuanceStart", + "authenticationEvent_trigger_IssuanceStartVer_help": "Versão do Esquema de API para Evento OnTokenIssuanceStart", + "sqlIn_displayName": "Associação de Entrada do SQL do Azure", + "sqlIn_name_label": "Nome", + "sqlIn_name_help": "O nome usado para identificar esta associação em seu código.", + "sqlIn_commandText_label": "Texto de Comando SQL", + "sqlIn_commandText_help": "O comando de consulta Transact-SQL ou o nome do procedimento armazenado executado pela associação.", + "sqlIn_commandType_label": "Texto ou StoredProcedure", + "sqlIn_commandType_help": "O tipo de comando usado para identificar qual o tipo de valor commandText: Text para uma consulta T-SQL ou StoredProcedure para um procedimento armazenado.", + "sqlIn_parameters_label": "Parâmetros", + "sqlIn_parameters_help": "Valores de parâmetro passados para o comando durante a execução como uma única cadeia de caracteres. Deve seguir o formato \"@param1=param1,@param2=param2\".", + "sql_connection_label": "Configuração da cadeia de Conexão SQL", + "sql_connection_help": "O nome da configuração do aplicativo contendo sua cadeia de associação do SQL do Azure.", + "sqlOut_displayName": "Associação de Saída do SQL do Azure", + "sqlOut_name_label": "Nome", + "sqlOut_name_help": "O nome da variável que representa a entidade no código de função.", + "sqlOut_commandText_label": "Nome da Tabela", + "sqlOut_commandText_help": "O nome da tabela que está sendo atualizada pela associação.", + "sqlTrigger_displayName": "Associação de Gatilho do SQL do Azure", + "sqlTrigger_name_label": "Nome", + "sqlTrigger_name_help": "O nome do parâmetro ao qual o gatilho está associado.", + "sqlTrigger_tableName_label": "Nome da Tabela", + "sqlTrigger_tableName_help": "O nome da tabela que está sendo monitorada pelo gatilho.", + "app_filename_label": "Forneça um nome de arquivo para sua função", + "app_filename_help": "Este é o arquivo no qual deseja salvar o código da função", + "trigger_functionName_help": "O nome da função que você deseja criar", + "trigger_functionName_label": "Fornecer um nome para a função", + "app_selected_filename_label": "Nome do Arquivo", + "app_selected_filename_help": "Este é o arquivo no qual você deseja adicionar sua função", + "blueprint_filename_label": "Nome do arquivo da função de blueprint", + "blueprint_filename_help": "Esse é o nome do arquivo no qual você deseja salvar o código do blueprint", + "blueprint_selected_filename_help": "Este é o nome do arquivo onde você deseja adicionar uma função ao blueprint existente", + "blueprint_selected_filename_label": "Selecione um arquivo para salvar para sua função de blueprint", + "blueprint_fileName_errorText": "Arquivo inválido", + "app_filename_errorText": "Arquivo inválido" }, "en": { "eventHubOut_connection_help": "The name of the app setting containing your Event Hub connection string. The connection string must have Send permissions.", + "cosmosDBIn_leaseCollectionName_help": "The name of the collection in which the lease is stored", "eventHubOut_connection_label": "Event Hub connection", "eventHubOut_displayName": "Azure Event Hubs", "eventHubOut_name_help": "The name used to identify this binding in your code", @@ -1068,13 +1116,16 @@ "CosmosDBTriggerCSharp_description": "A C# function that will be run whenever documents change in a document collection.", "CosmosDBTriggerJavascript_description": "A JavaScript function that will be run whenever documents change in a document collection.", "cosmosDBIn_collectionName_help": "Name of the collection to be monitored.", + "cosmosDBIn_containerName_help": "Name of the container to be monitored.", "cosmosDBIn_collectionName_label": "Collection name", + "cosmosDBIn_containerName_label": "Container name", "cosmosDBIn_connection_help": "The name of the App Setting containing the connection string to the service that contains the collection to be monitored.", "cosmosDBIn_connection_label": "Cosmos DB account connection", - "cosmosDBIn_databaseName_help": "Name of the Cosmos DB database that includes the collection to be monitored.", + "cosmosDBIn_databaseName_help": "Name of the Cosmos DB database that includes the container to be monitored.", "cosmosDBIn_databaseName_label": "Database name", - "cosmosDBIn_leaseCollectionName_help": "Name of the collection to store the leases.", + "cosmosDBIn_leaseContainerName_help": "Name of the container to store the leases.", "cosmosDBIn_leaseCollectionName_label": "Collection name for leases", + "cosmosDBIn_leaseContainerName_label": "Container name for leases", "cosmosDBIn_leaseDatabaseName_help": "Name of the database that includes the collection to store the leases.", "cosmosDBIn_leaseDatabaseName_label": "Database name for leases", "cosmosDBIn_name_help": "The name used to identify this binding in your code", @@ -1083,7 +1134,9 @@ "IoTHubServiceBusTopicTriggerCSharp_description": "A C# function that will be run whenever a message is added to the specified Service Bus topic", "temp_category_IoTHub": "IoT Hub", "cosmosDBIn_createIfNotExists_help": "Checks for existence and automatically creates the leases collection.", + "cosmosDBIn_createContainerIfNotExists_help": "Checks for existence and automatically creates the leases container.", "cosmosDBIn_createIfNotExists_label": "Create lease collection if it does not exist", + "cosmosDBIn_createContainerIfNotExists_label": "Create lease container if it does not exist", "EventGridTriggerJavascript_description": "A JavaScript function that will be run whenever an event grid receives a new event", "Identity_help": "The identity that will be used to perform the action.", "Identity_label": "Identity", @@ -1127,6 +1180,8 @@ "DurableFunctionsHttpStart_description": "A function that will trigger whenever it receives an HTTP request to execute an orchestrator function.", "temp_category_durableFunctions": "Durable Functions", "BlobTrigger_name": "Blob trigger", + "blobTrigger_connection_label": "Storage account connection", + "blobTrigger_connection_help": "The name of the app setting containing your storage account connection string", "EventHubTrigger_name": "Event Hub trigger", "HttpTrigger_name": "HTTP trigger", "OutlookMessageWebhookCreator_name": "Outlook message webhook subscription creator", @@ -1195,6 +1250,45 @@ "kafka_consumergroup_help": "Consumer Group", "kafka_consumergroup_label": "Consumer Group", "SqlInputBinding_description": "A function that will be run on an HTTP trigger and returns the results of a provided SQL query.", - "SqlOuputBinding_description": "A function that will be run on an HTTP trigger and takes a list of rows and upserts them into the user table (i.e. If a row doesn't already exist, it is added. If it does, it is updated)." + "SqlOuputBinding_description": "A function that will be run on an HTTP trigger and takes a list of rows and upserts them into the user table (i.e. If a row doesn't already exist, it is added. If it does, it is updated).", + "authenticationEvents_description": "Triggers for Azure AD Authentication event custom extensions. Lets you focus on your business logic.", + "authenticationEvents_trigger_displayName": "Authentication Events Trigger", + "authenticationEvent_trigger_name_label": "Name", + "authenticationEvent_trigger_name_help": "Triggers for Azure AD Authentication event custom extensions. Lets you focus on your business logic. For more information please see /~https://github.com/Azure/microsoft-azure-webJobs-extensions-authentication-events", + "authenticationEvent_trigger_IssuanceStartVer_label": "OnTokenIssuanceStart Version", + "authenticationEvent_trigger_IssuanceStartVer_help": "API Schema Version for OnTokenIssuanceStart Event", + "sqlIn_displayName": "Azure SQL Input Binding", + "sqlIn_name_label": "Name", + "sqlIn_name_help": "The name used to identify this binding in your code.", + "sqlIn_commandText_label": "SQL Command Text", + "sqlIn_commandText_help": "The Transact-SQL query command or name of the stored procedure executed by the binding.", + "sqlIn_commandType_label": "Text or StoredProcedure", + "sqlIn_commandType_help": "The command type used to identify what type of value commandText is, either Text for a T-SQL query or StoredProcedure for a stored procedure.", + "sqlIn_parameters_label": "Parameters", + "sqlIn_parameters_help": "Parameter values passed to the command during execution as a single string. Must follow the format `@param1=param1,@param2=param2`.", + "sql_connection_label": "SQL Connection string setting", + "sql_connection_help": "The name of the app setting containing your Azure SQL binding connection string.", + "sqlOut_displayName": "Azure SQL Output Binding", + "sqlOut_name_label": "Name", + "sqlOut_name_help": "The name of the variable that represents the entity in function code.", + "sqlOut_commandText_label": "Table Name", + "sqlOut_commandText_help": "The name of the table being upserted to by the binding.", + "sqlTrigger_displayName": "Azure SQL Trigger Binding", + "sqlTrigger_name_label": "Name", + "sqlTrigger_name_help": "The name of the parameter that the trigger binds to.", + "sqlTrigger_tableName_label": "Table Name", + "sqlTrigger_tableName_help": "The name of the table being monitored by the trigger.", + "app_filename_label": "Provide a filename for your function", + "app_filename_help": "This is the file where you want to save your function code", + "trigger_functionName_help": "Name of the function you want to create", + "trigger_functionName_label": "Provide a function name", + "app_selected_filename_label": "File Name", + "app_selected_filename_help": "This is the file to which you want to add your function", + "blueprint_filename_label": "Blueprint function file Name", + "blueprint_filename_help": "This is the name of the file where you want to save your blueprint code", + "blueprint_selected_filename_help": "This is the name of the file where you want to add a function to the existing blueprint", + "blueprint_selected_filename_label": "Select a file to save for your blueprint function", + "blueprint_fileName_errorText": "Invalid fileName", + "app_filename_errorText": "Invalid fileName" } } \ No newline at end of file diff --git a/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.pt-PT.json b/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.pt-PT.json index ebba20829..5d0395684 100644 --- a/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.pt-PT.json +++ b/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.pt-PT.json @@ -1,6 +1,7 @@ { "lang": { "eventHubOut_connection_help": "Nome da definição de aplicação que contém a cadeia de ligação do Hub de Eventos. A cadeia de ligação tem de ser permissões de Enviar.", + "cosmosDBIn_leaseCollectionName_help": "O nome da coleção na qual a concessão foi armazenada", "eventHubOut_connection_label": "Ligação do Hub de Eventos", "eventHubOut_displayName": "Hubs de Eventos do Azure", "eventHubOut_name_help": "O nome utilizado para identificar este enlace no código", @@ -469,13 +470,16 @@ "CosmosDBTriggerCSharp_description": "Uma função C# que será executada sempre os documentos forem alterados numa coleção de documentos.", "CosmosDBTriggerJavascript_description": "Uma função de JavaScript que será executada sempre que os documentos forem alterados numa coleção de documentos.", "cosmosDBIn_collectionName_help": "Nome da coleção a monitorizar.", + "cosmosDBIn_containerName_help": "Nome do contentor a monitorizar.", "cosmosDBIn_collectionName_label": "Nome da Coleção", + "cosmosDBIn_containerName_label": "Nome do contentor", "cosmosDBIn_connection_help": "O nome da Definição de Aplicação que contém a cadeia de ligação ao serviço que contém a coleção a monitorizar.", "cosmosDBIn_connection_label": "Ligação de conta do Cosmos DB", - "cosmosDBIn_databaseName_help": "Nome da base de dados do Cosmos DB que inclui a colecção a monitorizar.", + "cosmosDBIn_databaseName_help": "Nome da base de dados do Cosmos DB que inclui o contentor a monitorizar.", "cosmosDBIn_databaseName_label": "Nome da base de dados", - "cosmosDBIn_leaseCollectionName_help": "Nome da coleção para armazenar as concessões.", + "cosmosDBIn_leaseContainerName_help": "Nome do contentor para armazenar as concessões.", "cosmosDBIn_leaseCollectionName_label": "Nome da coleção das concessões", + "cosmosDBIn_leaseContainerName_label": "Nome do contentor para concessões", "cosmosDBIn_leaseDatabaseName_help": "Nome da base de dados que inclui a coleção para armazenar as concessões.", "cosmosDBIn_leaseDatabaseName_label": "Nome da base de dados das concessões", "cosmosDBIn_name_help": "O nome utilizado para identificar este enlace no código", @@ -484,7 +488,9 @@ "IoTHubServiceBusTopicTriggerCSharp_description": "Uma função C# que será executada sempre que uma mensagem for adicionada ao tópico especificado do Service Bus", "temp_category_IoTHub": "Hub IoT", "cosmosDBIn_createIfNotExists_help": "Verifica a existência e cria automaticamente a coleção de concessões.", + "cosmosDBIn_createContainerIfNotExists_help": "Verifica a existência e cria automaticamente o contentor de concessões.", "cosmosDBIn_createIfNotExists_label": "Criar coleção de concessão, se não existir", + "cosmosDBIn_createContainerIfNotExists_label": "Criar um contentor de concessões se não existir", "EventGridTriggerJavascript_description": "Uma função JavaScript que será executada sempre que uma grelha de eventos receber um novo evento", "Identity_help": "A identidade que vai ser utilizada para executar a ação.", "Identity_label": "Identidade", @@ -528,6 +534,8 @@ "DurableFunctionsHttpStart_description": "Uma função que irá acionar sempre que recebe um pedido de HTTP para executar uma função de orquestrador.", "temp_category_durableFunctions": "Durable Functions", "BlobTrigger_name": "Acionador de blob", + "blobTrigger_connection_label": "Ligação da conta de armazenamento", + "blobTrigger_connection_help": "O nome da definição de aplicação que contém a cadeia de ligação da conta de armazenamento", "EventHubTrigger_name": "Acionador do Hub de Eventos", "HttpTrigger_name": "Accionador HTTP", "OutlookMessageWebhookCreator_name": "Criador de subscrição do webhook de mensagem do Outlook", @@ -596,10 +604,50 @@ "kafka_consumergroup_help": "Grupo de Consumidores", "kafka_consumergroup_label": "Grupo de Consumidores", "SqlInputBinding_description": "Uma função que será executada num acionador HTTP e devolve os resultados de uma consulta SQL fornecida.", - "SqlOuputBinding_description": "Uma função que será executada num acionador HTTP e utiliza uma lista de linhas e as coloca na tabela de utilizador (ou seja, se uma linha já não existir, é adicionada. Se existir, é atualizada)." + "SqlOuputBinding_description": "Uma função que será executada num acionador HTTP e utiliza uma lista de linhas e as coloca na tabela de utilizador (ou seja, se uma linha já não existir, é adicionada. Se existir, é atualizada).", + "authenticationEvents_description": "Acionadores para extensões personalizadas de eventos da Autenticação do Azure AD. Permite-lhe concentrar-se na sua lógica de negócio.", + "authenticationEvents_trigger_displayName": "Acionador de Eventos de Autenticação", + "authenticationEvent_trigger_name_label": "Nome", + "authenticationEvent_trigger_name_help": "Acionadores para extensões personalizadas de eventos de Autenticação do Azure AD. Permite-lhe concentrar-se na sua lógica de negócio. Para obter mais informações, consulte /~https://github.com/Azure/microsoft-azure-webJobs-extensions-authentication-events", + "authenticationEvent_trigger_IssuanceStartVer_label": "Versão de OnTokenIssuanceStart", + "authenticationEvent_trigger_IssuanceStartVer_help": "Versão do Esquema de API para o Evento OnTokenIssuanceStart", + "sqlIn_displayName": "Enlace de Entrada do SQL do Azure", + "sqlIn_name_label": "Nome", + "sqlIn_name_help": "O nome utilizado para identificar este enlace no código.", + "sqlIn_commandText_label": "Texto do Comando SQL", + "sqlIn_commandText_help": "O comando de consulta Transact-SQL ou o nome do procedimento armazenado executado pelo enlace.", + "sqlIn_commandType_label": "Texto ou StoredProcedure", + "sqlIn_commandType_help": "O tipo de comando utilizado para identificar o tipo de valor de commandText, ou seja, texto para uma consulta T-SQL ou StoredProcedure para um procedimento armazenado.", + "sqlIn_parameters_label": "Parâmetros", + "sqlIn_parameters_help": "Valores de parâmetro transmitidos ao comando durante a execução como uma única cadeia. Tem de seguir o formato \"@param1=param1,@param2=param2\".", + "sql_connection_label": "Definição da cadeia de ligação SQL", + "sql_connection_help": "O nome da definição da aplicação que contém a cadeia de ligação do enlace do SQL do Azure.", + "sqlOut_displayName": "Enlace de Saída do SQL do Azure", + "sqlOut_name_label": "Nome", + "sqlOut_name_help": "O nome da variável que representa a entidade no código de função.", + "sqlOut_commandText_label": "Nome da Tabela", + "sqlOut_commandText_help": "O nome da tabela a ser atualizado/inserido pelo enlace.", + "sqlTrigger_displayName": "Vínculo do Acionador do SQL do Azure", + "sqlTrigger_name_label": "Nome", + "sqlTrigger_name_help": "O nome do parâmetro ao qual o acionador se vincula.", + "sqlTrigger_tableName_label": "Nome da Tabela", + "sqlTrigger_tableName_help": "O nome da tabela que está a ser monitorizada pelo acionador.", + "app_filename_label": "Forneça um nome de ficheiro para a função", + "app_filename_help": "Este é o ficheiro onde pretende guardar o código da função", + "trigger_functionName_help": "Nome da função que pretende criar", + "trigger_functionName_label": "Forneça um nome de função", + "app_selected_filename_label": "Nome de Ficheiro", + "app_selected_filename_help": "Este é o ficheiro ao qual pretende adicionar a sua função", + "blueprint_filename_label": "Nome do ficheiro de função de esquema", + "blueprint_filename_help": "Este é o nome do ficheiro onde pretende guardar o código de esquema", + "blueprint_selected_filename_help": "Este é o nome do ficheiro onde pretende adicionar uma função ao esquema existente", + "blueprint_selected_filename_label": "Selecione um ficheiro para guardar para a função de esquema", + "blueprint_fileName_errorText": "Nome de ficheiro inválido", + "app_filename_errorText": "Nome de ficheiro inválido" }, "en": { "eventHubOut_connection_help": "The name of the app setting containing your Event Hub connection string. The connection string must have Send permissions.", + "cosmosDBIn_leaseCollectionName_help": "The name of the collection in which the lease is stored", "eventHubOut_connection_label": "Event Hub connection", "eventHubOut_displayName": "Azure Event Hubs", "eventHubOut_name_help": "The name used to identify this binding in your code", @@ -1068,13 +1116,16 @@ "CosmosDBTriggerCSharp_description": "A C# function that will be run whenever documents change in a document collection.", "CosmosDBTriggerJavascript_description": "A JavaScript function that will be run whenever documents change in a document collection.", "cosmosDBIn_collectionName_help": "Name of the collection to be monitored.", + "cosmosDBIn_containerName_help": "Name of the container to be monitored.", "cosmosDBIn_collectionName_label": "Collection name", + "cosmosDBIn_containerName_label": "Container name", "cosmosDBIn_connection_help": "The name of the App Setting containing the connection string to the service that contains the collection to be monitored.", "cosmosDBIn_connection_label": "Cosmos DB account connection", - "cosmosDBIn_databaseName_help": "Name of the Cosmos DB database that includes the collection to be monitored.", + "cosmosDBIn_databaseName_help": "Name of the Cosmos DB database that includes the container to be monitored.", "cosmosDBIn_databaseName_label": "Database name", - "cosmosDBIn_leaseCollectionName_help": "Name of the collection to store the leases.", + "cosmosDBIn_leaseContainerName_help": "Name of the container to store the leases.", "cosmosDBIn_leaseCollectionName_label": "Collection name for leases", + "cosmosDBIn_leaseContainerName_label": "Container name for leases", "cosmosDBIn_leaseDatabaseName_help": "Name of the database that includes the collection to store the leases.", "cosmosDBIn_leaseDatabaseName_label": "Database name for leases", "cosmosDBIn_name_help": "The name used to identify this binding in your code", @@ -1083,7 +1134,9 @@ "IoTHubServiceBusTopicTriggerCSharp_description": "A C# function that will be run whenever a message is added to the specified Service Bus topic", "temp_category_IoTHub": "IoT Hub", "cosmosDBIn_createIfNotExists_help": "Checks for existence and automatically creates the leases collection.", + "cosmosDBIn_createContainerIfNotExists_help": "Checks for existence and automatically creates the leases container.", "cosmosDBIn_createIfNotExists_label": "Create lease collection if it does not exist", + "cosmosDBIn_createContainerIfNotExists_label": "Create lease container if it does not exist", "EventGridTriggerJavascript_description": "A JavaScript function that will be run whenever an event grid receives a new event", "Identity_help": "The identity that will be used to perform the action.", "Identity_label": "Identity", @@ -1127,6 +1180,8 @@ "DurableFunctionsHttpStart_description": "A function that will trigger whenever it receives an HTTP request to execute an orchestrator function.", "temp_category_durableFunctions": "Durable Functions", "BlobTrigger_name": "Blob trigger", + "blobTrigger_connection_label": "Storage account connection", + "blobTrigger_connection_help": "The name of the app setting containing your storage account connection string", "EventHubTrigger_name": "Event Hub trigger", "HttpTrigger_name": "HTTP trigger", "OutlookMessageWebhookCreator_name": "Outlook message webhook subscription creator", @@ -1195,6 +1250,45 @@ "kafka_consumergroup_help": "Consumer Group", "kafka_consumergroup_label": "Consumer Group", "SqlInputBinding_description": "A function that will be run on an HTTP trigger and returns the results of a provided SQL query.", - "SqlOuputBinding_description": "A function that will be run on an HTTP trigger and takes a list of rows and upserts them into the user table (i.e. If a row doesn't already exist, it is added. If it does, it is updated)." + "SqlOuputBinding_description": "A function that will be run on an HTTP trigger and takes a list of rows and upserts them into the user table (i.e. If a row doesn't already exist, it is added. If it does, it is updated).", + "authenticationEvents_description": "Triggers for Azure AD Authentication event custom extensions. Lets you focus on your business logic.", + "authenticationEvents_trigger_displayName": "Authentication Events Trigger", + "authenticationEvent_trigger_name_label": "Name", + "authenticationEvent_trigger_name_help": "Triggers for Azure AD Authentication event custom extensions. Lets you focus on your business logic. For more information please see /~https://github.com/Azure/microsoft-azure-webJobs-extensions-authentication-events", + "authenticationEvent_trigger_IssuanceStartVer_label": "OnTokenIssuanceStart Version", + "authenticationEvent_trigger_IssuanceStartVer_help": "API Schema Version for OnTokenIssuanceStart Event", + "sqlIn_displayName": "Azure SQL Input Binding", + "sqlIn_name_label": "Name", + "sqlIn_name_help": "The name used to identify this binding in your code.", + "sqlIn_commandText_label": "SQL Command Text", + "sqlIn_commandText_help": "The Transact-SQL query command or name of the stored procedure executed by the binding.", + "sqlIn_commandType_label": "Text or StoredProcedure", + "sqlIn_commandType_help": "The command type used to identify what type of value commandText is, either Text for a T-SQL query or StoredProcedure for a stored procedure.", + "sqlIn_parameters_label": "Parameters", + "sqlIn_parameters_help": "Parameter values passed to the command during execution as a single string. Must follow the format `@param1=param1,@param2=param2`.", + "sql_connection_label": "SQL Connection string setting", + "sql_connection_help": "The name of the app setting containing your Azure SQL binding connection string.", + "sqlOut_displayName": "Azure SQL Output Binding", + "sqlOut_name_label": "Name", + "sqlOut_name_help": "The name of the variable that represents the entity in function code.", + "sqlOut_commandText_label": "Table Name", + "sqlOut_commandText_help": "The name of the table being upserted to by the binding.", + "sqlTrigger_displayName": "Azure SQL Trigger Binding", + "sqlTrigger_name_label": "Name", + "sqlTrigger_name_help": "The name of the parameter that the trigger binds to.", + "sqlTrigger_tableName_label": "Table Name", + "sqlTrigger_tableName_help": "The name of the table being monitored by the trigger.", + "app_filename_label": "Provide a filename for your function", + "app_filename_help": "This is the file where you want to save your function code", + "trigger_functionName_help": "Name of the function you want to create", + "trigger_functionName_label": "Provide a function name", + "app_selected_filename_label": "File Name", + "app_selected_filename_help": "This is the file to which you want to add your function", + "blueprint_filename_label": "Blueprint function file Name", + "blueprint_filename_help": "This is the name of the file where you want to save your blueprint code", + "blueprint_selected_filename_help": "This is the name of the file where you want to add a function to the existing blueprint", + "blueprint_selected_filename_label": "Select a file to save for your blueprint function", + "blueprint_fileName_errorText": "Invalid fileName", + "app_filename_errorText": "Invalid fileName" } } \ No newline at end of file diff --git a/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.ru-RU.json b/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.ru-RU.json index 0b3da4c59..06b9b3c98 100644 --- a/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.ru-RU.json +++ b/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.ru-RU.json @@ -1,6 +1,7 @@ { "lang": { "eventHubOut_connection_help": "Имя параметра приложения, которое содержит строку подключения концентратора событий. У строки подключения должны быть разрешения на отправку.", + "cosmosDBIn_leaseCollectionName_help": "Имя коллекции, в которой хранится аренда", "eventHubOut_connection_label": "Подключение концентратора событий", "eventHubOut_displayName": "Центры событий Azure", "eventHubOut_name_help": "Имя, которое используется для идентификации привязки в коде", @@ -469,13 +470,16 @@ "CosmosDBTriggerCSharp_description": "Функция C#, которая будет запускаться при каждом изменении документов в коллекции документов.", "CosmosDBTriggerJavascript_description": "Функция JavaScript, которая будет запускаться при каждом изменении документов в коллекции документов.", "cosmosDBIn_collectionName_help": "Имя отслеживаемой коллекции.", + "cosmosDBIn_containerName_help": "Имя отслеживаемого контейнера.", "cosmosDBIn_collectionName_label": "Имя коллекции", + "cosmosDBIn_containerName_label": "Имя контейнера", "cosmosDBIn_connection_help": "Имя параметра приложения со строкой подключения к службе, содержащей отслеживаемую коллекцию.", "cosmosDBIn_connection_label": "Подключение учетной записи Cosmos DB", - "cosmosDBIn_databaseName_help": "Имя базы данных Cosmos DB, которая включает отслеживаемую коллекцию.", + "cosmosDBIn_databaseName_help": "Имя базы данных Cosmos DB, которая включает отслеживаемый контейнер.", "cosmosDBIn_databaseName_label": "Имя базы данных", - "cosmosDBIn_leaseCollectionName_help": "Имя коллекции, в которой хранятся сведения об аренде.", + "cosmosDBIn_leaseContainerName_help": "Имя контейнера для хранения сведений об аренде.", "cosmosDBIn_leaseCollectionName_label": "Имя коллекции для аренды", + "cosmosDBIn_leaseContainerName_label": "Имя контейнера аренды", "cosmosDBIn_leaseDatabaseName_help": "Имя базы данных, которая содержит коллекцию аренды.", "cosmosDBIn_leaseDatabaseName_label": "Имя базы данных аренды", "cosmosDBIn_name_help": "Имя, которое используется для идентификации привязки в коде", @@ -484,7 +488,9 @@ "IoTHubServiceBusTopicTriggerCSharp_description": "Функция C#, которая будет запускаться при каждом добавлении сообщения в указанный раздел служебной шины", "temp_category_IoTHub": "Центр IoT", "cosmosDBIn_createIfNotExists_help": "Проверяет существование коллекции аренды и автоматически создает ее при необходимости.", + "cosmosDBIn_createContainerIfNotExists_help": "Проверяет существование контейнера аренды и автоматически создает его при необходимости.", "cosmosDBIn_createIfNotExists_label": "Создать коллекцию аренды, если ее не существует", + "cosmosDBIn_createContainerIfNotExists_label": "Создать контейнер аренды, если он не существует", "EventGridTriggerJavascript_description": "Функция JavaScript, которая будет запускаться при каждом получении нового события сеткой событий", "Identity_help": "Удостоверение, которое будет использоваться для выполнения действия.", "Identity_label": "Удостоверение", @@ -528,6 +534,8 @@ "DurableFunctionsHttpStart_description": "Функция, которая будет срабатывать при каждом получении HTTP-запроса на выполнение функции оркестратора.", "temp_category_durableFunctions": "Устойчивые функции", "BlobTrigger_name": "Триггер BLOB-объектов", + "blobTrigger_connection_label": "Подключение к учетной записи хранения", + "blobTrigger_connection_help": "Имя параметра приложения, содержащего строку подключения вашей учетной записи хранения", "EventHubTrigger_name": "Триггер концентратора событий", "HttpTrigger_name": "Триггер HTTP", "OutlookMessageWebhookCreator_name": "Метод создания подписки веб-перехватчика сообщений Outlook", @@ -596,10 +604,50 @@ "kafka_consumergroup_help": "Группа потребителей", "kafka_consumergroup_label": "Группа потребителей", "SqlInputBinding_description": "Функция, которая выполняется по HTTP-триггеру и возвращает результаты предоставленного запроса SQL.", - "SqlOuputBinding_description": "Функция, которая выполняется по HTTP-триггеру, принимает список строк и выполняет для них операции upsert в таблице пользователя (то есть, если строка еще не существует, она добавляется, а если существует — она обновляется)." + "SqlOuputBinding_description": "Функция, которая выполняется по HTTP-триггеру, принимает список строк и выполняет для них операции upsert в таблице пользователя (то есть, если строка еще не существует, она добавляется, а если существует — она обновляется).", + "authenticationEvents_description": "Триггеры для настраиваемых расширений событий аутентификации Azure AD. Позволяет сосредоточиться на бизнес-логике.", + "authenticationEvents_trigger_displayName": "Триггер события аутентификации", + "authenticationEvent_trigger_name_label": "Имя", + "authenticationEvent_trigger_name_help": "Триггеры для настраиваемых расширений событий аутентификации Azure AD. Позволяет сосредоточиться на бизнес-логике. Дополнительные сведения см. на странице /~https://github.com/Azure/microsoft-azure-webJobs-extensions-authentication-events", + "authenticationEvent_trigger_IssuanceStartVer_label": "Версия OnTokenIssuanceStart", + "authenticationEvent_trigger_IssuanceStartVer_help": "Версия схемы API для события OnTokenIssuanceStart", + "sqlIn_displayName": "Входная привязка Azure SQL", + "sqlIn_name_label": "Имя", + "sqlIn_name_help": "Имя, которое используется для идентификации привязки в коде.", + "sqlIn_commandText_label": "Текст команды SQL", + "sqlIn_commandText_help": "Команда запроса Transact-SQL или имя хранимой процедуры, выполняемой привязкой.", + "sqlIn_commandType_label": "Text или StoredProcedure", + "sqlIn_commandType_help": "Тип команды, используемый для определения типа значения commandText: Text для запроса T-SQL или StoredProcedure для хранимой процедуры.", + "sqlIn_parameters_label": "Параметры", + "sqlIn_parameters_help": "Значения параметров, передаваемые команде во время выполнения в виде одной строки. Должен использоваться формат \"@param1=param1,@param2=param2\".", + "sql_connection_label": "Параметр строки подключения SQL", + "sql_connection_help": "Имя параметра приложения, содержащего строку подключения привязки Azure SQL.", + "sqlOut_displayName": "Выходная привязка Azure SQL", + "sqlOut_name_label": "Имя", + "sqlOut_name_help": "Имя переменной, представляющей сущность в коде функции.", + "sqlOut_commandText_label": "Имя таблицы", + "sqlOut_commandText_help": "Имя таблицы, для которой привязка выполняет действие upsert.", + "sqlTrigger_displayName": "Привязка триггера Azure SQL", + "sqlTrigger_name_label": "Имя", + "sqlTrigger_name_help": "Имя параметра, к которому привязан триггер.", + "sqlTrigger_tableName_label": "Имя таблицы", + "sqlTrigger_tableName_help": "Имя таблицы, отслеживаемой триггером.", + "app_filename_label": "Укажите имя файла для функции", + "app_filename_help": "Это файл, где нужно сохранить код функции", + "trigger_functionName_help": "Имя функции, которую нужно создать", + "trigger_functionName_label": "Укажите имя функции", + "app_selected_filename_label": "Имя файла", + "app_selected_filename_help": "Это файл, куда нужно добавить функцию", + "blueprint_filename_label": "Имя файла функции схемы", + "blueprint_filename_help": "Это имя файла, где нужно сохранить код схемы", + "blueprint_selected_filename_help": "Это имя файла, куда нужно добавить функцию для существующей схемы", + "blueprint_selected_filename_label": "Выберите файл для сохранения функции схемы", + "blueprint_fileName_errorText": "Недопустимое имя файла", + "app_filename_errorText": "Недопустимое имя файла" }, "en": { "eventHubOut_connection_help": "The name of the app setting containing your Event Hub connection string. The connection string must have Send permissions.", + "cosmosDBIn_leaseCollectionName_help": "The name of the collection in which the lease is stored", "eventHubOut_connection_label": "Event Hub connection", "eventHubOut_displayName": "Azure Event Hubs", "eventHubOut_name_help": "The name used to identify this binding in your code", @@ -1068,13 +1116,16 @@ "CosmosDBTriggerCSharp_description": "A C# function that will be run whenever documents change in a document collection.", "CosmosDBTriggerJavascript_description": "A JavaScript function that will be run whenever documents change in a document collection.", "cosmosDBIn_collectionName_help": "Name of the collection to be monitored.", + "cosmosDBIn_containerName_help": "Name of the container to be monitored.", "cosmosDBIn_collectionName_label": "Collection name", + "cosmosDBIn_containerName_label": "Container name", "cosmosDBIn_connection_help": "The name of the App Setting containing the connection string to the service that contains the collection to be monitored.", "cosmosDBIn_connection_label": "Cosmos DB account connection", - "cosmosDBIn_databaseName_help": "Name of the Cosmos DB database that includes the collection to be monitored.", + "cosmosDBIn_databaseName_help": "Name of the Cosmos DB database that includes the container to be monitored.", "cosmosDBIn_databaseName_label": "Database name", - "cosmosDBIn_leaseCollectionName_help": "Name of the collection to store the leases.", + "cosmosDBIn_leaseContainerName_help": "Name of the container to store the leases.", "cosmosDBIn_leaseCollectionName_label": "Collection name for leases", + "cosmosDBIn_leaseContainerName_label": "Container name for leases", "cosmosDBIn_leaseDatabaseName_help": "Name of the database that includes the collection to store the leases.", "cosmosDBIn_leaseDatabaseName_label": "Database name for leases", "cosmosDBIn_name_help": "The name used to identify this binding in your code", @@ -1083,7 +1134,9 @@ "IoTHubServiceBusTopicTriggerCSharp_description": "A C# function that will be run whenever a message is added to the specified Service Bus topic", "temp_category_IoTHub": "IoT Hub", "cosmosDBIn_createIfNotExists_help": "Checks for existence and automatically creates the leases collection.", + "cosmosDBIn_createContainerIfNotExists_help": "Checks for existence and automatically creates the leases container.", "cosmosDBIn_createIfNotExists_label": "Create lease collection if it does not exist", + "cosmosDBIn_createContainerIfNotExists_label": "Create lease container if it does not exist", "EventGridTriggerJavascript_description": "A JavaScript function that will be run whenever an event grid receives a new event", "Identity_help": "The identity that will be used to perform the action.", "Identity_label": "Identity", @@ -1127,6 +1180,8 @@ "DurableFunctionsHttpStart_description": "A function that will trigger whenever it receives an HTTP request to execute an orchestrator function.", "temp_category_durableFunctions": "Durable Functions", "BlobTrigger_name": "Blob trigger", + "blobTrigger_connection_label": "Storage account connection", + "blobTrigger_connection_help": "The name of the app setting containing your storage account connection string", "EventHubTrigger_name": "Event Hub trigger", "HttpTrigger_name": "HTTP trigger", "OutlookMessageWebhookCreator_name": "Outlook message webhook subscription creator", @@ -1195,6 +1250,45 @@ "kafka_consumergroup_help": "Consumer Group", "kafka_consumergroup_label": "Consumer Group", "SqlInputBinding_description": "A function that will be run on an HTTP trigger and returns the results of a provided SQL query.", - "SqlOuputBinding_description": "A function that will be run on an HTTP trigger and takes a list of rows and upserts them into the user table (i.e. If a row doesn't already exist, it is added. If it does, it is updated)." + "SqlOuputBinding_description": "A function that will be run on an HTTP trigger and takes a list of rows and upserts them into the user table (i.e. If a row doesn't already exist, it is added. If it does, it is updated).", + "authenticationEvents_description": "Triggers for Azure AD Authentication event custom extensions. Lets you focus on your business logic.", + "authenticationEvents_trigger_displayName": "Authentication Events Trigger", + "authenticationEvent_trigger_name_label": "Name", + "authenticationEvent_trigger_name_help": "Triggers for Azure AD Authentication event custom extensions. Lets you focus on your business logic. For more information please see /~https://github.com/Azure/microsoft-azure-webJobs-extensions-authentication-events", + "authenticationEvent_trigger_IssuanceStartVer_label": "OnTokenIssuanceStart Version", + "authenticationEvent_trigger_IssuanceStartVer_help": "API Schema Version for OnTokenIssuanceStart Event", + "sqlIn_displayName": "Azure SQL Input Binding", + "sqlIn_name_label": "Name", + "sqlIn_name_help": "The name used to identify this binding in your code.", + "sqlIn_commandText_label": "SQL Command Text", + "sqlIn_commandText_help": "The Transact-SQL query command or name of the stored procedure executed by the binding.", + "sqlIn_commandType_label": "Text or StoredProcedure", + "sqlIn_commandType_help": "The command type used to identify what type of value commandText is, either Text for a T-SQL query or StoredProcedure for a stored procedure.", + "sqlIn_parameters_label": "Parameters", + "sqlIn_parameters_help": "Parameter values passed to the command during execution as a single string. Must follow the format `@param1=param1,@param2=param2`.", + "sql_connection_label": "SQL Connection string setting", + "sql_connection_help": "The name of the app setting containing your Azure SQL binding connection string.", + "sqlOut_displayName": "Azure SQL Output Binding", + "sqlOut_name_label": "Name", + "sqlOut_name_help": "The name of the variable that represents the entity in function code.", + "sqlOut_commandText_label": "Table Name", + "sqlOut_commandText_help": "The name of the table being upserted to by the binding.", + "sqlTrigger_displayName": "Azure SQL Trigger Binding", + "sqlTrigger_name_label": "Name", + "sqlTrigger_name_help": "The name of the parameter that the trigger binds to.", + "sqlTrigger_tableName_label": "Table Name", + "sqlTrigger_tableName_help": "The name of the table being monitored by the trigger.", + "app_filename_label": "Provide a filename for your function", + "app_filename_help": "This is the file where you want to save your function code", + "trigger_functionName_help": "Name of the function you want to create", + "trigger_functionName_label": "Provide a function name", + "app_selected_filename_label": "File Name", + "app_selected_filename_help": "This is the file to which you want to add your function", + "blueprint_filename_label": "Blueprint function file Name", + "blueprint_filename_help": "This is the name of the file where you want to save your blueprint code", + "blueprint_selected_filename_help": "This is the name of the file where you want to add a function to the existing blueprint", + "blueprint_selected_filename_label": "Select a file to save for your blueprint function", + "blueprint_fileName_errorText": "Invalid fileName", + "app_filename_errorText": "Invalid fileName" } } \ No newline at end of file diff --git a/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.sv-SE.json b/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.sv-SE.json index 17d00b3e1..394f4adc4 100644 --- a/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.sv-SE.json +++ b/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.sv-SE.json @@ -1,6 +1,7 @@ { "lang": { "eventHubOut_connection_help": "Namnet på den appinställning som innehåller händelsehubbens anslutningssträng. Anslutningssträngen måste ha behörighet att skicka.", + "cosmosDBIn_leaseCollectionName_help": "Namnet på samlingen där lånet är lagrat", "eventHubOut_connection_label": "Händelsehubbanslutning", "eventHubOut_displayName": "Azure Event Hubs", "eventHubOut_name_help": "Namnet som identifierar den här bindningen i koden", @@ -469,13 +470,16 @@ "CosmosDBTriggerCSharp_description": "En C#-funktion som körs när dokument ändras i en dokumentsamling.", "CosmosDBTriggerJavascript_description": "En JavaScript-funktion som körs när dokument ändras i en dokumentsamling.", "cosmosDBIn_collectionName_help": "Namn på den samling som ska övervakas.", + "cosmosDBIn_containerName_help": "Namn på den container som ska övervakas.", "cosmosDBIn_collectionName_label": "Samlingsnamn", + "cosmosDBIn_containerName_label": "Namn på container", "cosmosDBIn_connection_help": "Namnet på appinställningen med anslutningssträngen till den tjänst som innehåller samlingen som ska övervakas.", "cosmosDBIn_connection_label": "Cosmos DB-kontoanslutning", - "cosmosDBIn_databaseName_help": "Namn på Cosmos DB-databasen som innehåller den samling som ska övervakas.", + "cosmosDBIn_databaseName_help": "Namn på Cosmos DB-databasen som innehåller den container som ska övervakas.", "cosmosDBIn_databaseName_label": "Databasnamn", - "cosmosDBIn_leaseCollectionName_help": "Namnet på samlingen som omfattar lånen.", + "cosmosDBIn_leaseContainerName_help": "Namn på den container som lagrar lånen.", "cosmosDBIn_leaseCollectionName_label": "Namn på samling för lån", + "cosmosDBIn_leaseContainerName_label": "Namn på container för lån", "cosmosDBIn_leaseDatabaseName_help": "Namnet på den databas som innehåller samlingen där lånen lagras.", "cosmosDBIn_leaseDatabaseName_label": "Databasnamnet för lån", "cosmosDBIn_name_help": "Namnet som identifierar den här bindningen i koden", @@ -484,7 +488,9 @@ "IoTHubServiceBusTopicTriggerCSharp_description": "En C#-funktion som körs när ett meddelande läggs till i det angivna Service Bus-ämnet", "temp_category_IoTHub": "IoT-hubb", "cosmosDBIn_createIfNotExists_help": "Söker efter förekomst och skapar automatiskt lånsamlingen.", + "cosmosDBIn_createContainerIfNotExists_help": "Söker efter förekomst och skapar automatiskt låncontainern.", "cosmosDBIn_createIfNotExists_label": "Skapa en lånsamling om ingen finns", + "cosmosDBIn_createContainerIfNotExists_label": "Skapa en låncontainer om ingen finns", "EventGridTriggerJavascript_description": "En JavaScript-funktion som körs när en Event Grid tar emot en ny händelse", "Identity_help": "Identiteten som kommer att användas för att utföra åtgärden.", "Identity_label": "Identitet", @@ -528,6 +534,8 @@ "DurableFunctionsHttpStart_description": "En funktion som aktiveras när den får en HTTP-förfrågan om att köra en Orchestrator-funktion.", "temp_category_durableFunctions": "Durable Functions", "BlobTrigger_name": "Blob-utlösare", + "blobTrigger_connection_label": "Anslutning till lagringskonto", + "blobTrigger_connection_help": "Namnet på den appinställning som innehåller lagringskontoanslutningssträngen", "EventHubTrigger_name": "Händelsehubbutlösare", "HttpTrigger_name": "HTTP-utlösare", "OutlookMessageWebhookCreator_name": "Webhookprenumerationsskapare för Outlook-meddelanden", @@ -596,10 +604,50 @@ "kafka_consumergroup_help": "Konsumentgrupp", "kafka_consumergroup_label": "Konsumentgrupp", "SqlInputBinding_description": "En funktion som kommer att köras på en HTTP-utlösare och som returnerar resultaten för en tillhandahållen SQL-fråga.", - "SqlOuputBinding_description": "En funktion som kommer att köras på en HTTP-utlösare och som tar en lista med rader och infogar/uppdaterar dem i användartabellen (vilket innebär att om det inte redan finns en rad läggs den till, men om den redan finns så uppdateras den)." + "SqlOuputBinding_description": "En funktion som kommer att köras på en HTTP-utlösare och som tar en lista med rader och infogar/uppdaterar dem i användartabellen (vilket innebär att om det inte redan finns en rad läggs den till, men om den redan finns så uppdateras den).", + "authenticationEvents_description": "Utlösare för anpassade tillägg för Azure AD-autentiseringshändelser. Gör att du kan fokusera på din affärslogik.", + "authenticationEvents_trigger_displayName": "Utlösare för autentiseringshändelser", + "authenticationEvent_trigger_name_label": "Namn", + "authenticationEvent_trigger_name_help": "Utlösare för anpassade tillägg för Azure AD-autentiseringshändelser. Gör att du kan fokusera på din affärslogik. Mer information finns i /~https://github.com/Azure/microsoft-azure-webJobs-extensions-authentication-events", + "authenticationEvent_trigger_IssuanceStartVer_label": "OnTokenIssuanceStart-version", + "authenticationEvent_trigger_IssuanceStartVer_help": "API-schemaversion för OnTokenIssuanceStart-händelse", + "sqlIn_displayName": "Azure SQL-indatabindning", + "sqlIn_name_label": "Namn", + "sqlIn_name_help": "Namnet som identifierar den här bindningen i koden.", + "sqlIn_commandText_label": "SQL-kommandotext", + "sqlIn_commandText_help": "Transact-SQL-frågekommandot eller namnet på den lagrade proceduren som körs av bindningen.", + "sqlIn_commandType_label": "Text eller StoredProcedure", + "sqlIn_commandType_help": "Den kommandotyp som används för att identifiera vilken typ av värde commandText är, antingen Text för en T-SQL-fråga eller StoredProcedure för en lagrad procedur.", + "sqlIn_parameters_label": "Parametrar", + "sqlIn_parameters_help": "Parametervärden som skickas till kommandot under körning som en enskild sträng. Måste ha formatet @param1=param1,@param2=param2.", + "sql_connection_label": "Inställning för SQL-anslutningssträng", + "sql_connection_help": "Namnet på den appinställning som innehåller Azure SQL-bindningsanslutningssträngen.", + "sqlOut_displayName": "Azure SQL-utdatabindning", + "sqlOut_name_label": "Namn", + "sqlOut_name_help": "Namnet på variabeln som representerar entiteten i funktionskoden.", + "sqlOut_commandText_label": "Tabellnamn", + "sqlOut_commandText_help": "Namnet på den tabell som bindningen genomför upsert-åtgärd till.", + "sqlTrigger_displayName": "Azure SQL-utlösarbindning", + "sqlTrigger_name_label": "Namn", + "sqlTrigger_name_help": "Namnet på den parameter som utlösaren binds till.", + "sqlTrigger_tableName_label": "Tabellnamn", + "sqlTrigger_tableName_help": "Namnet på den tabell som övervakas av utlösaren.", + "app_filename_label": "Ge din funktion ett filnamn", + "app_filename_help": "Det här är den fil där du vill spara funktionskoden", + "trigger_functionName_help": "Namnet på den funktion som du vill skapa", + "trigger_functionName_label": "Tillhandahåll ett funktionsnamn", + "app_selected_filename_label": "Filnamn", + "app_selected_filename_help": "Det här är den fil där du vill lägga till funktionen", + "blueprint_filename_label": "Namn på skissfunktionsfil", + "blueprint_filename_help": "Detta är namnet på den fil där du vill spara skisskoden", + "blueprint_selected_filename_help": "Det här är namnet på den fil där du ska lägga till en funktion i den befintliga skissen", + "blueprint_selected_filename_label": "Välj en fil att spara för skissfunktionen", + "blueprint_fileName_errorText": "Ogiltigt filnamn", + "app_filename_errorText": "Ogiltigt filnamn" }, "en": { "eventHubOut_connection_help": "The name of the app setting containing your Event Hub connection string. The connection string must have Send permissions.", + "cosmosDBIn_leaseCollectionName_help": "The name of the collection in which the lease is stored", "eventHubOut_connection_label": "Event Hub connection", "eventHubOut_displayName": "Azure Event Hubs", "eventHubOut_name_help": "The name used to identify this binding in your code", @@ -1068,13 +1116,16 @@ "CosmosDBTriggerCSharp_description": "A C# function that will be run whenever documents change in a document collection.", "CosmosDBTriggerJavascript_description": "A JavaScript function that will be run whenever documents change in a document collection.", "cosmosDBIn_collectionName_help": "Name of the collection to be monitored.", + "cosmosDBIn_containerName_help": "Name of the container to be monitored.", "cosmosDBIn_collectionName_label": "Collection name", + "cosmosDBIn_containerName_label": "Container name", "cosmosDBIn_connection_help": "The name of the App Setting containing the connection string to the service that contains the collection to be monitored.", "cosmosDBIn_connection_label": "Cosmos DB account connection", - "cosmosDBIn_databaseName_help": "Name of the Cosmos DB database that includes the collection to be monitored.", + "cosmosDBIn_databaseName_help": "Name of the Cosmos DB database that includes the container to be monitored.", "cosmosDBIn_databaseName_label": "Database name", - "cosmosDBIn_leaseCollectionName_help": "Name of the collection to store the leases.", + "cosmosDBIn_leaseContainerName_help": "Name of the container to store the leases.", "cosmosDBIn_leaseCollectionName_label": "Collection name for leases", + "cosmosDBIn_leaseContainerName_label": "Container name for leases", "cosmosDBIn_leaseDatabaseName_help": "Name of the database that includes the collection to store the leases.", "cosmosDBIn_leaseDatabaseName_label": "Database name for leases", "cosmosDBIn_name_help": "The name used to identify this binding in your code", @@ -1083,7 +1134,9 @@ "IoTHubServiceBusTopicTriggerCSharp_description": "A C# function that will be run whenever a message is added to the specified Service Bus topic", "temp_category_IoTHub": "IoT Hub", "cosmosDBIn_createIfNotExists_help": "Checks for existence and automatically creates the leases collection.", + "cosmosDBIn_createContainerIfNotExists_help": "Checks for existence and automatically creates the leases container.", "cosmosDBIn_createIfNotExists_label": "Create lease collection if it does not exist", + "cosmosDBIn_createContainerIfNotExists_label": "Create lease container if it does not exist", "EventGridTriggerJavascript_description": "A JavaScript function that will be run whenever an event grid receives a new event", "Identity_help": "The identity that will be used to perform the action.", "Identity_label": "Identity", @@ -1127,6 +1180,8 @@ "DurableFunctionsHttpStart_description": "A function that will trigger whenever it receives an HTTP request to execute an orchestrator function.", "temp_category_durableFunctions": "Durable Functions", "BlobTrigger_name": "Blob trigger", + "blobTrigger_connection_label": "Storage account connection", + "blobTrigger_connection_help": "The name of the app setting containing your storage account connection string", "EventHubTrigger_name": "Event Hub trigger", "HttpTrigger_name": "HTTP trigger", "OutlookMessageWebhookCreator_name": "Outlook message webhook subscription creator", @@ -1195,6 +1250,45 @@ "kafka_consumergroup_help": "Consumer Group", "kafka_consumergroup_label": "Consumer Group", "SqlInputBinding_description": "A function that will be run on an HTTP trigger and returns the results of a provided SQL query.", - "SqlOuputBinding_description": "A function that will be run on an HTTP trigger and takes a list of rows and upserts them into the user table (i.e. If a row doesn't already exist, it is added. If it does, it is updated)." + "SqlOuputBinding_description": "A function that will be run on an HTTP trigger and takes a list of rows and upserts them into the user table (i.e. If a row doesn't already exist, it is added. If it does, it is updated).", + "authenticationEvents_description": "Triggers for Azure AD Authentication event custom extensions. Lets you focus on your business logic.", + "authenticationEvents_trigger_displayName": "Authentication Events Trigger", + "authenticationEvent_trigger_name_label": "Name", + "authenticationEvent_trigger_name_help": "Triggers for Azure AD Authentication event custom extensions. Lets you focus on your business logic. For more information please see /~https://github.com/Azure/microsoft-azure-webJobs-extensions-authentication-events", + "authenticationEvent_trigger_IssuanceStartVer_label": "OnTokenIssuanceStart Version", + "authenticationEvent_trigger_IssuanceStartVer_help": "API Schema Version for OnTokenIssuanceStart Event", + "sqlIn_displayName": "Azure SQL Input Binding", + "sqlIn_name_label": "Name", + "sqlIn_name_help": "The name used to identify this binding in your code.", + "sqlIn_commandText_label": "SQL Command Text", + "sqlIn_commandText_help": "The Transact-SQL query command or name of the stored procedure executed by the binding.", + "sqlIn_commandType_label": "Text or StoredProcedure", + "sqlIn_commandType_help": "The command type used to identify what type of value commandText is, either Text for a T-SQL query or StoredProcedure for a stored procedure.", + "sqlIn_parameters_label": "Parameters", + "sqlIn_parameters_help": "Parameter values passed to the command during execution as a single string. Must follow the format `@param1=param1,@param2=param2`.", + "sql_connection_label": "SQL Connection string setting", + "sql_connection_help": "The name of the app setting containing your Azure SQL binding connection string.", + "sqlOut_displayName": "Azure SQL Output Binding", + "sqlOut_name_label": "Name", + "sqlOut_name_help": "The name of the variable that represents the entity in function code.", + "sqlOut_commandText_label": "Table Name", + "sqlOut_commandText_help": "The name of the table being upserted to by the binding.", + "sqlTrigger_displayName": "Azure SQL Trigger Binding", + "sqlTrigger_name_label": "Name", + "sqlTrigger_name_help": "The name of the parameter that the trigger binds to.", + "sqlTrigger_tableName_label": "Table Name", + "sqlTrigger_tableName_help": "The name of the table being monitored by the trigger.", + "app_filename_label": "Provide a filename for your function", + "app_filename_help": "This is the file where you want to save your function code", + "trigger_functionName_help": "Name of the function you want to create", + "trigger_functionName_label": "Provide a function name", + "app_selected_filename_label": "File Name", + "app_selected_filename_help": "This is the file to which you want to add your function", + "blueprint_filename_label": "Blueprint function file Name", + "blueprint_filename_help": "This is the name of the file where you want to save your blueprint code", + "blueprint_selected_filename_help": "This is the name of the file where you want to add a function to the existing blueprint", + "blueprint_selected_filename_label": "Select a file to save for your blueprint function", + "blueprint_fileName_errorText": "Invalid fileName", + "app_filename_errorText": "Invalid fileName" } } \ No newline at end of file diff --git a/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.tr-TR.json b/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.tr-TR.json index 954ddd0b9..ed89f6065 100644 --- a/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.tr-TR.json +++ b/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.tr-TR.json @@ -1,6 +1,7 @@ { "lang": { "eventHubOut_connection_help": "Olay hub'ı bağlantı dizenizi içeren uygulama ayarının adı. Bağlantı dizesi, Gönderme izinlerine sahip olmalıdır.", + "cosmosDBIn_leaseCollectionName_help": "Kiranın depolandığı koleksiyonun adı", "eventHubOut_connection_label": "Olay Hub'ı bağlantısı", "eventHubOut_displayName": "Azure Event Hubs", "eventHubOut_name_help": "Kodunuzda bu bağlamayı tanımlamak için kullanılan ad", @@ -469,13 +470,16 @@ "CosmosDBTriggerCSharp_description": "Belge koleksiyonundaki belgeler değiştirildiğinde çalıştırılacak bir C# işlevi.", "CosmosDBTriggerJavascript_description": "Belge koleksiyonundaki belgeler değiştirildiğinde çalıştırılacak bir JavaScript işlevi.", "cosmosDBIn_collectionName_help": "İzlenecek koleksiyonun adı.", + "cosmosDBIn_containerName_help": "İzlenecek kapsayıcının adı.", "cosmosDBIn_collectionName_label": "Koleksiyon adı", + "cosmosDBIn_containerName_label": "Kapsayıcı adı", "cosmosDBIn_connection_help": "İzlenecek koleksiyonu içeren hizmete yönelik bağlantı dizesini içeren Uygulama Ayarı adı.", "cosmosDBIn_connection_label": "Cosmos DB hesabı bağlantısı", - "cosmosDBIn_databaseName_help": "İzlenecek koleksiyonu içeren Cosmos DB veritabanının adı.", + "cosmosDBIn_databaseName_help": "İzlenecek kapsayıcıyı içeren Cosmos DB veritabanının adı.", "cosmosDBIn_databaseName_label": "Veritabanı adı", - "cosmosDBIn_leaseCollectionName_help": "Kiraları depolamak için kullanılacak koleksiyonun adı.", + "cosmosDBIn_leaseContainerName_help": "Kiralamaları depolamak için kullanılan kapsayıcının adı.", "cosmosDBIn_leaseCollectionName_label": "Kiralar için koleksiyon adı", + "cosmosDBIn_leaseContainerName_label": "Kiralama kapsayıcısı adı", "cosmosDBIn_leaseDatabaseName_help": "Kiraların depolandığı koleksiyonu içeren veritabanının adı.", "cosmosDBIn_leaseDatabaseName_label": "Kiralar için veritabanı adı", "cosmosDBIn_name_help": "Kodunuzda bu bağlamayı tanımlamak için kullanılan ad", @@ -484,7 +488,9 @@ "IoTHubServiceBusTopicTriggerCSharp_description": "Belirtilen Service Bus konu başlığına ileti eklendiğinde çalıştırılacak bir C# işlevi", "temp_category_IoTHub": "IoT Hub", "cosmosDBIn_createIfNotExists_help": "Koleksiyonun varlığını denetler ve koleksiyonu otomatik olarak oluşturup kiralar.", + "cosmosDBIn_createContainerIfNotExists_help": "Kiralama kapsayıcısının varlığını denetler ve kiralama kapsayıcısını otomatik olarak oluşturur.", "cosmosDBIn_createIfNotExists_label": "Henüz yoksa kira koleksiyonu oluşturun", + "cosmosDBIn_createContainerIfNotExists_label": "Mevcut değilse kiralama kapsayıcısı oluştur", "EventGridTriggerJavascript_description": "Bir olay kılavuzu her yeni olay aldığında çalıştırılacak bir JavaScript işlevi", "Identity_help": "Eylemi gerçekleştirmek için kullanılacak kimlik.", "Identity_label": "Kimlik", @@ -528,6 +534,8 @@ "DurableFunctionsHttpStart_description": "Bir düzenleyici işlevini yürütmek için bir HTTP isteği alındığı zaman tetiklenecek işlev.", "temp_category_durableFunctions": "Dayanıklı İşlevler", "BlobTrigger_name": "Blob tetikleyicisi", + "blobTrigger_connection_label": "Depolama hesabı bağlantısı", + "blobTrigger_connection_help": "Depolama hesabı bağlantı dizenizi içeren uygulama ayarının adı", "EventHubTrigger_name": "Olay Hub'ı tetikleyicisi", "HttpTrigger_name": "HTTP tetikleyicisi", "OutlookMessageWebhookCreator_name": "Outlook ileti web kancası aboneliği oluşturucusu", @@ -596,10 +604,50 @@ "kafka_consumergroup_help": "Tüketici Grubu", "kafka_consumergroup_label": "Tüketici Grubu", "SqlInputBinding_description": "Bir HTTP tetikleyicisinde çalıştırılacak ve belirtilen bir SQL sorgusunun sonuçlarını döndüren işlev.", - "SqlOuputBinding_description": "Bir HTTP tetikleyicisinde çalıştırılacak ve satır listesini alıp bunları kullanıcı tablosuna güncelleştiren/ekleyen işlev (ör. bir satır zaten yoksa eklenir. Varsa güncelleştirilir)." + "SqlOuputBinding_description": "Bir HTTP tetikleyicisinde çalıştırılacak ve satır listesini alıp bunları kullanıcı tablosuna güncelleştiren/ekleyen işlev (ör. bir satır zaten yoksa eklenir. Varsa güncelleştirilir).", + "authenticationEvents_description": "Azure AD Kimlik Doğrulaması olayı özel uzantıları için tetikleyiciler. İş mantığınıza odaklanmanıza olanak tanır.", + "authenticationEvents_trigger_displayName": "Kimlik Doğrulaması Olayı Tetikleyici", + "authenticationEvent_trigger_name_label": "Ad", + "authenticationEvent_trigger_name_help": "Azure AD Kimlik Doğrulaması olayı özel uzantıları için tetikleyiciler. İş mantığınıza odaklanmanıza olanak tanır. Daha fazla bilgi için lütfen /~https://github.com/Azure/microsoft-azure-webJobs-extensions-authentication-events sayfasına bakın", + "authenticationEvent_trigger_IssuanceStartVer_label": "OnTokenIssuanceStart Sürümü", + "authenticationEvent_trigger_IssuanceStartVer_help": "OnTokenIssuanceStart Olayı için API Şeması Sürümü", + "sqlIn_displayName": "Azure SQL Giriş Bağlaması", + "sqlIn_name_label": "Ad", + "sqlIn_name_help": "Kodunuzda bu bağlamayı tanımlamak için kullanılan ad.", + "sqlIn_commandText_label": "SQL Komut Metni", + "sqlIn_commandText_help": "Bağlama tarafından yürütülen saklı yordamın Transact-SQL sorgu komutu veya adı.", + "sqlIn_commandType_label": "Metin veya StoredProcedure", + "sqlIn_commandType_help": "CommandText'in ne tür bir değer olduğunu (T-SQL sorgusu için Metin veya saklı yordam için StoredProcedure) belirlemek için kullanılan komut türü.", + "sqlIn_parameters_label": "Parametreler", + "sqlIn_parameters_help": "Yürütme sırasında komuta tek bir dize olarak geçirilen parametre değerleri. '@param1=param1,@param2=param2' biçiminde olmalıdır.", + "sql_connection_label": "SQL Bağlantı dizesi ayarı", + "sql_connection_help": "Azure SQL bağlaması bağlantı dizenizi içeren uygulama ayarının adı.", + "sqlOut_displayName": "Azure SQL Çıkış Bağlaması", + "sqlOut_name_label": "Ad", + "sqlOut_name_help": "İşlev kodundaki varlığı temsil eden değişkenin adı.", + "sqlOut_commandText_label": "Tablo Adı", + "sqlOut_commandText_help": "Bağlama tarafından güncelleştirilen/eklenen tablonun adı.", + "sqlTrigger_displayName": "Azure SQL Tetikleyici Bağlama", + "sqlTrigger_name_label": "Ad", + "sqlTrigger_name_help": "Tetikleyicinin bağlandığı parametrenin adı.", + "sqlTrigger_tableName_label": "Tablo Adı", + "sqlTrigger_tableName_help": "Tetikleyici tarafından izlenen tablonun adı.", + "app_filename_label": "İşleviniz için bir dosya adı belirtin", + "app_filename_help": "Bu, işlev kodunuzu kaydetmek istediğiniz dosyadır", + "trigger_functionName_help": "Oluşturmak istediğiniz işlevin adı", + "trigger_functionName_label": "İşlev adı sağlayın", + "app_selected_filename_label": "Dosya Adı", + "app_selected_filename_help": "Bu, işlevinizi eklemek istediğiniz dosyadır", + "blueprint_filename_label": "Şema işlevi dosyası Adı", + "blueprint_filename_help": "Bu, şema kodunuzu kaydetmek istediğiniz dosyanın adıdır", + "blueprint_selected_filename_help": "Bu, var olan şemaya işlev eklemek istediğiniz dosyanın adıdır", + "blueprint_selected_filename_label": "Şema işleviniz için kaydetmek istediğiniz dosyayı seçin", + "blueprint_fileName_errorText": "Geçersiz fileName", + "app_filename_errorText": "Geçersiz fileName" }, "en": { "eventHubOut_connection_help": "The name of the app setting containing your Event Hub connection string. The connection string must have Send permissions.", + "cosmosDBIn_leaseCollectionName_help": "The name of the collection in which the lease is stored", "eventHubOut_connection_label": "Event Hub connection", "eventHubOut_displayName": "Azure Event Hubs", "eventHubOut_name_help": "The name used to identify this binding in your code", @@ -1068,13 +1116,16 @@ "CosmosDBTriggerCSharp_description": "A C# function that will be run whenever documents change in a document collection.", "CosmosDBTriggerJavascript_description": "A JavaScript function that will be run whenever documents change in a document collection.", "cosmosDBIn_collectionName_help": "Name of the collection to be monitored.", + "cosmosDBIn_containerName_help": "Name of the container to be monitored.", "cosmosDBIn_collectionName_label": "Collection name", + "cosmosDBIn_containerName_label": "Container name", "cosmosDBIn_connection_help": "The name of the App Setting containing the connection string to the service that contains the collection to be monitored.", "cosmosDBIn_connection_label": "Cosmos DB account connection", - "cosmosDBIn_databaseName_help": "Name of the Cosmos DB database that includes the collection to be monitored.", + "cosmosDBIn_databaseName_help": "Name of the Cosmos DB database that includes the container to be monitored.", "cosmosDBIn_databaseName_label": "Database name", - "cosmosDBIn_leaseCollectionName_help": "Name of the collection to store the leases.", + "cosmosDBIn_leaseContainerName_help": "Name of the container to store the leases.", "cosmosDBIn_leaseCollectionName_label": "Collection name for leases", + "cosmosDBIn_leaseContainerName_label": "Container name for leases", "cosmosDBIn_leaseDatabaseName_help": "Name of the database that includes the collection to store the leases.", "cosmosDBIn_leaseDatabaseName_label": "Database name for leases", "cosmosDBIn_name_help": "The name used to identify this binding in your code", @@ -1083,7 +1134,9 @@ "IoTHubServiceBusTopicTriggerCSharp_description": "A C# function that will be run whenever a message is added to the specified Service Bus topic", "temp_category_IoTHub": "IoT Hub", "cosmosDBIn_createIfNotExists_help": "Checks for existence and automatically creates the leases collection.", + "cosmosDBIn_createContainerIfNotExists_help": "Checks for existence and automatically creates the leases container.", "cosmosDBIn_createIfNotExists_label": "Create lease collection if it does not exist", + "cosmosDBIn_createContainerIfNotExists_label": "Create lease container if it does not exist", "EventGridTriggerJavascript_description": "A JavaScript function that will be run whenever an event grid receives a new event", "Identity_help": "The identity that will be used to perform the action.", "Identity_label": "Identity", @@ -1127,6 +1180,8 @@ "DurableFunctionsHttpStart_description": "A function that will trigger whenever it receives an HTTP request to execute an orchestrator function.", "temp_category_durableFunctions": "Durable Functions", "BlobTrigger_name": "Blob trigger", + "blobTrigger_connection_label": "Storage account connection", + "blobTrigger_connection_help": "The name of the app setting containing your storage account connection string", "EventHubTrigger_name": "Event Hub trigger", "HttpTrigger_name": "HTTP trigger", "OutlookMessageWebhookCreator_name": "Outlook message webhook subscription creator", @@ -1195,6 +1250,45 @@ "kafka_consumergroup_help": "Consumer Group", "kafka_consumergroup_label": "Consumer Group", "SqlInputBinding_description": "A function that will be run on an HTTP trigger and returns the results of a provided SQL query.", - "SqlOuputBinding_description": "A function that will be run on an HTTP trigger and takes a list of rows and upserts them into the user table (i.e. If a row doesn't already exist, it is added. If it does, it is updated)." + "SqlOuputBinding_description": "A function that will be run on an HTTP trigger and takes a list of rows and upserts them into the user table (i.e. If a row doesn't already exist, it is added. If it does, it is updated).", + "authenticationEvents_description": "Triggers for Azure AD Authentication event custom extensions. Lets you focus on your business logic.", + "authenticationEvents_trigger_displayName": "Authentication Events Trigger", + "authenticationEvent_trigger_name_label": "Name", + "authenticationEvent_trigger_name_help": "Triggers for Azure AD Authentication event custom extensions. Lets you focus on your business logic. For more information please see /~https://github.com/Azure/microsoft-azure-webJobs-extensions-authentication-events", + "authenticationEvent_trigger_IssuanceStartVer_label": "OnTokenIssuanceStart Version", + "authenticationEvent_trigger_IssuanceStartVer_help": "API Schema Version for OnTokenIssuanceStart Event", + "sqlIn_displayName": "Azure SQL Input Binding", + "sqlIn_name_label": "Name", + "sqlIn_name_help": "The name used to identify this binding in your code.", + "sqlIn_commandText_label": "SQL Command Text", + "sqlIn_commandText_help": "The Transact-SQL query command or name of the stored procedure executed by the binding.", + "sqlIn_commandType_label": "Text or StoredProcedure", + "sqlIn_commandType_help": "The command type used to identify what type of value commandText is, either Text for a T-SQL query or StoredProcedure for a stored procedure.", + "sqlIn_parameters_label": "Parameters", + "sqlIn_parameters_help": "Parameter values passed to the command during execution as a single string. Must follow the format `@param1=param1,@param2=param2`.", + "sql_connection_label": "SQL Connection string setting", + "sql_connection_help": "The name of the app setting containing your Azure SQL binding connection string.", + "sqlOut_displayName": "Azure SQL Output Binding", + "sqlOut_name_label": "Name", + "sqlOut_name_help": "The name of the variable that represents the entity in function code.", + "sqlOut_commandText_label": "Table Name", + "sqlOut_commandText_help": "The name of the table being upserted to by the binding.", + "sqlTrigger_displayName": "Azure SQL Trigger Binding", + "sqlTrigger_name_label": "Name", + "sqlTrigger_name_help": "The name of the parameter that the trigger binds to.", + "sqlTrigger_tableName_label": "Table Name", + "sqlTrigger_tableName_help": "The name of the table being monitored by the trigger.", + "app_filename_label": "Provide a filename for your function", + "app_filename_help": "This is the file where you want to save your function code", + "trigger_functionName_help": "Name of the function you want to create", + "trigger_functionName_label": "Provide a function name", + "app_selected_filename_label": "File Name", + "app_selected_filename_help": "This is the file to which you want to add your function", + "blueprint_filename_label": "Blueprint function file Name", + "blueprint_filename_help": "This is the name of the file where you want to save your blueprint code", + "blueprint_selected_filename_help": "This is the name of the file where you want to add a function to the existing blueprint", + "blueprint_selected_filename_label": "Select a file to save for your blueprint function", + "blueprint_fileName_errorText": "Invalid fileName", + "app_filename_errorText": "Invalid fileName" } } \ No newline at end of file diff --git a/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.zh-CN.json b/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.zh-CN.json index 03ff7ddaf..d8b31e1b9 100644 --- a/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.zh-CN.json +++ b/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.zh-CN.json @@ -1,6 +1,7 @@ { "lang": { "eventHubOut_connection_help": "包含你的事件中心连接字符串的应用设置名称。连接字符串必须具有“发送”权限。", + "cosmosDBIn_leaseCollectionName_help": "在其中存储租约的集合的名称", "eventHubOut_connection_label": "事件中心连接", "eventHubOut_displayName": "Azure 事件中心", "eventHubOut_name_help": "用于在你的代码中标识此绑定的名称", @@ -469,13 +470,16 @@ "CosmosDBTriggerCSharp_description": "一个 C# 函数,每当文档集合中的文档发生更改时,它都会运行。", "CosmosDBTriggerJavascript_description": "一个 JavaScript 函数,每当文档集合中的文档发生更改时,它都会运行。", "cosmosDBIn_collectionName_help": "要监视的集合的名称。", + "cosmosDBIn_containerName_help": "要监视的容器的名称。", "cosmosDBIn_collectionName_label": "集合名称", + "cosmosDBIn_containerName_label": "容器名称", "cosmosDBIn_connection_help": "包含到该服务的连接字符串的应用设置的名称,该服务中包含要监视的集合。", "cosmosDBIn_connection_label": "Cosmos DB 帐户连接", - "cosmosDBIn_databaseName_help": "包含要监视的集合的 Cosmos DB 数据库的名称。", + "cosmosDBIn_databaseName_help": "包含要监视的容器的 Cosmos DB 数据库的名称。", "cosmosDBIn_databaseName_label": "数据库名称", - "cosmosDBIn_leaseCollectionName_help": "要存储租用的集合的名称。", + "cosmosDBIn_leaseContainerName_help": "要存储租约的容器的名称。", "cosmosDBIn_leaseCollectionName_label": "租用的集合名称", + "cosmosDBIn_leaseContainerName_label": "用于租约的容器名称", "cosmosDBIn_leaseDatabaseName_help": "包括要存储租用的集合的数据库名称。", "cosmosDBIn_leaseDatabaseName_label": "租用的数据库名称", "cosmosDBIn_name_help": "用于在你的代码中标识此绑定的名称", @@ -484,7 +488,9 @@ "IoTHubServiceBusTopicTriggerCSharp_description": "一个 C# 函数,每当将消息添加到指定的服务总线主题时,它都会运行", "temp_category_IoTHub": "IoT 中心", "cosmosDBIn_createIfNotExists_help": "检查是否存在并自动创建租用集合。", + "cosmosDBIn_createContainerIfNotExists_help": "检查是否存在并自动创建租约容器。", "cosmosDBIn_createIfNotExists_label": "如果不存在,创建租用集合", + "cosmosDBIn_createContainerIfNotExists_label": "创建租约容器(如果不存在)", "EventGridTriggerJavascript_description": "一个 JavaScript 函数,每当事件网格收到一个新事件时,它都会运行", "Identity_help": "将用于执行操作的标识。", "Identity_label": "标识", @@ -528,6 +534,8 @@ "DurableFunctionsHttpStart_description": "将于接收到执行 orchestrator 函数的 HTTP 请求时触发的函数。", "temp_category_durableFunctions": "Durable Functions", "BlobTrigger_name": "Blob 触发器", + "blobTrigger_connection_label": "存储帐户连接", + "blobTrigger_connection_help": "包含你的存储帐户连接字符串的应用设置的名称。", "EventHubTrigger_name": "事件中心触发器", "HttpTrigger_name": "HTTP 触发器", "OutlookMessageWebhookCreator_name": "Outlook 邮件 webhook 订阅创建者", @@ -596,10 +604,50 @@ "kafka_consumergroup_help": "使用者组", "kafka_consumergroup_label": "使用者组", "SqlInputBinding_description": "将在 HTTP 触发器上运行并返回所提供的 SQL 查询结果的函数。", - "SqlOuputBinding_description": "将在 HTTP 触发器上运行并获取行列表,以及将其更新插入到用户表中的函数(即,如果某行尚不存在,则添加该行。如果存在,则将其更新)。" + "SqlOuputBinding_description": "将在 HTTP 触发器上运行并获取行列表,以及将其更新插入到用户表中的函数(即,如果某行尚不存在,则添加该行。如果存在,则将其更新)。", + "authenticationEvents_description": "Azure AD 身份验证事件自定义扩展的触发器。让你专注于业务逻辑。", + "authenticationEvents_trigger_displayName": "身份验证事件触发器", + "authenticationEvent_trigger_name_label": "名称", + "authenticationEvent_trigger_name_help": "Azure AD 身份验证事件自定义扩展的触发器。让你专注于业务逻辑。有关详细信息,请参阅 /~https://github.com/Azure/microsoft-azure-webJobs-extensions-authentication-events", + "authenticationEvent_trigger_IssuanceStartVer_label": "OnTokenIssuanceStart 版本", + "authenticationEvent_trigger_IssuanceStartVer_help": "OnTokenIssuanceStart 事件的 API 架构版本", + "sqlIn_displayName": "Azure SQL 输入绑定", + "sqlIn_name_label": "名称", + "sqlIn_name_help": "用于在代码中标识此绑定的名称。", + "sqlIn_commandText_label": "SQL 命令文本", + "sqlIn_commandText_help": "由绑定执行的存储过程的 Transact-SQL 查询命令或名称。", + "sqlIn_commandType_label": "文本或 StoredProcedure", + "sqlIn_commandType_help": "命令类型,用于标识 commandText 的值类型,可以是 T-SQL 查询的文本,也可以是存储过程的 StoredProcedure。", + "sqlIn_parameters_label": "参数", + "sqlIn_parameters_help": "在执行期间作为单个字符串传递给命令的参数值。必须采用 `@param1=param1,@param2=param2` 格式。", + "sql_connection_label": "SQL 连接字符串设置", + "sql_connection_help": "包含 Azure SQL 绑定连接字符串的应用设置的名称。", + "sqlOut_displayName": "Azure SQL 输出绑定", + "sqlOut_name_label": "名称", + "sqlOut_name_help": "表示函数代码中实体的变量名称。", + "sqlOut_commandText_label": "表单名称", + "sqlOut_commandText_help": "绑定要更新插入到的表的名称。", + "sqlTrigger_displayName": "Azure SQL 触发器绑定", + "sqlTrigger_name_label": "名称", + "sqlTrigger_name_help": "触发器绑定到的参数的名称。", + "sqlTrigger_tableName_label": "表名称", + "sqlTrigger_tableName_help": "触发器监视的表的名称。", + "app_filename_label": "为函数提供文件名", + "app_filename_help": "这是要在其中保存函数代码的文件", + "trigger_functionName_help": "要创建的函数的名称", + "trigger_functionName_label": "提供函数名称", + "app_selected_filename_label": "文件名", + "app_selected_filename_help": "这是要向其添加函数的文件", + "blueprint_filename_label": "蓝图函数文件名", + "blueprint_filename_help": "这是要在其中保存蓝图代码的文件的名称", + "blueprint_selected_filename_help": "这是要在其中向现有蓝图添加函数的文件的名称", + "blueprint_selected_filename_label": "选择要为蓝图函数保存的文件", + "blueprint_fileName_errorText": "fileName 无效", + "app_filename_errorText": "fileName 无效" }, "en": { "eventHubOut_connection_help": "The name of the app setting containing your Event Hub connection string. The connection string must have Send permissions.", + "cosmosDBIn_leaseCollectionName_help": "The name of the collection in which the lease is stored", "eventHubOut_connection_label": "Event Hub connection", "eventHubOut_displayName": "Azure Event Hubs", "eventHubOut_name_help": "The name used to identify this binding in your code", @@ -1068,13 +1116,16 @@ "CosmosDBTriggerCSharp_description": "A C# function that will be run whenever documents change in a document collection.", "CosmosDBTriggerJavascript_description": "A JavaScript function that will be run whenever documents change in a document collection.", "cosmosDBIn_collectionName_help": "Name of the collection to be monitored.", + "cosmosDBIn_containerName_help": "Name of the container to be monitored.", "cosmosDBIn_collectionName_label": "Collection name", + "cosmosDBIn_containerName_label": "Container name", "cosmosDBIn_connection_help": "The name of the App Setting containing the connection string to the service that contains the collection to be monitored.", "cosmosDBIn_connection_label": "Cosmos DB account connection", - "cosmosDBIn_databaseName_help": "Name of the Cosmos DB database that includes the collection to be monitored.", + "cosmosDBIn_databaseName_help": "Name of the Cosmos DB database that includes the container to be monitored.", "cosmosDBIn_databaseName_label": "Database name", - "cosmosDBIn_leaseCollectionName_help": "Name of the collection to store the leases.", + "cosmosDBIn_leaseContainerName_help": "Name of the container to store the leases.", "cosmosDBIn_leaseCollectionName_label": "Collection name for leases", + "cosmosDBIn_leaseContainerName_label": "Container name for leases", "cosmosDBIn_leaseDatabaseName_help": "Name of the database that includes the collection to store the leases.", "cosmosDBIn_leaseDatabaseName_label": "Database name for leases", "cosmosDBIn_name_help": "The name used to identify this binding in your code", @@ -1083,7 +1134,9 @@ "IoTHubServiceBusTopicTriggerCSharp_description": "A C# function that will be run whenever a message is added to the specified Service Bus topic", "temp_category_IoTHub": "IoT Hub", "cosmosDBIn_createIfNotExists_help": "Checks for existence and automatically creates the leases collection.", + "cosmosDBIn_createContainerIfNotExists_help": "Checks for existence and automatically creates the leases container.", "cosmosDBIn_createIfNotExists_label": "Create lease collection if it does not exist", + "cosmosDBIn_createContainerIfNotExists_label": "Create lease container if it does not exist", "EventGridTriggerJavascript_description": "A JavaScript function that will be run whenever an event grid receives a new event", "Identity_help": "The identity that will be used to perform the action.", "Identity_label": "Identity", @@ -1127,6 +1180,8 @@ "DurableFunctionsHttpStart_description": "A function that will trigger whenever it receives an HTTP request to execute an orchestrator function.", "temp_category_durableFunctions": "Durable Functions", "BlobTrigger_name": "Blob trigger", + "blobTrigger_connection_label": "Storage account connection", + "blobTrigger_connection_help": "The name of the app setting containing your storage account connection string", "EventHubTrigger_name": "Event Hub trigger", "HttpTrigger_name": "HTTP trigger", "OutlookMessageWebhookCreator_name": "Outlook message webhook subscription creator", @@ -1195,6 +1250,45 @@ "kafka_consumergroup_help": "Consumer Group", "kafka_consumergroup_label": "Consumer Group", "SqlInputBinding_description": "A function that will be run on an HTTP trigger and returns the results of a provided SQL query.", - "SqlOuputBinding_description": "A function that will be run on an HTTP trigger and takes a list of rows and upserts them into the user table (i.e. If a row doesn't already exist, it is added. If it does, it is updated)." + "SqlOuputBinding_description": "A function that will be run on an HTTP trigger and takes a list of rows and upserts them into the user table (i.e. If a row doesn't already exist, it is added. If it does, it is updated).", + "authenticationEvents_description": "Triggers for Azure AD Authentication event custom extensions. Lets you focus on your business logic.", + "authenticationEvents_trigger_displayName": "Authentication Events Trigger", + "authenticationEvent_trigger_name_label": "Name", + "authenticationEvent_trigger_name_help": "Triggers for Azure AD Authentication event custom extensions. Lets you focus on your business logic. For more information please see /~https://github.com/Azure/microsoft-azure-webJobs-extensions-authentication-events", + "authenticationEvent_trigger_IssuanceStartVer_label": "OnTokenIssuanceStart Version", + "authenticationEvent_trigger_IssuanceStartVer_help": "API Schema Version for OnTokenIssuanceStart Event", + "sqlIn_displayName": "Azure SQL Input Binding", + "sqlIn_name_label": "Name", + "sqlIn_name_help": "The name used to identify this binding in your code.", + "sqlIn_commandText_label": "SQL Command Text", + "sqlIn_commandText_help": "The Transact-SQL query command or name of the stored procedure executed by the binding.", + "sqlIn_commandType_label": "Text or StoredProcedure", + "sqlIn_commandType_help": "The command type used to identify what type of value commandText is, either Text for a T-SQL query or StoredProcedure for a stored procedure.", + "sqlIn_parameters_label": "Parameters", + "sqlIn_parameters_help": "Parameter values passed to the command during execution as a single string. Must follow the format `@param1=param1,@param2=param2`.", + "sql_connection_label": "SQL Connection string setting", + "sql_connection_help": "The name of the app setting containing your Azure SQL binding connection string.", + "sqlOut_displayName": "Azure SQL Output Binding", + "sqlOut_name_label": "Name", + "sqlOut_name_help": "The name of the variable that represents the entity in function code.", + "sqlOut_commandText_label": "Table Name", + "sqlOut_commandText_help": "The name of the table being upserted to by the binding.", + "sqlTrigger_displayName": "Azure SQL Trigger Binding", + "sqlTrigger_name_label": "Name", + "sqlTrigger_name_help": "The name of the parameter that the trigger binds to.", + "sqlTrigger_tableName_label": "Table Name", + "sqlTrigger_tableName_help": "The name of the table being monitored by the trigger.", + "app_filename_label": "Provide a filename for your function", + "app_filename_help": "This is the file where you want to save your function code", + "trigger_functionName_help": "Name of the function you want to create", + "trigger_functionName_label": "Provide a function name", + "app_selected_filename_label": "File Name", + "app_selected_filename_help": "This is the file to which you want to add your function", + "blueprint_filename_label": "Blueprint function file Name", + "blueprint_filename_help": "This is the name of the file where you want to save your blueprint code", + "blueprint_selected_filename_help": "This is the name of the file where you want to add a function to the existing blueprint", + "blueprint_selected_filename_label": "Select a file to save for your blueprint function", + "blueprint_fileName_errorText": "Invalid fileName", + "app_filename_errorText": "Invalid fileName" } } \ No newline at end of file diff --git a/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.zh-TW.json b/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.zh-TW.json index 772c2fee9..bc6950b75 100644 --- a/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.zh-TW.json +++ b/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/resources/Resources.zh-TW.json @@ -1,6 +1,7 @@ { "lang": { "eventHubOut_connection_help": "內含您事件中樞連接字串之應用程式設定的名稱。此連接字串必須具備「傳送」權限。", + "cosmosDBIn_leaseCollectionName_help": "在其中儲存租用之集合的名稱", "eventHubOut_connection_label": "事件中樞連線", "eventHubOut_displayName": "Azure 事件中樞", "eventHubOut_name_help": "用以在程式碼中識別此繫結的名稱", @@ -469,13 +470,16 @@ "CosmosDBTriggerCSharp_description": "此 C# 函式會在文件集合中的文件有所變更時執行。", "CosmosDBTriggerJavascript_description": "此 JavaScript 函式會在文件集合中的文件有所變更時執行。", "cosmosDBIn_collectionName_help": "要監視之集合的名稱。", + "cosmosDBIn_containerName_help": "要監視的容器名稱。", "cosmosDBIn_collectionName_label": "集合名稱", + "cosmosDBIn_containerName_label": "容器名稱", "cosmosDBIn_connection_help": "應用程式設定的名稱。此應用程式設定包含對服務的連接字串,而該服務則包含要監視的集合。", "cosmosDBIn_connection_label": "Cosmos DB 帳戶連線", - "cosmosDBIn_databaseName_help": "Cosmos DB 資料庫的名稱。該資料庫包含要監視的集合。", + "cosmosDBIn_databaseName_help": "Cosmos DB 資料庫的名稱。該資料庫包含要監視的容器。", "cosmosDBIn_databaseName_label": "資料庫名稱", - "cosmosDBIn_leaseCollectionName_help": "集合的名稱。該集合將用以存放租用。", + "cosmosDBIn_leaseContainerName_help": "集合的名稱。該容易將用以存放租用。", "cosmosDBIn_leaseCollectionName_label": "租用的集合名稱", + "cosmosDBIn_leaseContainerName_label": "租用的容器名稱", "cosmosDBIn_leaseDatabaseName_help": "資料庫的名稱。該資料庫包含用以存放租用的集合。", "cosmosDBIn_leaseDatabaseName_label": "租用的資料庫名稱", "cosmosDBIn_name_help": "用以在程式碼中識別此繫結的名稱", @@ -484,7 +488,9 @@ "IoTHubServiceBusTopicTriggerCSharp_description": "此 C# 函式會在有訊息新增到指定的服務匯流排主題時執行", "temp_category_IoTHub": "IoT 中樞", "cosmosDBIn_createIfNotExists_help": "確定存在後自動建立租用集合。", + "cosmosDBIn_createContainerIfNotExists_help": "確定存在後自動建立租用容器。", "cosmosDBIn_createIfNotExists_label": "若不存在,則建立租用集合", + "cosmosDBIn_createContainerIfNotExists_label": "若不存在,則建立租用容器", "EventGridTriggerJavascript_description": "此 JavaScript 函式會在事件格線收到新事件時執行", "Identity_help": "用以執行動作的身分識別。", "Identity_label": "身分識別", @@ -528,6 +534,8 @@ "DurableFunctionsHttpStart_description": "會在每次收到執行協調器函式的 HTTP 要求時觸發的函式。", "temp_category_durableFunctions": "Durable Functions", "BlobTrigger_name": "Blob 觸發程序", + "blobTrigger_connection_label": "儲存體帳戶連線", + "blobTrigger_connection_help": "內含您儲存體帳戶連接字串之應用程式設定的名稱。", "EventHubTrigger_name": "事件中樞觸發程序", "HttpTrigger_name": "HTTP 觸發程序", "OutlookMessageWebhookCreator_name": "Outlook 訊息 Webhook 訂閱建立者", @@ -596,10 +604,50 @@ "kafka_consumergroup_help": "取用者群組", "kafka_consumergroup_label": "取用者群組", "SqlInputBinding_description": "將在 HTTP 觸發程式上執行的函式,並傳回所提供 SQL 查詢的結果。", - "SqlOuputBinding_description": "將在 HTTP 觸發程式上執行的函式,並取得資料列清單,並將它們向上插入至使用者資料表 (例如,如果資料列尚未存在,則會新增該資料列。如果已經存在,會更新它)。" + "SqlOuputBinding_description": "將在 HTTP 觸發程式上執行的函式,並取得資料列清單,並將它們向上插入至使用者資料表 (例如,如果資料列尚未存在,則會新增該資料列。如果已經存在,會更新它)。", + "authenticationEvents_description": "Azure AD 驗證事件自訂延伸模組的觸發程序。讓您專注於商務邏輯。", + "authenticationEvents_trigger_displayName": "驗證事件觸發程序", + "authenticationEvent_trigger_name_label": "名稱", + "authenticationEvent_trigger_name_help": "Azure AD 驗證事件自訂延伸模組的觸發程序。讓您專注於商務邏輯。如需詳細資訊,請參閱 /~https://github.com/Azure/microsoft-azure-webJobs-extensions-authentication-events", + "authenticationEvent_trigger_IssuanceStartVer_label": "OnTokenIssuanceStart 版本", + "authenticationEvent_trigger_IssuanceStartVer_help": "OnTokenIssuanceStart 事件的 API 結構描述版本", + "sqlIn_displayName": "Azure SQL 輸入繫結", + "sqlIn_name_label": "名稱", + "sqlIn_name_help": "用來在程式碼中識別此繫結的名稱。", + "sqlIn_commandText_label": "SQL 命令文字", + "sqlIn_commandText_help": "Transact-SQL 查詢命令或由繫結執行的預存程序的名稱。", + "sqlIn_commandType_label": "Text 或 StoredProcedure", + "sqlIn_commandType_help": "用來識別值 commandText 類型的命令類型,可以是 T-SQL 查詢的 Text 或預存程序的 StoredProcedure。", + "sqlIn_parameters_label": "參數", + "sqlIn_parameters_help": "在執行期間以單一字串形式傳遞至命令的參數值。必須遵循格式 `@param1=param1,@param2=param2`。", + "sql_connection_label": "SQL 連接字串設定", + "sql_connection_help": "包含您的 Azure SQL 繫結連接字串的應用程式設定名稱。", + "sqlOut_displayName": "Azure SQL 輸出繫結", + "sqlOut_name_label": "名稱", + "sqlOut_name_help": "代表函式程式碼中實體的變數名稱。", + "sqlOut_commandText_label": "資料表名稱", + "sqlOut_commandText_help": "由繫結執行 upsert 的資料表名稱。", + "sqlTrigger_displayName": "Azure SQL 觸發器繫結", + "sqlTrigger_name_label": "名稱", + "sqlTrigger_name_help": "觸發程式繫結的參數名稱。", + "sqlTrigger_tableName_label": "資料表名稱", + "sqlTrigger_tableName_help": "觸發器監視之資料表的名稱。", + "app_filename_label": "提供函式的檔案名稱", + "app_filename_help": "這是您要儲存函式程式碼的檔案", + "trigger_functionName_help": "您要建立的函式名稱", + "trigger_functionName_label": "提供函數名稱", + "app_selected_filename_label": "檔案名稱", + "app_selected_filename_help": "這是您要新增函式的檔案", + "blueprint_filename_label": "藍圖函式檔案名稱", + "blueprint_filename_help": "這是您要儲存藍圖程式碼的檔案名稱", + "blueprint_selected_filename_help": "這是您想要將函式新增到現有藍圖的檔案名稱", + "blueprint_selected_filename_label": "選取要為藍圖函數儲存的檔案", + "blueprint_fileName_errorText": "無效的檔案名稱 ", + "app_filename_errorText": "無效的檔案名稱 " }, "en": { "eventHubOut_connection_help": "The name of the app setting containing your Event Hub connection string. The connection string must have Send permissions.", + "cosmosDBIn_leaseCollectionName_help": "The name of the collection in which the lease is stored", "eventHubOut_connection_label": "Event Hub connection", "eventHubOut_displayName": "Azure Event Hubs", "eventHubOut_name_help": "The name used to identify this binding in your code", @@ -1068,13 +1116,16 @@ "CosmosDBTriggerCSharp_description": "A C# function that will be run whenever documents change in a document collection.", "CosmosDBTriggerJavascript_description": "A JavaScript function that will be run whenever documents change in a document collection.", "cosmosDBIn_collectionName_help": "Name of the collection to be monitored.", + "cosmosDBIn_containerName_help": "Name of the container to be monitored.", "cosmosDBIn_collectionName_label": "Collection name", + "cosmosDBIn_containerName_label": "Container name", "cosmosDBIn_connection_help": "The name of the App Setting containing the connection string to the service that contains the collection to be monitored.", "cosmosDBIn_connection_label": "Cosmos DB account connection", - "cosmosDBIn_databaseName_help": "Name of the Cosmos DB database that includes the collection to be monitored.", + "cosmosDBIn_databaseName_help": "Name of the Cosmos DB database that includes the container to be monitored.", "cosmosDBIn_databaseName_label": "Database name", - "cosmosDBIn_leaseCollectionName_help": "Name of the collection to store the leases.", + "cosmosDBIn_leaseContainerName_help": "Name of the container to store the leases.", "cosmosDBIn_leaseCollectionName_label": "Collection name for leases", + "cosmosDBIn_leaseContainerName_label": "Container name for leases", "cosmosDBIn_leaseDatabaseName_help": "Name of the database that includes the collection to store the leases.", "cosmosDBIn_leaseDatabaseName_label": "Database name for leases", "cosmosDBIn_name_help": "The name used to identify this binding in your code", @@ -1083,7 +1134,9 @@ "IoTHubServiceBusTopicTriggerCSharp_description": "A C# function that will be run whenever a message is added to the specified Service Bus topic", "temp_category_IoTHub": "IoT Hub", "cosmosDBIn_createIfNotExists_help": "Checks for existence and automatically creates the leases collection.", + "cosmosDBIn_createContainerIfNotExists_help": "Checks for existence and automatically creates the leases container.", "cosmosDBIn_createIfNotExists_label": "Create lease collection if it does not exist", + "cosmosDBIn_createContainerIfNotExists_label": "Create lease container if it does not exist", "EventGridTriggerJavascript_description": "A JavaScript function that will be run whenever an event grid receives a new event", "Identity_help": "The identity that will be used to perform the action.", "Identity_label": "Identity", @@ -1127,6 +1180,8 @@ "DurableFunctionsHttpStart_description": "A function that will trigger whenever it receives an HTTP request to execute an orchestrator function.", "temp_category_durableFunctions": "Durable Functions", "BlobTrigger_name": "Blob trigger", + "blobTrigger_connection_label": "Storage account connection", + "blobTrigger_connection_help": "The name of the app setting containing your storage account connection string", "EventHubTrigger_name": "Event Hub trigger", "HttpTrigger_name": "HTTP trigger", "OutlookMessageWebhookCreator_name": "Outlook message webhook subscription creator", @@ -1195,6 +1250,45 @@ "kafka_consumergroup_help": "Consumer Group", "kafka_consumergroup_label": "Consumer Group", "SqlInputBinding_description": "A function that will be run on an HTTP trigger and returns the results of a provided SQL query.", - "SqlOuputBinding_description": "A function that will be run on an HTTP trigger and takes a list of rows and upserts them into the user table (i.e. If a row doesn't already exist, it is added. If it does, it is updated)." + "SqlOuputBinding_description": "A function that will be run on an HTTP trigger and takes a list of rows and upserts them into the user table (i.e. If a row doesn't already exist, it is added. If it does, it is updated).", + "authenticationEvents_description": "Triggers for Azure AD Authentication event custom extensions. Lets you focus on your business logic.", + "authenticationEvents_trigger_displayName": "Authentication Events Trigger", + "authenticationEvent_trigger_name_label": "Name", + "authenticationEvent_trigger_name_help": "Triggers for Azure AD Authentication event custom extensions. Lets you focus on your business logic. For more information please see /~https://github.com/Azure/microsoft-azure-webJobs-extensions-authentication-events", + "authenticationEvent_trigger_IssuanceStartVer_label": "OnTokenIssuanceStart Version", + "authenticationEvent_trigger_IssuanceStartVer_help": "API Schema Version for OnTokenIssuanceStart Event", + "sqlIn_displayName": "Azure SQL Input Binding", + "sqlIn_name_label": "Name", + "sqlIn_name_help": "The name used to identify this binding in your code.", + "sqlIn_commandText_label": "SQL Command Text", + "sqlIn_commandText_help": "The Transact-SQL query command or name of the stored procedure executed by the binding.", + "sqlIn_commandType_label": "Text or StoredProcedure", + "sqlIn_commandType_help": "The command type used to identify what type of value commandText is, either Text for a T-SQL query or StoredProcedure for a stored procedure.", + "sqlIn_parameters_label": "Parameters", + "sqlIn_parameters_help": "Parameter values passed to the command during execution as a single string. Must follow the format `@param1=param1,@param2=param2`.", + "sql_connection_label": "SQL Connection string setting", + "sql_connection_help": "The name of the app setting containing your Azure SQL binding connection string.", + "sqlOut_displayName": "Azure SQL Output Binding", + "sqlOut_name_label": "Name", + "sqlOut_name_help": "The name of the variable that represents the entity in function code.", + "sqlOut_commandText_label": "Table Name", + "sqlOut_commandText_help": "The name of the table being upserted to by the binding.", + "sqlTrigger_displayName": "Azure SQL Trigger Binding", + "sqlTrigger_name_label": "Name", + "sqlTrigger_name_help": "The name of the parameter that the trigger binds to.", + "sqlTrigger_tableName_label": "Table Name", + "sqlTrigger_tableName_help": "The name of the table being monitored by the trigger.", + "app_filename_label": "Provide a filename for your function", + "app_filename_help": "This is the file where you want to save your function code", + "trigger_functionName_help": "Name of the function you want to create", + "trigger_functionName_label": "Provide a function name", + "app_selected_filename_label": "File Name", + "app_selected_filename_help": "This is the file to which you want to add your function", + "blueprint_filename_label": "Blueprint function file Name", + "blueprint_filename_help": "This is the name of the file where you want to save your blueprint code", + "blueprint_selected_filename_help": "This is the name of the file where you want to add a function to the existing blueprint", + "blueprint_selected_filename_label": "Select a file to save for your blueprint function", + "blueprint_fileName_errorText": "Invalid fileName", + "app_filename_errorText": "Invalid fileName" } } \ No newline at end of file diff --git a/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/templates/templates.json b/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/templates/templates.json index 0bc993d13..c63d4eb7d 100644 --- a/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/templates/templates.json +++ b/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/templates/templates.json @@ -145,7 +145,7 @@ "files": { "readme.md": "# BlobTrigger - Python\r\n\r\nThe `BlobTrigger` makes it incredibly easy to react to new Blobs inside of Azure Blob Storage. This sample demonstrates a simple use case of processing data from a given Blob using Python.\r\n\r\n## How it works\r\n\r\nFor a `BlobTrigger` to work, you provide a path which dictates where the blobs are located inside your container, and can also help restrict the types of blobs you wish to return. For instance, you can set the path to `samples/{name}.png` to restrict the trigger to only the samples path and only blobs with \".png\" at the end of their name.\r\n\r\n## Learn more\r\n\r\n Documentation", "sample.dat": "samples-workitems/workitem.txt", - "__init__.py": "import logging\r\n\r\nimport azure.functions as func\r\n\r\n\r\ndef main(myblob: func.InputStream):\r\n logging.info(f\"Python blob trigger function processed blob \\n\"\r\n f\"Name: {myblob.name}\\n\"\r\n f\"Blob Size: {myblob.length} bytes\")\r\n" + "__init__.py": "import logging\r\n\r\nfrom azure.functions import InputStream\r\n\r\n\r\ndef main(myblob: InputStream):\r\n logging.info(f\"Python blob trigger function processed blob \\n\"\r\n f\"Name: {myblob.name}\\n\"\r\n f\"Blob Size: {myblob.length} bytes\")\r\n" }, "function": { "scriptFile": "__init__.py", @@ -227,11 +227,12 @@ "type": "cosmosDBTrigger", "name": "input", "direction": "in", - "connectionStringSetting": "", + "leaseContainerName": "leases", + "connection": "", "databaseName": "", - "collectionName": "", - "leaseCollectionName": "leases", - "createLeaseCollectionIfNotExists": true + "containerName": "", + "createLeaseContainerIfNotExists": true, + "startFromBeginning": false } ] }, @@ -247,49 +248,11 @@ "categoryStyle": "cosmosDB", "enabledInTryMode": false, "userPrompt": [ - "connectionStringSetting", - "databaseName", - "collectionName", - "leaseCollectionName", - "createLeaseCollectionIfNotExists" - ] - } - }, - { - "id": "CosmosDBTrigger-Custom", - "runtime": "2", - "files": {}, - "function": { - "bindings": [ - { - "type": "cosmosDBTrigger", - "name": "documents", - "direction": "in", - "leaseCollectionName": "leases", - "connectionStringSetting": "", - "databaseName": "", - "collectionName": "", - "createLeaseCollectionIfNotExists": true - } - ] - }, - "metadata": { - "defaultFunctionName": "CosmosTrigger", - "description": "$CosmosDBTrigger_description", - "name": "Azure Cosmos DB trigger", - "language": "Custom", - "category": [ - "$temp_category_core", - "$temp_category_dataProcessing" - ], - "categoryStyle": "cosmosDB", - "enabledInTryMode": false, - "userPrompt": [ - "connectionStringSetting", + "connection", "databaseName", - "collectionName", - "leaseCollectionName", - "createLeaseCollectionIfNotExists" + "containerName", + "leaseContainerName", + "createLeaseContainerIfNotExists" ] } }, @@ -306,11 +269,12 @@ "type": "cosmosDBTrigger", "name": "documents", "direction": "in", - "leaseCollectionName": "leases", - "connectionStringSetting": "", + "leaseContainerName": "leases", + "connection": "", "databaseName": "", - "collectionName": "", - "createLeaseCollectionIfNotExists": true + "containerName": "", + "createLeaseContainerIfNotExists": true, + "startFromBeginning": false } ] }, @@ -326,11 +290,11 @@ "categoryStyle": "cosmosDB", "enabledInTryMode": false, "userPrompt": [ - "connectionStringSetting", + "connection", "databaseName", - "collectionName", - "leaseCollectionName", - "createLeaseCollectionIfNotExists" + "containerName", + "leaseContainerName", + "createLeaseContainerIfNotExists" ] } }, @@ -345,13 +309,14 @@ "bindings": [ { "type": "cosmosDBTrigger", - "name": "Documents", + "name": "documents", "direction": "in", - "leaseCollectionName": "leases", - "connectionStringSetting": "", + "leaseContainerName": "leases", + "connection": "", "databaseName": "", - "collectionName": "", - "createLeaseCollectionIfNotExists": true + "containerName": "", + "createLeaseContainerIfNotExists": true, + "startFromBeginning": false } ] }, @@ -367,11 +332,11 @@ "categoryStyle": "cosmosDB", "enabledInTryMode": false, "userPrompt": [ - "connectionStringSetting", + "connection", "databaseName", - "collectionName", - "leaseCollectionName", - "createLeaseCollectionIfNotExists" + "containerName", + "leaseContainerName", + "createLeaseContainerIfNotExists" ] } }, @@ -380,7 +345,7 @@ "runtime": "2", "files": { "sample.dat": "[\r\n\t{\r\n\t\t\"id\": \"sample\"\r\n\t}\r\n]", - "__init__.py": "import logging\r\n\r\nimport azure.functions as func\r\n\r\n\r\ndef main(documents: func.DocumentList) -> str:\r\n if documents:\r\n logging.info('Document id: %s', documents[0]['id'])\r\n" + "__init__.py": "import logging\r\n\r\nfrom azure.functions import DocumentList\r\n\r\n\r\ndef main(documents: DocumentList) -> str:\r\n if documents:\r\n logging.info('Document id: %s', documents[0]['id'])\r\n" }, "function": { "scriptFile": "__init__.py", @@ -389,11 +354,12 @@ "type": "cosmosDBTrigger", "name": "documents", "direction": "in", - "leaseCollectionName": "leases", - "connectionStringSetting": "", + "leaseContainerName": "leases", + "connection": "", "databaseName": "", - "collectionName": "", - "createLeaseCollectionIfNotExists": true + "containerName": "", + "createLeaseContainerIfNotExists": true, + "startFromBeginning": false } ] }, @@ -409,58 +375,17 @@ "categoryStyle": "cosmosDB", "enabledInTryMode": false, "userPrompt": [ - "connectionStringSetting", + "connection", "databaseName", - "collectionName", - "leaseCollectionName", - "createLeaseCollectionIfNotExists" + "containerName", + "leaseContainerName", + "createLeaseContainerIfNotExists" ], "filters": [ "Python3" ] } }, - { - "id": "CosmosDBTrigger-TypeScript", - "runtime": "2", - "files": { - "index.ts": "import { AzureFunction, Context } from \"@azure/functions\"\r\n\r\nconst cosmosDBTrigger: AzureFunction = async function (context: Context, documents: any[]): Promise {\r\n if (!!documents && documents.length > 0) {\r\n context.log('Document Id: ', documents[0].id);\r\n }\r\n}\r\n\r\nexport default cosmosDBTrigger;\r\n", - "sample.dat": "[\r\n\t{\r\n\t\t\"id\": \"sample\"\r\n\t}\r\n]" - }, - "function": { - "bindings": [ - { - "type": "cosmosDBTrigger", - "name": "documents", - "direction": "in", - "leaseCollectionName": "leases", - "connectionStringSetting": "", - "databaseName": "", - "collectionName": "", - "createLeaseCollectionIfNotExists": true - } - ] - }, - "metadata": { - "defaultFunctionName": "CosmosTrigger", - "description": "$CosmosDBTrigger_description", - "name": "Azure Cosmos DB trigger", - "language": "TypeScript", - "category": [ - "$temp_category_core", - "$temp_category_dataProcessing" - ], - "categoryStyle": "cosmosDB", - "enabledInTryMode": false, - "userPrompt": [ - "connectionStringSetting", - "databaseName", - "collectionName", - "leaseCollectionName", - "createLeaseCollectionIfNotExists" - ] - } - }, { "id": "DurableFunctionsActivity-CSharp", "runtime": "2", @@ -640,7 +565,7 @@ "id": "DurableFunctionsEntity-Python", "runtime": "2", "files": { - "__init__.py": "import logging\r\nimport json\r\n\r\nimport azure.functions as func\r\nimport azure.durable_functions as df\r\n\r\n\r\ndef entity_function(context: df.DurableOrchestrationContext):\r\n\r\n current_value = context.get_state(lambda: 0)\r\n operation = context.operation_name\r\n if operation == \"add\":\r\n amount = context.get_input()\r\n current_value += amount\r\n context.set_result(current_value)\r\n elif operation == \"reset\":\r\n current_value = 0\r\n elif operation == \"get\":\r\n context.set_result(current_value)\r\n \r\n context.set_state(current_value)\r\n\r\nmain = df.Entity.create(entity_function)" + "__init__.py": "import logging\r\nimport json\r\n\r\nfrom azure.durable_functions import DurableOrchestrationContext, Entity\r\n\r\n\r\ndef entity_function(context: DurableOrchestrationContext):\r\n\r\n current_value = context.get_state(lambda: 0)\r\n operation = context.operation_name\r\n if operation == \"add\":\r\n amount = context.get_input()\r\n current_value += amount\r\n context.set_result(current_value)\r\n elif operation == \"reset\":\r\n current_value = 0\r\n elif operation == \"get\":\r\n context.set_result(current_value)\r\n \r\n context.set_state(current_value)\r\n\r\nmain = Entity.create(entity_function)" }, "function": { "scriptFile": "__init__.py", @@ -1031,7 +956,7 @@ "id": "DurableFunctionsHttpStart-Python", "runtime": "2", "files": { - "__init__.py": "# This function an HTTP starter function for Durable Functions.\r\n# Before running this sample, please:\r\n# - create a Durable orchestration function\r\n# - create a Durable activity function (default name is \"Hello\")\r\n# - add azure-functions-durable to requirements.txt\r\n# - run pip install -r requirements.txt\r\n \r\nimport logging\r\n\r\nimport azure.functions as func\r\nimport azure.durable_functions as df\r\n\r\n\r\nasync def main(req: func.HttpRequest, starter: str) -> func.HttpResponse:\r\n client = df.DurableOrchestrationClient(starter)\r\n instance_id = await client.start_new(req.route_params[\"functionName\"], None, None)\r\n\r\n logging.info(f\"Started orchestration with ID = '{instance_id}'.\")\r\n\r\n return client.create_check_status_response(req, instance_id)" + "__init__.py": "# This function an HTTP starter function for Durable Functions.\r\n# Before running this sample, please:\r\n# - create a Durable orchestration function\r\n# - create a Durable activity function (default name is \"Hello\")\r\n# - add azure-functions-durable to requirements.txt\r\n# - run pip install -r requirements.txt\r\n \r\nimport logging\r\n\r\nfrom azure.functions import HttpRequest, HttpResponse\r\nfrom azure.durable_functions import DurableOrchestrationClient\r\n\r\n\r\nasync def main(req: HttpRequest, starter: str) -> HttpResponse:\r\n client = DurableOrchestrationClient(starter)\r\n instance_id = await client.start_new(req.route_params[\"functionName\"], None, None)\r\n\r\n logging.info(f\"Started orchestration with ID = '{instance_id}'.\")\r\n\r\n return client.create_check_status_response(req, instance_id)" }, "function": { "scriptFile": "__init__.py", @@ -1213,7 +1138,7 @@ "id": "DurableFunctionsOrchestrator-Python", "runtime": "2", "files": { - "__init__.py": "# This function is not intended to be invoked directly. Instead it will be\r\n# triggered by an HTTP starter function.\r\n# Before running this sample, please:\r\n# - create a Durable activity function (default name is \"Hello\")\r\n# - create a Durable HTTP starter function\r\n# - add azure-functions-durable to requirements.txt\r\n# - run pip install -r requirements.txt\r\n\r\nimport logging\r\nimport json\r\n\r\nimport azure.functions as func\r\nimport azure.durable_functions as df\r\n\r\n\r\ndef orchestrator_function(context: df.DurableOrchestrationContext):\r\n result1 = yield context.call_activity('Hello', \"Tokyo\")\r\n result2 = yield context.call_activity('Hello', \"Seattle\")\r\n result3 = yield context.call_activity('Hello', \"London\")\r\n return [result1, result2, result3]\r\n\r\nmain = df.Orchestrator.create(orchestrator_function)" + "__init__.py": "# This function is not intended to be invoked directly. Instead it will be\r\n# triggered by an HTTP starter function.\r\n# Before running this sample, please:\r\n# - create a Durable activity function (default name is \"Hello\")\r\n# - create a Durable HTTP starter function\r\n# - add azure-functions-durable to requirements.txt\r\n# - run pip install -r requirements.txt\r\n\r\nimport logging\r\nimport json\r\n\r\nfrom azure.durable_functions import DurableOrchestrationContext, Orchestrator\r\n\r\n\r\ndef orchestrator_function(context: DurableOrchestrationContext):\r\n result1 = yield context.call_activity('Hello', \"Tokyo\")\r\n result2 = yield context.call_activity('Hello', \"Seattle\")\r\n result3 = yield context.call_activity('Hello', \"London\")\r\n return [result1, result2, result3]\r\n\r\nmain = Orchestrator.create(orchestrator_function)" }, "function": { "scriptFile": "__init__.py", @@ -1390,7 +1315,7 @@ "runtime": "2", "files": { "sample.dat": "{\r\n 'topic': '/subscriptions/5b4b650e-28b9-4790-b3ab-ddbd88d727c4/resourcegroups/test/providers/Microsoft.EventHub/namespaces/test',\r\n 'subject': 'eventhubs/test',\r\n 'eventType': 'captureFileCreated',\r\n 'eventTime': '2017-07-14T23:10:27.7689666Z',\r\n 'id': '7b11c4ce-1c34-4416-848b-1730e766f126',\r\n 'data': {\r\n 'fileUrl': 'https://test.blob.core.windows.net/debugging/testblob.txt',\r\n 'fileType': 'AzureBlockBlob',\r\n 'partitionId': '1',\r\n 'sizeInBytes': 0,\r\n 'eventCount': 0,\r\n 'firstSequenceNumber': -1,\r\n 'lastSequenceNumber': -1,\r\n 'firstEnqueueTime': '0001-01-01T00:00:00',\r\n 'lastEnqueueTime': '0001-01-01T00:00:00'\r\n },\r\n \"dataVersion\": \"\", \r\n \"metadataVersion\": \"1\" \r\n}\r\n", - "__init__.py": "import json\r\nimport logging\r\n\r\nimport azure.functions as func\r\n\r\n\r\ndef main(event: func.EventGridEvent):\r\n result = json.dumps({\r\n 'id': event.id,\r\n 'data': event.get_json(),\r\n 'topic': event.topic,\r\n 'subject': event.subject,\r\n 'event_type': event.event_type,\r\n })\r\n\r\n logging.info('Python EventGrid trigger processed an event: %s', result)\r\n" + "__init__.py": "import json\r\nimport logging\r\n\r\nfrom azure.functions import EventGridEvent\r\n\r\n\r\ndef main(event: EventGridEvent):\r\n result = json.dumps({\r\n 'id': event.id,\r\n 'data': event.get_json(),\r\n 'topic': event.topic,\r\n 'subject': event.subject,\r\n 'event_type': event.event_type,\r\n })\r\n\r\n logging.info('Python EventGrid trigger processed an event: %s', result)\r\n" }, "function": { "scriptFile": "__init__.py", @@ -1601,14 +1526,14 @@ "runtime": "2", "files": { "sample.dat": "Test Message", - "__init__.py": "import logging\r\n\r\nimport azure.functions as func\r\n\r\n\r\ndef main(event: func.EventHubEvent):\r\n logging.info('Python EventHub trigger processed an event: %s',\r\n event.get_body().decode('utf-8'))\r\n" + "__init__.py": "import logging\r\n\r\nfrom azure.functions import EventHubEvent\r\nfrom typing import List\r\n\r\n\r\ndef main(events: List[EventHubEvent]):\r\n for event in events:\r\n logging.info('Python EventHub trigger processed an event: %s',\r\n event.get_body().decode('utf-8'))\r\n" }, "function": { "scriptFile": "__init__.py", "bindings": [ { "type": "eventHubTrigger", - "name": "event", + "name": "events", "direction": "in", "eventHubName": "samples-workitems", "connection": "", @@ -1848,7 +1773,7 @@ "runtime": "2", "files": { "sample.dat": "{\r\n \"name\": \"Azure\"\r\n}", - "__init__.py": "import logging\r\n\r\nimport azure.functions as func\r\n\r\n\r\ndef main(req: func.HttpRequest) -> func.HttpResponse:\r\n logging.info('Python HTTP trigger function processed a request.')\r\n\r\n name = req.params.get('name')\r\n if not name:\r\n try:\r\n req_body = req.get_json()\r\n except ValueError:\r\n pass\r\n else:\r\n name = req_body.get('name')\r\n\r\n if name:\r\n return func.HttpResponse(f\"Hello, {name}. This HTTP triggered function executed successfully.\")\r\n else:\r\n return func.HttpResponse(\r\n \"This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response.\",\r\n status_code=200\r\n )\r\n" + "__init__.py": "import logging\r\n\r\nfrom azure.functions import HttpRequest, HttpResponse\r\n\r\n\r\ndef main(req: HttpRequest) -> HttpResponse:\r\n logging.info('Python HTTP trigger function processed a request.')\r\n\r\n name = req.params.get('name')\r\n if not name:\r\n try:\r\n req_body = req.get_json()\r\n except ValueError:\r\n pass\r\n else:\r\n name = req_body.get('name')\r\n\r\n if name:\r\n return HttpResponse(f\"Hello, {name}. This HTTP triggered function executed successfully.\")\r\n else:\r\n return HttpResponse(\r\n \"This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response.\",\r\n status_code=200\r\n )\r\n" }, "function": { "scriptFile": "__init__.py", @@ -2298,7 +2223,7 @@ "files": { "readme.md": "# KafkaOutput - Python\r\n\r\nThe `KafkaOutput` makes it incredibly easy to send a new events to a Kafka Broker. This sample demonstrates a simple use case of sending data to a given Kafka Broker using Python.\r\n\r\n## How it works\r\n\r\nFor a `KafkaOutput` to work, you must provide a topic name which dictates where the messages should be sent to with authentication.\r\n\r\n## Configuration\r\n\r\n### EventHubs for Kafka\r\n\r\nAdd `BrokerList` and `KafkaPassword` to your `local.settings.json`\r\n\r\n_local.settings.json_\r\n\r\n```json\r\n{\r\n \"IsEncrypted\": false,\r\n \"Values\": {\r\n \"AzureWebJobsStorage\": \"UseDevelopmentStorage=true\",\r\n \"FUNCTIONS_WORKER_RUNTIME\": \"node\",\r\n \"BrokerList\": \"{YOUR_EVENT_HUBS_NAMESPACE}.servicebus.windows.net:9093\",\r\n \"KafkaPassword\": \"{EVENT_HUBS_CONNECTION_STRING}\"\r\n }\r\n}\r\n```\r\n\r\n### Others\r\n\r\nModify `function.json` or `KafkaOutput` attribute according to your broker.", "sample.dat": "{\r\n \"message\": \"hello\"\r\n}", - "__init__.py": "import logging\r\n\r\nimport azure.functions as func\r\n\r\n\r\ndef main(req: func.HttpRequest, out: func.Out[str]) -> func.HttpResponse:\r\n logging.info('Python HTTP trigger function processed a request.')\r\n\r\n message = req.params.get('message')\r\n if not message:\r\n try:\r\n req_body = req.get_json()\r\n except ValueError:\r\n pass\r\n else:\r\n message = req_body.get('message')\r\n\r\n if message:\r\n out.set(message)\r\n return func.HttpResponse(f\"Message received: {message}. The message transfered to the kafka broker.\")\r\n else:\r\n return func.HttpResponse(\r\n \"This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response.\",\r\n status_code=200\r\n )\r\n" + "__init__.py": "import logging\r\n\r\nfrom azure.functions import HttpRequest, HttpResponse, Out\r\n\r\n\r\ndef main(req: HttpRequest, out: Out[str]) -> HttpResponse:\r\n logging.info('Python HTTP trigger function processed a request.')\r\n\r\n message = req.params.get('message')\r\n if not message:\r\n try:\r\n req_body = req.get_json()\r\n except ValueError:\r\n pass\r\n else:\r\n message = req_body.get('message')\r\n\r\n if message:\r\n out.set(message)\r\n return HttpResponse(f\"Message received: {message}. The message transfered to the kafka broker.\")\r\n else:\r\n return HttpResponse(\r\n \"This HTTP triggered function executed successfully but no message was passed. Please pass message as request parameter or in body for sending data to Kafka\",\r\n status_code=200\r\n )\r\n" }, "function": { "scriptFile": "__init__.py", @@ -2598,7 +2523,7 @@ "files": { "readme.md": "# KafkaTrigger - Python\r\n\r\nThe `KafkaTrigger` makes it incredibly easy to react to new events from a Kafka Broker. This sample demonstrates a simple use case of processing data from a given Kafka Broker using Python.\r\n\r\n## How it works\r\n\r\nFor a `KafkaTrigger` to work, you must provide a topic name which dictates where the messages should be read from with authentication.\r\n\r\n## Configuration\r\n\r\n### EventHubs for Kafka\r\n\r\nAdd `BrokerList` and `KafkaPassword` to your `local.settings.json`\r\n\r\n_local.settings.json_\r\n\r\n```json\r\n{\r\n \"IsEncrypted\": false,\r\n \"Values\": {\r\n \"AzureWebJobsStorage\": \"UseDevelopmentStorage=true\",\r\n \"FUNCTIONS_WORKER_RUNTIME\": \"python\",\r\n \"BrokerList\": \"{YOUR_EVENT_HUBS_NAMESPACE}.servicebus.windows.net:9093\",\r\n \"KafkaPassword\": \"{EVENT_HUBS_CONNECTION_STRING}\"\r\n }\r\n}\r\n```\r\n\r\n### Others\r\n\r\nModify `function.json` or `KafkaTrigger` attribute according to your broker.", "sample.dat": "sample queue data", - "__init__.py": "import logging\r\nfrom azure.functions import KafkaEvent\r\n\r\ndef main(kevent : KafkaEvent):\r\n logging.info(kevent.get_body().decode('utf-8'))\r\n logging.info(kevent.metadata)\r\n" + "__init__.py": "import logging\r\n\r\nfrom azure.functions import KafkaEvent\r\n\r\n\r\ndef main(kevent : KafkaEvent):\r\n logging.info(kevent.get_body().decode('utf-8'))\r\n logging.info(kevent.metadata)\r\n" }, "function": { "scriptFile": "__init__.py", @@ -2831,7 +2756,7 @@ "files": { "readme.md": "# QueueTrigger - Python\r\n\r\nThe `QueueTrigger` makes it incredibly easy to react to new Queues inside of Azure Queue Storage. This sample demonstrates a simple use case of processing data from a given Queue.\r\n\r\n## How it works\r\n\r\nFor a `QueueTrigger` to work, you provide a path which dictates where the queue messages are located inside your container.\r\n\r\n## Learn more\r\n\r\n Documentation\r\n", "sample.dat": "sample queue data", - "__init__.py": "import logging\r\n\r\nimport azure.functions as func\r\n\r\n\r\ndef main(msg: func.QueueMessage) -> None:\r\n logging.info('Python queue trigger function processed a queue item: %s',\r\n msg.get_body().decode('utf-8'))\r\n" + "__init__.py": "import logging\r\n\r\nfrom azure.functions import QueueMessage\r\n\r\n\r\ndef main(msg: QueueMessage) -> None:\r\n logging.info('Python queue trigger function processed a queue item: %s',\r\n msg.get_body().decode('utf-8'))\r\n" }, "function": { "scriptFile": "__init__.py", @@ -2869,7 +2794,7 @@ "id": "QueueTrigger-TypeScript", "runtime": "2", "files": { - "index.ts": "import { AzureFunction, Context } from \"@azure/functions\"\r\n\r\nconst queueTrigger: AzureFunction = async function (context: Context, myQueueItem: string): Promise {\r\n context.log('Queue trigger function processed work item', myQueueItem);\r\n};\r\n\r\nexport default queueTrigger;\r\n", + "index.ts": "import { AzureFunction, Context } from \"@azure/functions\"\r\n\r\nconst queueTrigger: AzureFunction = async function (context: Context, myQueueItem: any): Promise {\r\n context.log('Queue trigger function processed work item', myQueueItem);\r\n};\r\n\r\nexport default queueTrigger;\r\n", "readme.md": "# QueueTrigger - TypeScript\r\n\r\nThe `QueueTrigger` makes it incredibly easy to react to new Queues inside of Azure Queue Storage. This sample demonstrates a simple use case of processing data from a given Queue using C#.\r\n\r\n## How it works\r\n\r\nFor a `QueueTrigger` to work, you provide a path which dictates where the queue messages are located inside your container.\r\n\r\n## Learn more\r\n\r\n Documentation", "sample.dat": "sample queue data" }, @@ -3047,7 +2972,7 @@ "files": { "readme.md": "# RabbitMQTrigger - C#\r\n\r\nThe `RabbitMQTrigger` makes it incredibly easy to react to new events from a RabbitMQ queue. This sample demonstrates a simple use case of processing data from a given RabbitMQ Queue using C#.\r\n\r\n## How it works\r\n\r\nFor a `RabbitMQTrigger` to work, you must provide a queue name which dictates where the queue messages should be read from.", "sample.dat": "sample queue data", - "__init__.py": "import logging\r\n\r\nimport azure.functions as func\r\n\r\n\r\ndef main(myQueueItem) -> None:\r\n logging.info('Python rabbitmq trigger function processed a queue item: %s', myQueueItem)\r\n" + "__init__.py": "import logging\r\n\r\ndef main(myQueueItem) -> None:\r\n logging.info('Python rabbitmq trigger function processed a queue item: %s', myQueueItem)\r\n" }, "function": { "scriptFile": "__init__.py", @@ -3484,7 +3409,7 @@ "runtime": "2", "files": { "sample.dat": "Service Bus Message", - "__init__.py": "import logging\r\n\r\nimport azure.functions as func\r\n\r\n\r\ndef main(msg: func.ServiceBusMessage):\r\n logging.info('Python ServiceBus queue trigger processed message: %s',\r\n msg.get_body().decode('utf-8'))\r\n" + "__init__.py": "import logging\r\n\r\nfrom azure.functions import ServiceBusMessage\r\n\r\n\r\ndef main(msg: ServiceBusMessage):\r\n logging.info('Python ServiceBus queue trigger processed message: %s',\r\n msg.get_body().decode('utf-8'))\r\n" }, "function": { "scriptFile": "__init__.py", @@ -3701,7 +3626,7 @@ "files": { "README.md": "# Python ServiceBusTopicTrigger\r\n", "sample.dat": "Service Bus Message", - "__init__.py": "import logging\r\n\r\nimport azure.functions as func\r\n\r\n\r\ndef main(message: func.ServiceBusMessage):\r\n # Log the Service Bus Message as plaintext\r\n\r\n message_content_type = message.content_type\r\n message_body = message.get_body().decode(\"utf-8\")\r\n\r\n logging.info(\"Python ServiceBus topic trigger processed message.\")\r\n logging.info(\"Message Content Type: \" + message_content_type)\r\n logging.info(\"Message Body: \" + message_body)\r\n" + "__init__.py": "import logging\r\n\r\nfrom azure.functions import ServiceBusMessage\r\n\r\n\r\ndef main(message: ServiceBusMessage):\r\n # Log the Service Bus Message as plaintext\r\n\r\n message_content_type = message.content_type\r\n message_body = message.get_body().decode(\"utf-8\")\r\n\r\n logging.info(\"Python ServiceBus topic trigger processed message.\")\r\n logging.info(\"Message Content Type: \" + message_content_type)\r\n logging.info(\"Message Body: \" + message_body)\r\n" }, "function": { "scriptFile": "__init__.py", @@ -4029,6 +3954,405 @@ ] } }, + { + "id": "SqlInputBinding-CSharp", + "runtime": "2", + "files": { + "readme.md": "# SQL Input Binding - C#\r\n\r\nThe `SQL Input Binding` makes it easy to retrieve data from a database, returning the output of the query or stored procedure to the function.\r\n\r\n## How it works\r\n\r\nFor a `SQL Input Binding` to work, you can provide the query to retrieve data from an existing object in the database. For instance, you can set the query to `SELECT * FROM [dbo].[table1]` in the `commandText` attribute to return all the values from the `[dbo].[table1]` table in the database.\r\n\r\nFor more information, see the official [docs](https://aka.ms/sqlbindingsinput)." + }, + "function": { + "bindings": [ + { + "authLevel": "function", + "name": "req", + "type": "httpTrigger", + "direction": "in", + "methods": [ + "get" + ] + } + ] + }, + "metadata": { + "defaultFunctionName": "SqlInputBinding", + "description": "$SqlInputBinding_description", + "name": "SQL Input Binding", + "language": "C#", + "category": [ + "$temp_category_core", + "$temp_category_dataProcessing" + ], + "categoryStyle": "other", + "enabledInTryMode": false, + "userPrompt": [] + } + }, + { + "id": "SqlInputBinding-JavaScript", + "runtime": "2", + "files": { + "index.js": "/**\r\n * Sample SQL Input Binding\r\n * See https://aka.ms/sqlbindingsinput for more information about using this binding\r\n *\r\n * These tasks should be completed prior to running :\r\n * 1. Update \"commandText\" in function.json - this should be the query to execute to retrieve the values being returned\r\n * 2. Add an app setting named \"SqlConnectionString\" containing the connection string\r\n * to use for the SQL connection\r\n * @param context The Azure Function runtime context\r\n * @param req The HttpRequest that triggered this function\r\n * @param results The array of objects returned by the SQL input binding\r\n */\r\nmodule.exports = async function (context, req, results) {\r\n context.log('Query results: ', JSON.stringify(results));\r\n return {\r\n status: 200,\r\n body: results\r\n };\r\n}\r\n", + "readme.md": "# SQL Input Binding - JavaScript\r\n\r\nThe `SQL Input Binding` makes it easy to retrieve data from a database, returning the output of the query or stored procedure to the function.\r\n\r\n## How it works\r\n\r\nFor a `SQL Input Binding` to work, you can provide the query to retrive data from an existing object in the database. For instance, you can set the query to `Select * From [dbo].[table1]` to query `[dbo].[table1]` in the `commandText` value in your `function.json`.\r\n\r\nFor more information, see the official [docs](https://aka.ms/sqlbindingsinput)." + }, + "function": { + "bindings": [ + { + "authLevel": "function", + "name": "req", + "type": "httpTrigger", + "direction": "in", + "methods": [ + "get" + ] + }, + { + "name": "$return", + "type": "http", + "direction": "out" + }, + { + "type": "sql", + "name": "results", + "direction": "in", + "commandText": "SELECT * FROM [dbo].[table1]", + "commandType": "Text", + "connectionStringSetting": "SqlConnectionString" + } + ] + }, + "metadata": { + "defaultFunctionName": "SqlInputBinding", + "description": "$SqlInputBinding_description", + "name": "SQL Input Binding", + "language": "JavaScript", + "category": [ + "$temp_category_core", + "$temp_category_dataProcessing" + ], + "categoryStyle": "other", + "enabledInTryMode": false, + "userPrompt": [] + } + }, + { + "id": "SqlInputBinding-PowerShell", + "runtime": "2", + "files": { + "readme.md": "# SQL Input Binding - PowerShell\r\n\r\nThe `SQL Input Binding` makes it easy to retrieve data from a database, returning the output of the query or stored procedure to the function.\r\n\r\n## How it works\r\n\r\nFor a `SQL Input Binding` to work, you can provide the query to retrieve data from an existing object in the database. For instance, you can set the query to `SELECT * FROM [dbo].[table1]` in the `commandText` value in your `function.json` to return all the values from the `[dbo].[table1]` table in the database.\r\n\r\nFor more information, see the official [docs](https://aka.ms/sqlbindingsinput).", + "run.ps1": "<#\r\nSample SQL Input Binding\r\nSee https://aka.ms/sqlbindingsinput for more information about using this binding\r\nThese tasks should be completed prior to running:\r\n 1. Update \"commandText\" in function.json - this should be the query to execute to retrieve the values being returned\r\n 2. Add an app setting named \"SqlConnectionString\" containing the connection string to use for the SQL connection\r\n@param Request The HttpRequest that triggered this function\r\n@param items The array of objects returned by the SQL input binding\r\n#>\r\nusing namespace System.Net\r\n\r\n# Trigger and input binding data are passed in via the param block.\r\nparam($Request, $items)\r\n\r\n# Write to the Azure Functions log stream.\r\nWrite-Host \"PowerShell function with SQL Input Binding processed a request.\"\r\n\r\n# Assign the value to return as the HTTP response. \r\n# The -Name value matches the name property in the function.json for the binding\r\nPush-OutputBinding -Name Response -Value ([HttpResponseContext]@{\r\n StatusCode = [System.Net.HttpStatusCode]::OK\r\n Body = $items\r\n})" + }, + "function": { + "bindings": [ + { + "authLevel": "function", + "type": "httpTrigger", + "direction": "in", + "name": "Request", + "methods": [ + "get" + ] + }, + { + "type": "http", + "direction": "out", + "name": "Response" + }, + { + "name": "items", + "type": "sql", + "direction": "in", + "commandText": "SELECT * FROM [dbo].[table1]", + "commandType": "Text", + "connectionStringSetting": "SqlConnectionString" + } + ] + }, + "metadata": { + "defaultFunctionName": "SqlInputBinding", + "description": "$SqlInputBinding_description", + "name": "SQL Input Binding", + "language": "PowerShell", + "category": [ + "$temp_category_core", + "$temp_category_dataProcessing" + ], + "categoryStyle": "other", + "enabledInTryMode": false, + "userPrompt": [] + } + }, + { + "id": "SqlInputBinding-Python", + "runtime": "2", + "files": { + "readme.md": "# SQL Input Binding - Python\r\n\r\nThe `SQL Input Binding` makes it easy to retrieve data from a database, returning the output of the query or stored procedure to the function.\r\n\r\n## How it works\r\n\r\nFor a `SQL Input Binding` to work, you can provide the query to retrieve data from an existing object in the database. For instance, you can set the query to `SELECT * FROM [dbo].[table1]` in the `commandText` value in your `function.json` to return all the values from the `[dbo].[table1]` table in the database.\r\n\r\nFor more information, see the official [docs](https://aka.ms/sqlbindingsinput).", + "__init__.py": "import json\r\n\r\nfrom azure.functions import HttpRequest, HttpResponse, SqlRowList\r\n\r\ndef main(req: HttpRequest, items: SqlRowList) -> HttpResponse:\r\n \"\"\"Sample SQL Input Binding\r\n\r\n See https://aka.ms/sqlbindingsinput for more information about using this binding\r\n\r\n *IMPORTANT*\r\n Local Development : You must have version >= 4.0.5030 of the Azure Function Core Tools installed.\r\n\r\n These tasks should be completed prior to running :\r\n 1. Update \"commandText\" in function.json - this should be the query to execute to retrieve the values being returned\r\n 2. Add an app setting named \"SqlConnectionString\" containing the connection string to use for the SQL connection\r\n\r\n Arguments:\r\n req: The HttpRequest that triggered this function\r\n items: The list of objects returned by the SQL input binding\r\n \"\"\"\r\n\r\n rows = list(map(lambda r: json.loads(r.to_json()), items))\r\n\r\n return HttpResponse(\r\n json.dumps(rows),\r\n status_code=200,\r\n mimetype=\"application/json\"\r\n )\r\n" + }, + "function": { + "scriptFile": "__init__.py", + "bindings": [ + { + "authLevel": "function", + "type": "httpTrigger", + "direction": "in", + "name": "req", + "methods": [ + "get" + ] + }, + { + "type": "sql", + "name": "items", + "direction": "in", + "commandText": "SELECT * FROM [dbo].[table1]", + "commandType": "Text", + "connectionStringSetting": "SqlConnectionString" + }, + { + "type": "http", + "direction": "out", + "name": "$return" + } + ] + }, + "metadata": { + "defaultFunctionName": "SqlInputBinding", + "description": "$SqlInputBinding_description", + "name": "SQL Input Binding", + "language": "Python", + "category": [ + "$temp_category_core", + "$temp_category_dataProcessing" + ], + "categoryStyle": "other", + "enabledInTryMode": false, + "filters": [ + "Python3" + ] + } + }, + { + "id": "SqlInputBinding-Typescript", + "runtime": "2", + "files": { + "index.ts": "import { AzureFunction, Context, HttpRequest } from \"@azure/functions\"\r\n\r\n/**\r\n * Sample SQL Input Binding\r\n * See https://aka.ms/sqlbindingsinput for more information about using this binding\r\n *\r\n * These tasks should be completed prior to running :\r\n * 1. Update \"commandText\" in function.json - this should be the query to execute to retrieve the values being returned\r\n * 2. Add an app setting named \"SqlConnectionString\" containing the connection string\r\n * to use for the SQL connection\r\n * @param context The Azure Function runtime context\r\n * @param req The HttpRequest that triggered this function\r\n * @param items The array of objects returned by the SQL input binding\r\n */\r\nconst sqlInputBinding: AzureFunction = async function (context: Context, req: HttpRequest, items: any[]): Promise {\r\n context.log('HTTP trigger with SQL input binding function processed a request.');\r\n context.res = {\r\n // status: 200, /* Defaults to 200 */\r\n body: items\r\n };\r\n};\r\n\r\nexport default sqlInputBinding;", + "readme.md": "# SQL Input Binding - Typescript\r\n\r\nThe `SQL Input Binding` makes it easy to retrieve data from a database, returning the output of the query or stored procedure to the function.\r\n\r\n## How it works\r\n\r\nFor a `SQL Input Binding` to work, you can provide the query to retrieve data from an existing object in the database. For instance, you can set the query to `SELECT * FROM [dbo].[table1]` in the `commandText` value in your `function.json` to return all the values from the `[dbo].[table1]` table in the database.\r\n\r\nFor more information, see the official [docs](https://aka.ms/sqlbindingsinput)." + }, + "function": { + "bindings": [ + { + "authLevel": "function", + "type": "httpTrigger", + "direction": "in", + "name": "req", + "methods": [ + "get" + ] + }, + { + "type": "sql", + "name": "items", + "direction": "in", + "commandText": "SELECT * FROM [dbo].[table1]", + "commandType": "Text", + "connectionStringSetting": "SqlConnectionString" + }, + { + "type": "http", + "direction": "out", + "name": "res" + } + ] + }, + "metadata": { + "defaultFunctionName": "SqlInputBinding", + "description": "$SqlInputBinding_description", + "name": "SQL Input Binding", + "language": "Typescript", + "category": [ + "$temp_category_core", + "$temp_category_dataProcessing" + ], + "categoryStyle": "other", + "enabledInTryMode": false, + "userPrompt": [] + } + }, + { + "id": "SqlOutputBinding-CSharp", + "runtime": "2", + "files": { + "readme.md": "# SQL Output Binding - C#\r\n\r\nThe `SQL Output Binding` makes it easy to take an array of rows and upsert them into the user table (i.e. If a row doesn't already exist, it is added. If it does, it is updated).\r\n\r\n## How it works\r\n\r\nFor a `SQL Output Binding` to work, you provide the existing table in the database to upsert rows into. For instance, you can set the table to `[dbo].[table1]` in the `commandText` attribute to upsert into this table.\r\n\r\nFor more information, see the official [docs](https://aka.ms/sqlbindingsoutput)" + }, + "function": { + "bindings": [ + { + "authLevel": "function", + "name": "req", + "type": "httpTrigger", + "direction": "in", + "methods": [ + "get" + ] + } + ] + }, + "metadata": { + "defaultFunctionName": "SqlOutputBinding", + "description": "$SqlOutputBinding_description", + "name": "SQL Output Binding", + "language": "C#", + "category": [ + "$temp_category_core", + "$temp_category_dataProcessing" + ], + "categoryStyle": "other", + "enabledInTryMode": false, + "userPrompt": [] + } + }, + { + "id": "SqlOutputBinding-JavaScript", + "runtime": "2", + "files": { + "index.js": "/**\r\n * Sample SQL Output Binding\r\n * See https://aka.ms/sqlbindingsoutput for more information about using this binding\r\n *\r\n * These tasks should be completed prior to running :\r\n * 1. Update \"commandText\" in function.json - this should be the name of the table that you wish to upsert values to\r\n * 2. Add an app setting named \"SqlConnectionString\" containing the connection string\r\n * to use for the SQL connection\r\n * @param context The Azure Function runtime context\r\n * @param req The HttpRequest that triggered this function\r\n */\r\nmodule.exports = async function (context, req) {\r\n context.log('HTTP trigger with SQL output binding function processed a request.');\r\n\r\n // Set results array to context.bindings for upsertion\r\n // Note that this expects the body to be a JSON object or array of objects which have a property\r\n // matching each of the columns in the table to upsert to.\r\n context.bindings.results = JSON.stringify(req.body);\r\n\r\n context.res = {\r\n status: 201,\r\n body: req.body\r\n };\r\n}", + "readme.md": "# SQL Output Binding - JavaScript\r\n\r\nThe `SQL Output Binding` makes it easy to take an array of rows and upsert them into the user table (i.e. If a row doesn't already exist, it is added. If it does, it is updated).\r\n\r\n## How it works\r\n\r\nFor a `SQL Output Binding` to work, you provide the existing table in the database to upsert rows into. For instance, you can set the table to `[dbo].[table1]` in the `commandText` value in your `function.json` to upsert into this table.\r\n\r\nFor more information, see the official [docs](https://aka.ms/sqlbindingsoutput)" + }, + "function": { + "bindings": [ + { + "authLevel": "function", + "name": "req", + "direction": "in", + "type": "httpTrigger", + "methods": [ + "post" + ] + }, + { + "name": "$return", + "type": "http", + "direction": "out" + }, + { + "type": "sql", + "name": "results", + "direction": "out", + "commandText": "[dbo].[table1]", + "commandType": "Text", + "connectionStringSetting": "SqlConnectionString" + } + ] + }, + "metadata": { + "defaultFunctionName": "SqlOutputBinding", + "description": "$SqlOutputBinding_description", + "name": "SQL Output Binding", + "language": "JavaScript", + "category": [ + "$temp_category_core", + "$temp_category_dataProcessing" + ], + "categoryStyle": "other", + "enabledInTryMode": false, + "userPrompt": [] + } + }, + { + "id": "SqlOutputBinding-PowerShell", + "runtime": "2", + "files": { + "readme.md": "# SQL Output Binding - PowerShell\r\n\r\nThe `SQL Output Binding` makes it easy to take an array of rows and upsert them into the user table (i.e. If a row doesn't already exist, it is added. If it does, it is updated).\r\n\r\n## How it works\r\n\r\nFor a `SQL Output Binding` to work, you provide the existing table in the database to upsert rows into. For instance, you can set the table to `[dbo].[table1]` in the `commandText` value in your `function.json` to upsert into this table.\r\n\r\nFor more information, see the official [docs](https://aka.ms/sqlbindingsoutput)", + "run.ps1": "<#\r\nSample SQL Output Binding\r\nSee https://aka.ms/sqlbindingsinput for more information about using this binding\r\nThese tasks should be completed prior to running :\r\n 1. Update \"commandText\" in function.json - this should be the name of the table that you wish to upsert values to\r\n 2. Add an app setting named \"SqlConnectionString\" containing the connection string to use for the SQL connection\r\n@param Request The HttpRequest that triggered this function\r\n#>\r\nusing namespace System.Net\r\n\r\n# Trigger binding data passed in via param block\r\nparam($Request)\r\n\r\n# Write to the Azure Functions log stream.\r\nWrite-Host \"PowerShell function with SQL Output Binding processed a request.\"\r\n\r\n# Update req_body with the body of the request\r\n# Note that this expects the body to be a JSON object or array of objects \r\n# which have a property matching each of the columns in the table to upsert to.\r\n$req_body = $Request.Body\r\n\r\n# Assign the value we want to pass to the SQL Output binding. \r\n# The -Name value corresponds to the name property in the function.json for the binding\r\nPush-OutputBinding -Name results -Value $req_body\r\n\r\n# Assign the value to return as the HTTP response. \r\n# The -Name value matches the name property in the function.json for the binding\r\nPush-OutputBinding -Name Response -Value ([HttpResponseContext]@{\r\n StatusCode = [HttpStatusCode]::OK\r\n Body = $req_body\r\n})" + }, + "function": { + "bindings": [ + { + "authLevel": "function", + "type": "httpTrigger", + "direction": "in", + "name": "Request", + "methods": [ + "post" + ] + }, + { + "type": "http", + "direction": "out", + "name": "Response" + }, + { + "name": "results", + "type": "sql", + "direction": "out", + "commandText": "[dbo].[table1]", + "connectionStringSetting": "SqlConnectionString" + } + ] + }, + "metadata": { + "defaultFunctionName": "SqlOutputBinding", + "description": "$SqlOutputBinding_description", + "name": "SQL Output Binding", + "language": "PowerShell", + "category": [ + "$temp_category_core", + "$temp_category_dataProcessing" + ], + "categoryStyle": "other", + "enabledInTryMode": false, + "userPrompt": [] + } + }, + { + "id": "SqlOutputBinding-Python", + "runtime": "2", + "files": { + "readme.md": "# SQL Output Binding - Python\r\n\r\nThe `SQL Output Binding` makes it easy to take a list of rows and upsert them into the user table (i.e. If a row doesn't already exist, it is added. If it does, it is updated).\r\n\r\n## How it works\r\n\r\nFor a `SQL Output Binding` to work, you provide the existing table in the database to upsert rows into. For instance, you can set the table to `[dbo].[table1]` in the `commandText` value in your `function.json` to upsert into this table.\r\n\r\nFor more information, see the official [docs](https://aka.ms/sqlbindingsoutput)", + "__init__.py": "import json\r\n\r\nfrom azure.functions import HttpRequest, HttpResponse, Out, SqlRowList, SqlRow\r\n\r\ndef main(req: HttpRequest, items: Out[SqlRowList]) -> HttpResponse:\r\n \"\"\"Sample SQL Output Binding\r\n\r\n See https://aka.ms/sqlbindingsoutput for more information about using this binding\r\n\r\n *IMPORTANT*\r\n Local Development : You must have version >= 4.0.5030 of the Azure Function Core Tools installed.\r\n\r\n See /~https://github.com/Azure/azure-functions-sql-extension/issues/250 for the current state of Python support for the SQL binding\r\n\r\n These tasks should be completed prior to running :\r\n 1. Update \"commandText\" in function.json - this should be the name of the table that you wish to upsert values to\r\n 2. Add an app setting named \"SqlConnectionString\" containing the connection string to use for the SQL connection\r\n\r\n Arguments:\r\n req: The HttpRequest that triggered this function\r\n items: The objects to be upserted to the database\r\n \"\"\"\r\n\r\n # Note that this expects the body to be an array of JSON objects which\r\n # have a property matching each of the columns in the table to upsert to.\r\n body = json.loads(req.get_body())\r\n rows = SqlRowList(map(lambda r: SqlRow.from_dict(r), body))\r\n items.set(rows)\r\n\r\n return HttpResponse(\r\n body=req.get_body(),\r\n status_code=201, # 201 Created\r\n mimetype=\"application/json\"\r\n )\r\n" + }, + "function": { + "scriptFile": "__init__.py", + "bindings": [ + { + "authLevel": "function", + "type": "httpTrigger", + "direction": "in", + "name": "req", + "methods": [ + "post" + ] + }, + { + "type": "sql", + "name": "items", + "direction": "out", + "commandText": "[dbo].[table1]", + "connectionStringSetting": "SqlConnectionString" + }, + { + "type": "http", + "direction": "out", + "name": "$return" + } + ] + }, + "metadata": { + "defaultFunctionName": "SqlOutputBinding", + "description": "$SqlOutputBinding_description", + "name": "SQL Output Binding", + "language": "Python", + "category": [ + "$temp_category_core", + "$temp_category_dataProcessing" + ], + "categoryStyle": "other", + "enabledInTryMode": false, + "filters": [ + "Python3" + ] + } + }, { "id": "TimerTrigger-CSharp", "runtime": "2", @@ -4167,7 +4491,7 @@ "files": { "readme.md": "# TimerTrigger - Python\r\n\r\nThe `TimerTrigger` makes it incredibly easy to have your functions executed on a schedule. This sample demonstrates a simple use case of calling your function every 5 minutes.\r\n\r\n## How it works\r\n\r\nFor a `TimerTrigger` to work, you provide a schedule in the form of a [cron expression](https://en.wikipedia.org/wiki/Cron#CRON_expression)(See the link for full details). A cron expression is a string with 6 separate expressions which represent a given schedule via patterns. The pattern we use to represent every 5 minutes is `0 */5 * * * *`. This, in plain text, means: \"When seconds is equal to 0, minutes is divisible by 5, for any hour, day of the month, month, day of the week, or year\".\r\n\r\n## Learn more\r\n\r\n Documentation\r\n", "sample.dat": "", - "__init__.py": "import datetime\r\nimport logging\r\n\r\nimport azure.functions as func\r\n\r\n\r\ndef main(mytimer: func.TimerRequest) -> None:\r\n utc_timestamp = datetime.datetime.utcnow().replace(\r\n tzinfo=datetime.timezone.utc).isoformat()\r\n\r\n if mytimer.past_due:\r\n logging.info('The timer is past due!')\r\n\r\n logging.info('Python timer trigger function ran at %s', utc_timestamp)\r\n" + "__init__.py": "import logging\r\n\r\nfrom azure.functions import TimerRequest\r\nfrom datetime import datetime, timezone\r\n\r\n\r\ndef main(mytimer: TimerRequest) -> None:\r\n utc_timestamp = datetime.utcnow().replace(tzinfo=timezone.utc).isoformat()\r\n\r\n if mytimer.past_due:\r\n logging.info('The timer is past due!')\r\n\r\n logging.info('Python timer trigger function ran at %s', utc_timestamp)\r\n" }, "function": { "scriptFile": "__init__.py", diff --git a/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/version.txt b/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/version.txt index f85bf6e32..6ca6df113 100644 --- a/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/version.txt +++ b/resources/backupTemplates/Microsoft.Azure.Functions.ExtensionBundle/version.txt @@ -1 +1 @@ -3.17.0 \ No newline at end of file +4.8.0 \ No newline at end of file diff --git a/resources/backupTemplates/dotnet/~4/net6.0-isolated/item.nupkg b/resources/backupTemplates/dotnet/~4/net6.0-isolated/item.nupkg index 48947c8e0e0d3e7efc22e4888014f78006bbb084..ddb80e9f4fa1b766cdc97e9e0ed45f0cea90ca58 100644 GIT binary patch delta 49523 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 Uedq}62<&_?a0rhyU;wfH4*-D~5dZ)H delta 31458 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þ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 G(*FS;P^x$U diff --git a/resources/backupTemplates/dotnet/~4/net6.0/item.nupkg b/resources/backupTemplates/dotnet/~4/net6.0/item.nupkg index 0ba28b4951011d7880920055438c4fbd3dadef5b..91bdb84bad245f5a4c01283beeb5bee5890d041b 100644 GIT binary patch delta 43375 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 z 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 delta 26709 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 diff --git a/resources/backupTemplates/dotnet/~4/net6.0/project.nupkg b/resources/backupTemplates/dotnet/~4/net6.0/project.nupkg index ab7e006a1058d05c09b0a5791f01a23eabcea80b..a604151d3ab092c85c6e1d3bd48acfe175e9f2d4 100644 GIT binary patch delta 9025 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 F{{n?52`m5r delta 8914 zcmeHtcTiN@viHo8Gf0v=nO&hftY)%WWA=T*JByK3)RyX&{s^y=>F^_%WJ6bnj?1tE0Q(a^~N001^X zrd--6-L9#W69@oMfB*ozTd9S&ovRN&-_K`yiii3e2=U`3ywJzV=jzjqE^wHrQByb) zZ1ZJDsKak|jYw5wM%$xXTts0qbMW)=!gb5mmFC_QNghLdm8aZYrNZYNUlg#&0i!^B~fHPVs68VmqXnlT; zrpzs8{GcJE`P-Y9m|O9p=HTfv6yyPAI!@VBmXzz+H<38ET*#owd)9RrITvWAKc=G#0uQV!fCO) zFiIy%%x{!9olZpiVk#H;MYO4}xz!39pAVT3MmY{>4$t%P#=X`IH>rj@X;bY;z}|l> zF?-?KXsLRb?xj|}DES@zcblqP?Xb4q+SC~h0N}s1siu>Sw}+31y)U0^;6qdh5Q^X~ z#1?mIB<4|y7rG;8z30ajo85PI;b5Obw<*G#zY*G_zuy$UMU%kE2eBgR> z?_`tY6$+m2uMUlu!7*2#%@Dh=*Z&f7dW0cpws1_Llg4elG7)qft;a5Lw}m-^%t-RH zKhuefgPTTSyKDP%n5>~ECVGIMa3aDAyB2t_x^+XJ+y!Plw-Ns)(=t35xtcB|;cav3 zK>ULO^PLY-;uOaN*U>i>dA7Eh4j9Gd_1OO3@|*VWOgK98;^Gm>!Y{xW99US4-TqbR z28)=MCr=0CI-U~kyILe@m_<%+OZy9HcNm=eN{8B+@7I~9bWKp12V@Ef-s~W5O2`9h z$1Mcf>iDdL#jKtmGAH721~R1GRewxT#-Xby>SbRxMUk&+KCxIXHa28U*RsIaAP)QJ z*LivP&@QB+aw;Q94M`Z1#FijWLHj|u45ygVfoa%~X61=tp~xc!=6nNokz>ro0{oKY z>qW&UL^>-cuJMj_(_Q|nUlRNzrd@*Mq|VeA)RJ^-u3vv94ccn=%q!Cda58k|vRN%$ zG^A}om5g&kI-4&s{_^c|nY2;8J(>kJ_RrCZe-j>R9M1^If?~mkA$Awfe{4VRIJY9l zuT;^9mgARkIwzo+#dynm@xVt}+#Tu2^msCrUFMQwde;%papz1+tm8A2D3B8&B^kFk z8azqWsWtF!B6D5cpLAp0FD^P{L6r~Juk^I!qyu+_9lN?9QW{!QflhjCJ8BFGXXPMv zf5e>fRU|4pm|sRy6*HhaOsa+t1tM@K{Ha~(3P3UZHuhEls89kvM8*1=9su;bZsys_ z*wsB&ZVXoD`)I6mWu980fr0i9By?J+nLrepJRC#A8d^L+=Wk=&6B=(hIF$^6MuvG= zcm^4n^m%YSP)Q93kb9KJZ(LntL{$?wl1Y|cx^1b8f~Vx^=cMM`(Ss%9LX|l=8f%0a zTNH2%-FT6BcA#=%IN*0PqI3vH(SPcRVj!CQrSQu7NNC}05}L$Dff?vglVPlg=Z2a| z?;yk-%zKEMUL1pGuPB^YSqLktEM-AP4QX$jqs$y~{JmU9>Cx|?1-gk3nyT*VmKrxjlkIHTqgwl1fLBdBV^K`$e!HL>jczOa)=c&LRdA11; z8?16Umbc%Ph__oPr!^oY=IECYB>%(|Gnm{tMVO;_wQFB{Z`2NL=M>%fd@3 zf?Au+llNsn;~Q3%PMk_8U?l8+F{as(bap^kz+bt zswTSSre88}ECWGPAjI27uc}b%G--)u0H;+2H-GA`p7M8DnhorcG{%_du>@2q^|PAX5TKWH0%C!{8N!OIAUX&B zq@CFpQ(^~<^gW_6m+!m6=t{IX-i>xBdBy7NmejGD=f|lSkM|H8^ue&_YK->mB|2Ea zK9#{dy{sfN#xO1FBDYJ+bPa8`lcsFFWClwk1&yw4u~j6XQ7QzXV9-xUI)jqCKH12G zWh7uWrBd3ty&kG_o8LC@eww?Ud$Tb>M&2p^Mm;dnLh!BqjHd*pR~13^Z1Ob{SK!6& zcip9`i2Lb;_oGI4kAjaAcWK{r@P5p!(QCCRBRFmky+*rGqS{+uK*KKdz)*gmVh7r2 z`2K0Ho|^tVaUaW8@SuHdnAps zLWl>KG_M$(ZIJgSRpo*|We}swGubT9Rg}*IBc@zF5keDg+A&1O7U)Bqzjqvbe(|W1 zhHF9AcIe(>kZ-C2u5c9rUNoLP>-N$j@d_M;Zg)f(mHk@9$jq}5D5!S@U^fV|2n(=I zsya62-@Q)K=;0tuQPtTb=Ws(9-+b`NUsp*HkrxW*ea@N`hOg5%{BeEi{dGi5V7ub} zJv~|}$%-F4-XEwm9Z&%q>c_&bW1+2|pZx$3rN-r@H*}^|>C0XT?aoO04Pp|e10(N! zIwlyiB*2aA_-vx!L?Qo%w)!?lO%*B!y&7#x6T_&3cO~NK0AM3oH0mE*o{6}=(4Ay* zB|uC21N0(0B|AVXEyU2Em4R!rFp;<$r@<@V-nhqeB3a4u35j+#rp=w&shgxu3Y_|L zp{e;Le}J-%oi{JM-Tz^7X68MFXZsE2?_T*W8Pfl>JHpY!$CuC9$HV=9CNom~nHv9# z%*b)8AvG$NK9=BT+`KlwFz&jIn-LTPg9?I1fVdOuh#@l2Sv5-DBZ^)QSrjGJ?H-6- zG<38Jw==#|th*(0(PdmQ+iB*3+o&xmxMV{g*!J4;aL}$WLh(n&VG_LPvRogpBY~l8D=?WVpF#qf!i~(_}Ns{jRM=G@Z?G+qIxXr(#1N!f*rg zO-&`8sHY@5yxfImW+Y9=)Ba%7k{m%S!fn7nk;qSJ=XJQA)?P#piu{~vb)A9$rI>e* zaRzbYUd1MwG_QKpe7Ag5U`OTEDG)n#A2?AL#9>=j_NccjuqEQD4$OG)+P3$RY5Ye{ zd`3QnaE5&zQ~#zZ&Ypah*71ouvPwst>;8T~_5&Mei-Ey>NU+-Bs|`E6HI%!?Q7()_ zMR7@8vrUKs+-z+;-BNqp=OOsf2WXds$hWb!gYM2HO>ypySgz{CmOX71OjG3) zrcjnZ_p=kj$iDF>i!9e)2cMF~wP!XlB6=k3e5qK460sevN~YVP+qDJjQ|1p(%ZUei z5ub7hdAL0L9GseypT!rDv}4$qd(b%VCaU%nhEoVhWK2dX+VCLVK0n5hrDC?oqb`oN zDwL;QvG>ZWSsG=K?iXwbe%T;jg^^b`fKO?w++nzv{^>(TF?O9W;01_zFo$!yV6i-$MW%`)^syotujSKU9t zWa`43T*N@IAgn%9Cgx+!ph?N+j595^1v?yD$}gQUD5D)YRGwOXA9tm@pDsyiZfX7% zV`i(mB7VR(qd%Z$f?sy=jTOYG?WN_a05-v+mXn}m)uZDg_^Abu{p*~Q&w9anKmg(% zqs1j=M}?kzQidpL-F|bzou%a(fuKpd9M>J8t^%Lz2|<-=k0txVk_Mp&<_ZE;5WiM^ z-axbOX$@miM)MbfJyj)-%~zHOw12SL-FP^i;{G!w0RZy`vPR-2?c&(5+kauVH{mT$ z@nP9aE>L)5YYIZB9Clv~V+-(Ahk zTh7DEMNkvw2o=?kQ*`k3l$V3btMUh0*$VkR($rBERyTqx)@QK#(PE%Mkdikj5;-^y z6e1uX1{H^jpmZ(4s5H4d;6-=!JKUIrrD6JOAQ}q*zYMz^-J}W6)yb=mQ0eE%KTrd5 zJBSo|C^>Xd!QonvaIoLO$1f%A?dc8U+tVk@56NO+M$P=jG^qkF@?l$aFTn;ufv`|0 zpBoZPUAjOuUXVSr}~#fjc8uc#7rx} zy6OEVNPV?z_=tI3;JIT1wIX!2pr;2Dj1UW5s4-<`C@*efh|(wIs8j~30g9o zLwx3lk|)&GAi4bOhHh||LbA3b#t37LiTNAC$1jL5Mdktpr55bnp1w>nUvd{UHX|-L zp!yIvhB2eB*)XG=QNyb((^qr`?hl!Bz(tvVv~7pwArHxVd9x~{-5#l%$!{f~b3&Ku zi;&``5F`x^Cf#ykd4EF#(F?=l(ZgdQ;n65U zMMkG|UYqOk$Hk`gpcJsI!nQc@W72w5W|Hb$Db0C*7gaonm_#z;$9qJ(Edd8MN^&|< z>Mju!a!W}6bRirBcA(roQ>3C@*<>CwZP4y%0&!Tc6L` zfmUy%s(?@14MC!p6{3NFAP_OWrjxgN+T}eiwfme{VfW#vCc}XHP>48G0P^dCQxXUY z3J5?2pn}5U!s2jFGt>UZ)!3 zTb<8N;9P}Dt z^if6|QF}*LuU|@Fg`8Emui1ZIF+1hoOPJA2k91rO8+8ttnkG(B;@pv9J8Fm@*J!mL zYJaICMz9v2W=;j~It`L>_n;`t$xBy`jtY>%e_$U^jmy%R_i{R~>0I00zmG$@n3hNf zQ?w2Hqi|^>{U?7DI&sA2g+>Z-MyTfU=ibWap%=U~47=P)cZ;dc#LrKAw7vLZ(MX=D zw`X--YJUw9Ilxr-YIq~Ey%sF6aonrdw@wiR4}H$+GvDo;&B$xB20PW{PiA0mo~|HU z6SIG;i|z7VUtWCD_R{F>mlND|GB;cQ_N?o)H$IHV{JnhOx$swrcZXOr%N-xh)!hZs zIOEo3OYG9RP1e@pVJ ztjA1*(6l%|%k9y(#Mvxv$)Br4FwnN_X32g#BMkfg^=2ub_{9#O%|b1ST0*a3y9-B^ zTv!B_Lu4>rM}r7`fK%yb@Wj_`WE#VP+i&M4tBx&Qj4DQfYz-Io%w>Z~N`Y}&nzlQ4 zFIc7SLn?lX_C5QwYIBhOPQgmS*LMujK-)Y(?-tzmA;JCSfS4{?VCFCtf;ntX1a6T* zQEP)gpd=$XVJf~zgvXT`o1;f5DFJ7RPoGB`=O|+oNDR0V(cs;7TezuwEtHt+; zo-Q6fM4vO;`)z=!Ogp#Z1A;b3w~s&P%;E)mW?KedlySG^hQATQ`JgvFN1X&Tgv=YJ z#t3fnYSaqMc0JiFn1N>vJ?%;?vsN*?R6mD9_jprG_Tp*@yQ)!j`!G^)KFru{`WlR_JGsfbl4EGvEK5 znU>Au{&sNjm{ThrKW5U57DT2Bm#4k%NXppyK^yD?;r}xY zXk5tL*mMaY_;Xbt5CedY1Od>p`3S5tOw+wO;Sn_P zDwllZetdJraUKn2uhqmX~6I;t$!*!!)PN>9~l#CZqbC<7^3vR z=`}2Q+BwIscvCYWnixa^SnPk%eLPJ~vXm=b@7DXUO7yPba%<7HL z9#0K^`1b=kE72{|9wqnBd^1q8&h~$^sDHDlf3v86v#9?iEb3?0L;bf|)L#51V;uI= zlDe<11C&%983u#6Sn4yNa%zUXuLns*rvJYzD%0kn1pM*Cjve9Z=~E^GX+?)bVj|KP z{WAI$LlN1l1zclKXyz$PB}#ZA?Z)=+EU9FkQ(qP{=($I!`c+J$xRf^IB+6_agR~Jz zJ&4M8ciNu}$KEXw+u&VtY;P$`FCOCwrDf_Amg_0NwC=4H=`75ljD{-HT(l}rqOv0F zJeBBJk3+}&B$$`EJZf6|xLfayY(DGMMT*YeS*}3bjlmLI8X;G=60OM5Kh3UZ`Y?@` zIGzuzR9kHu(Yna$BS0SxS;yYqn%Af1`iR)+YOk?$aqj3+@%$t17#HRK>YT-InZs*o zGDmJ?!?>dI?yzsYKPOimvf(=}1@i_Qzn#ZG^WkyK`q}2qW`leX>zKky(?S;{&IU9JnTu1e{~q!#FODF|47zfs^TMrDl;!F!eYHUdEf zsYI!tzBR|TVPN9!Uv&Reo;1-C7F~6qZ=>6mv5gqn!P>Lo4_rWCCTmeVd>0Jgb5rma z(nwO{Z@}ec*wd`b5?v&g6BZ7#YC5)k(QeK5PQuEV!}q&MK4x=#fgzjpaGV*LxQ3m~ z_xEQMGH-Ftv}L?9Hi{2(l0>V5OH0(9te;nr30!58fmhn`pnywUc@w=XSmRvXK%#dA zqTH8CBXNx1*_$sq#j(+|t?l4Zw1@Nf(@Pz7Aczd``}YVa&QO70)zF`fbd+_d;XgWs z?V+l%%zZ@lK%tY>ybqO diff --git a/resources/backupTemplates/dotnet/~4/net7.0-isolated/item.nupkg b/resources/backupTemplates/dotnet/~4/net7.0-isolated/item.nupkg index 48947c8e0e0d3e7efc22e4888014f78006bbb084..ddb80e9f4fa1b766cdc97e9e0ed45f0cea90ca58 100644 GIT binary patch delta 49523 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 Uedq}62<&_?a0rhyU;wfH4*-D~5dZ)H delta 31458 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þ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 G(*FS;P^x$U diff --git a/resources/backupTemplates/dotnet/~4/version.txt b/resources/backupTemplates/dotnet/~4/version.txt index 7db87d026..943251124 100644 --- a/resources/backupTemplates/dotnet/~4/version.txt +++ b/resources/backupTemplates/dotnet/~4/version.txt @@ -1 +1 @@ -4.32.0 \ No newline at end of file +4.50.0 \ No newline at end of file diff --git a/resources/backupTemplates/java/~2/bindings/bindings.json b/resources/backupTemplates/java/~2/bindings/bindings.json index 84ceb2d52..c8551e752 100644 --- a/resources/backupTemplates/java/~2/bindings/bindings.json +++ b/resources/backupTemplates/java/~2/bindings/bindings.json @@ -474,6 +474,56 @@ "help": "$cosmosDBIn_createLeaseContainerIfNotExists_help" } ] + }, + { + "type": "sql", + "displayName": "$sql_output_displayName", + "direction": "out", + "enabledInTryMode": false, + "settings": [ + { + "name": "table", + "value": "string", + "defaultValue": "[dbo].[table1]", + "required": true, + "label": "$sql_output_table_label", + "help": "$sql_output_table_help" + }, + { + "name": "SqlConnectionString", + "value": "string", + "defaultValue": "", + "required": true, + "resource": "Sql", + "label": "$sql_output_connection_label", + "help": "$sql_output_connection_help" + } + ] + }, + { + "type": "sql", + "displayName": "$sql_input_displayName", + "direction": "in", + "enabledInTryMode": false, + "settings": [ + { + "name": "object", + "value": "string", + "defaultValue": "[dbo].[table1]", + "required": true, + "label": "$sql_input_object_label", + "help": "$sql_input_object_help" + }, + { + "name": "SqlConnectionString", + "value": "string", + "defaultValue": "", + "required": true, + "resource": "Sql", + "label": "$sql_input_connection_label", + "help": "$sql_input_connection_help" + } + ] } ] } \ No newline at end of file diff --git a/resources/backupTemplates/java/~2/resources/Resources.json b/resources/backupTemplates/java/~2/resources/Resources.json index becdee07d..c08e98b36 100644 --- a/resources/backupTemplates/java/~2/resources/Resources.json +++ b/resources/backupTemplates/java/~2/resources/Resources.json @@ -1,6 +1,6 @@ { "en": { - "variables_storageConnStringLabel": "Storage account connection", + "variables_storageConnStringLabel": "Connection string setting", "variables_appSettingsHelp": "The name of the app setting containing your storage account connection string.", "variables_selectConnection": "Click select to choose a connection", "TimerTrigger_description": "A function that will be run on a specified schedule", @@ -10,7 +10,7 @@ "timerTrigger_schedule_errorText": "Invalid Cron Expression. Please consult https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-timer#cron-expressions to learn more.", "QueueTrigger_description": "A function that will be run whenever a message is added to a specified Azure Storage queue", "queueTrigger_displayName": "Azure Queue Storage", - "queueTrigger_queueName_label": "Queue name", + "queueTrigger_queueName_label": "Queue", "queueTrigger_queueName_help": "Name of the queue from which the message will be read", "queueTrigger_queueName_errorText": "Queue name must start and end with a letter or number, and it can contain only lowercase letters, numbers, and the hyphen. The name must be 3 to 63 characters.", "BlobTrigger_description": "A function that will be run whenever a blob is added to a specified container", @@ -24,24 +24,24 @@ "httpTrigger_authLevel_help": "Authorization level controls whether the function requires an API key and which key to use; Function uses a function key; Admin uses your master key. The function and master keys are found in the 'keys' management panel on the portal, when your function is selected. For user-based authentication, go to Function App Settings.", "ServiceBusQueueTrigger_description": "A function that will be run whenever a message is added to a specficied Service Bus queue", "serviceBusTrigger_displayName": "Azure Service Bus", - "serviceBusTrigger_connection_label": "Service Bus connection", + "serviceBusTrigger_connection_label": "Connection string setting", "serviceBusTrigger_connection_help": "The name of the app setting containing your Service Bus connection string. The connection string must have Listen rights.", "serviceBusTrigger_queueName_label": "Queue name", "serviceBusTrigger_queueName_help": "The queue from which the message will be read.", "serviceBusTrigger_queueName_errorText": "Queue name must start and end with a letter or number, and it can contain only letters, numbers, the hyphen, the period, and the underscore. The name must be 1 to 50 characters.", "ServiceBusTopicTrigger_description": "A function that will be run whenever a message is added to the specified Service Bus Topic", - "serviceBusTrigger_topicName_label": "Topic name", + "serviceBusTrigger_topicName_label": "Topic", "serviceBusTrigger_topicName_help": "The name of the topic from which the message will be read.", "serviceBusTrigger_topicName_errorText": "Topic name must start and end with a letter or number, and it can contain only letters, numbers, the hyphen, the period, and the underscore. The name must be 1 to 50 characters.", - "serviceBusTrigger_subscriptionName_label": "Subscription name", + "serviceBusTrigger_subscriptionName_label": "Subscription", "serviceBusTrigger_subscriptionName_help": "Subscription name within the topic to bind to.", "serviceBusTrigger_subscriptionName_errorText": "Subscription name must start and end with a letter or number, and it can contain only letters, numbers, the hyphen, the period, and the underscore. The name must be 1 to 50 characters.", "EventGridTrigger_description": "A function that will be run whenever an event grid receives a new event", "EventHubTrigger_description": "A function that will be run whenever an event hub receives a new event", "eventHubTrigger_displayName": "Azure Event Hubs", - "eventHubTrigger_connection_label": "Event Hub connection", + "eventHubTrigger_connection_label": "Connection string setting", "eventHubTrigger_connection_help": "The name of the app setting containing your Event Hub connection string. The connection string must have Receive permissions.", - "eventHubOut_path_label": "Event Hub name", + "eventHubOut_path_label": "Event Hub", "eventHubTrigger_path_help": "The name of the event hub from which to trigger", "eventHubTrigger_path_errorText": "The event hub name must start and end with a letter or number, and it can contain only letters, numbers, the hyphen, the period, and the underscore. The name must be 1 to 50 characters.", "eventHubTrigger_consumerGroup_label": "Event Hub consumer group", @@ -49,11 +49,11 @@ "eventHubTrigger_consumerGroup_errorText": "The consumer group must start and end with a letter or number, and it can contain only letters, numbers, the hyphen, the period, and the underscore. The $Default group is also allowed. The name must be 1 to 50 characters.", "CosmosDBTrigger_description": "A function that will be run whenever documents change in a document collection", "cosmosDB_trigger_displayName": "Azure Cosmos DB", - "cosmosDBIn_connection_label": "Cosmos DB account connection", + "cosmosDBIn_connection_label": "Connection string setting", "cosmosDBIn_connection_help": "The name of the App Setting containing the connection string to the service that contains the collection to be monitored.", - "cosmosDBIn_databaseName_label": "Database name", + "cosmosDBIn_databaseName_label": "Database", "cosmosDBIn_databaseName_help": "Name of the Cosmos DB database that includes the collection to be monitored.", - "cosmosDBIn_collectionName_label": "Collection name", + "cosmosDBIn_collectionName_label": "Collection", "cosmosDBIn_collectionName_help": "Name of the collection to be monitored.", "cosmosDBIn_leaseCollectionName_label": "Collection name for leases", "cosmosDBIn_leaseCollectionName_help": "Name of the collection to store the leases.", @@ -61,13 +61,13 @@ "cosmosDBIn_createIfNotExists_help": "Checks for existence and automatically creates the leases collection.", "RabbitMQTrigger_description": "A function that will be run whenever a message is added to a specified RabbitMQ queue", "rabbitMqTrigger_displayName": "RabbitMQ", - "rabbitMqIn_connectionStringSetting_label": "Connection string setting name", + "rabbitMqIn_connectionStringSetting_label": "Connection string setting", "rabbitMqIn_connectionStringSetting_help": "The name of the app setting containing your RabbitMQ connection.", - "rabbitMqIn_queueName_label": "Queue name", + "rabbitMqIn_queueName_label": "Queue", "rabbitMqIn_queueName_help": "This is the queue name.", "KafkaTrigger_description": "A function that will be run whenever a message is added to a specified Kafka", "kafka_trigger_displayName": "Kafka", - "kafka_name_label": "Message parameter name", + "kafka_name_label": "Message parameter", "kafka_name_help": "Name used to identify trigger in code", "kafka_name_errorText": "The kafka name must start with a letter, and it can contain only letters and numbers. The name must be 1 to 127 characters.", "kafka_brokerlist_label": "List of Brokers", @@ -86,11 +86,23 @@ "kafka_consumergroup_help": "Consumer Group", "DurableFunctionsOrchestrator_description": "An orchestrator function that invokes activity functions in a sequence.", "DurableFunctionsOrchestrator_displayName": "Durable Functions Orchestrator", - "cosmosDBIn_containerName_label": "Container name", + "cosmosDBIn_containerName_label": "Container", "cosmosDBIn_containerName_help": "Name of the container to be monitored.", "cosmosDBIn_leaseContainerName_label": "Container name for leases", "cosmosDBIn_leaseContainerName_help": "Name of the container to store the leases.", "cosmosDBIn_createLeaseContainerIfNotExists_label": "Create lease container if it does not exist", - "cosmosDBIn_createLeaseContainerIfNotExists_help": "Checks for existence and automatically creates the leases container." + "cosmosDBIn_createLeaseContainerIfNotExists_help": "Checks for existence and automatically creates the leases container.", + "SqlInputBinding_description": "A function that takes a SQL query to run on a provided table or view and returns the output of the query", + "sql_input_displayName": "SQL input binding", + "sql_input_object_label": "Table or View", + "sql_input_object_help": "This is the table or view name for the SQL input binding.", + "sql_input_connection_label": "Connection string setting", + "sql_input_connection_help": "The name of the app setting containing your SQL connection string.", + "SqlOutputBinding_description": "A function that takes a list of rows and upserts them into the user table", + "sql_output_displayName": "SQL output binding", + "sql_output_table_label": "Table", + "sql_output_table_help": "This is the table for the SQL output binding.", + "sql_output_connection_label": "Connection string setting", + "sql_output_connection_help": "The name of the app setting containing your SQL connection string." } } \ No newline at end of file diff --git a/resources/backupTemplates/java/~2/templates/templates.json b/resources/backupTemplates/java/~2/templates/templates.json index bf5fce8a9..665725a9c 100644 --- a/resources/backupTemplates/java/~2/templates/templates.json +++ b/resources/backupTemplates/java/~2/templates/templates.json @@ -200,7 +200,7 @@ ] }, "files": { - "function.java": "package $packageName$;\n\nimport com.microsoft.azure.functions.annotation.*;\nimport com.microsoft.azure.functions.*;\n\n/**\n * Azure Functions with Cosmos DB trigger.\n */\npublic class $className$ {\n /**\n * This function will be invoked when there are inserts or updates in the specified database and collection.\n */\n @FunctionName(\"$functionName$\")\n public void run(\n @CosmosDBTrigger(\n name = \"items\",\n databaseName = \"$databaseName$\",\n collectionName = \"$collectionName$\",\n leaseCollectionName=\"$leaseCollectionName$\",\n connectionStringSetting = \"$connectionStringSetting$\",\n createLeaseCollectionIfNotExists = $createLeaseCollectionIfNotExists$\n )\n Object[] items,\n final ExecutionContext context\n ) {\n context.getLogger().info(\"Java Cosmos DB trigger function executed.\");\n context.getLogger().info(\"Documents count: \" + items.length);\n }\n}\n" + "function.java": "package $packageName$;\n\nimport com.microsoft.azure.functions.annotation.*;\nimport com.microsoft.azure.functions.*;\n\n/**\n * Azure Functions with Cosmos DB trigger.\n * \n * This template uses an outdated version of the Azure Cosmos DB extension. Learn about the new extension at https://aka.ms/cosmos-db-azure-functions-extension-v4\n */\npublic class $className$ {\n /**\n * This function will be invoked when there are inserts or updates in the specified database and collection.\n */\n @FunctionName(\"$functionName$\")\n public void run(\n @CosmosDBTrigger(\n name = \"items\",\n databaseName = \"$databaseName$\",\n collectionName = \"$collectionName$\",\n leaseCollectionName=\"$leaseCollectionName$\",\n connectionStringSetting = \"$connectionStringSetting$\",\n createLeaseCollectionIfNotExists = $createLeaseCollectionIfNotExists$\n )\n Object[] items,\n final ExecutionContext context\n ) {\n context.getLogger().info(\"Java Cosmos DB trigger function executed.\");\n context.getLogger().info(\"Documents count: \" + items.length);\n }\n}\n" } }, { @@ -395,7 +395,70 @@ ] }, "files": { - "function.java": "package $packageName$;\n\nimport com.microsoft.azure.functions.annotation.*;\nimport com.microsoft.azure.functions.*;\nimport java.util.*;\n\nimport com.microsoft.durabletask.*;\nimport com.microsoft.durabletask.azurefunctions.DurableActivityTrigger;\nimport com.microsoft.durabletask.azurefunctions.DurableClientContext;\nimport com.microsoft.durabletask.azurefunctions.DurableClientInput;\nimport com.microsoft.durabletask.azurefunctions.DurableOrchestrationTrigger;\n\n/**\n * Please follow the below steps to run this durable function sample\n * 1. Send an HTTP GET/POST request to endpoint `StartHelloCities` to run a durable function\n * 2. Send request to statusQueryGetUri in `StartHelloCities` response to get the status of durable function\n * For more instructions, please refer https://aka.ms/durable-function-java\n * \n * Please add com.microsoft:durabletask-azure-functions to your project dependencies\n * Please add `\"extensions\": { \"durableTask\": { \"hubName\": \"JavaTestHub\" }}` to your host.json\n */\npublic class $className$ {\n /**\n * This HTTP-triggered function starts the orchestration.\n */\n @FunctionName(\"StartOrchestration\")\n public HttpResponseMessage startOrchestration(\n @HttpTrigger(name = \"req\", methods = {HttpMethod.GET, HttpMethod.POST}, authLevel = AuthorizationLevel.ANONYMOUS) HttpRequestMessage> request,\n @DurableClientInput(name = \"durableContext\") DurableClientContext durableContext,\n final ExecutionContext context) {\n context.getLogger().info(\"Java HTTP trigger processed a request.\");\n\n DurableTaskClient client = durableContext.getClient();\n String instanceId = client.scheduleNewOrchestrationInstance(\"Cities\");\n context.getLogger().info(\"Created new Java orchestration with instance ID = \" + instanceId);\n return durableContext.createCheckStatusResponse(request, instanceId);\n }\n\n /**\n * This is the orchestrator function. The OrchestrationRunner.loadAndRun() static\n * method is used to take the function input and execute the orchestrator logic.\n */\n @FunctionName(\"Cities\")\n public String citiesOrchestrator(\n @DurableOrchestrationTrigger(name = \"taskOrchestrationContext\") TaskOrchestrationContext ctx) {\n String result = \"\";\n result += ctx.callActivity(\"Capitalize\", \"Tokyo\", String.class).await() + \", \";\n result += ctx.callActivity(\"Capitalize\", \"London\", String.class).await() + \", \";\n result += ctx.callActivity(\"Capitalize\", \"Seattle\", String.class).await() + \", \";\n result += ctx.callActivity(\"Capitalize\", \"Austin\", String.class).await();\n return result;\n }\n\n /**\n * This is the activity function that gets invoked by the orchestration.\n */\n @FunctionName(\"Capitalize\")\n public String capitalize(\n @DurableActivityTrigger(name = \"name\") String name,\n final ExecutionContext context) {\n context.getLogger().info(\"Capitalizing: \" + name);\n return name.toUpperCase();\n }\n}" + "function.java": "package $packageName$;\n\nimport com.microsoft.azure.functions.annotation.*;\nimport com.microsoft.azure.functions.*;\nimport java.util.*;\n\nimport com.microsoft.durabletask.*;\nimport com.microsoft.durabletask.azurefunctions.DurableActivityTrigger;\nimport com.microsoft.durabletask.azurefunctions.DurableClientContext;\nimport com.microsoft.durabletask.azurefunctions.DurableClientInput;\nimport com.microsoft.durabletask.azurefunctions.DurableOrchestrationTrigger;\n\n/**\n * Please follow the below steps to run this durable function sample\n * 1. Send an HTTP GET/POST request to endpoint `StartHelloCities` to run a durable function\n * 2. Send request to statusQueryGetUri in `StartHelloCities` response to get the status of durable function\n * For more instructions, please refer https://aka.ms/durable-function-java\n * \n * Please add com.microsoft:durabletask-azure-functions to your project dependencies\n * Please add `\"extensions\": { \"durableTask\": { \"hubName\": \"JavaTestHub\" }}` to your host.json\n */\npublic class $className$ {\n /**\n * This HTTP-triggered function starts the orchestration.\n */\n @FunctionName(\"StartOrchestration\")\n public HttpResponseMessage startOrchestration(\n @HttpTrigger(name = \"req\", methods = {HttpMethod.GET, HttpMethod.POST}, authLevel = AuthorizationLevel.ANONYMOUS) HttpRequestMessage> request,\n @DurableClientInput(name = \"durableContext\") DurableClientContext durableContext,\n final ExecutionContext context) {\n context.getLogger().info(\"Java HTTP trigger processed a request.\");\n\n DurableTaskClient client = durableContext.getClient();\n String instanceId = client.scheduleNewOrchestrationInstance(\"Cities\");\n context.getLogger().info(\"Created new Java orchestration with instance ID = \" + instanceId);\n return durableContext.createCheckStatusResponse(request, instanceId);\n }\n\n /**\n * This is the orchestrator function, which can schedule activity functions, create durable timers,\n * or wait for external events in a way that's completely fault-tolerant.\n */\n @FunctionName(\"Cities\")\n public String citiesOrchestrator(\n @DurableOrchestrationTrigger(name = \"ctx\") TaskOrchestrationContext ctx) {\n String result = \"\";\n result += ctx.callActivity(\"Capitalize\", \"Tokyo\", String.class).await() + \", \";\n result += ctx.callActivity(\"Capitalize\", \"London\", String.class).await() + \", \";\n result += ctx.callActivity(\"Capitalize\", \"Seattle\", String.class).await() + \", \";\n result += ctx.callActivity(\"Capitalize\", \"Austin\", String.class).await();\n return result;\n }\n\n /**\n * This is the activity function that gets invoked by the orchestration.\n */\n @FunctionName(\"Capitalize\")\n public String capitalize(\n @DurableActivityTrigger(name = \"name\") String name,\n final ExecutionContext context) {\n context.getLogger().info(\"Capitalizing: \" + name);\n return name.toUpperCase();\n }\n}" + } + }, + { + "id": "SqlOutputBinding-Java", + "metadata": { + "name": "SqlOutputBinding", + "description": "$SqlOutputBinding_description", + "defaultFunctionName": "SqlOutputBindingJava", + "language": "Java", + "userPrompt": [ + "table", + "SqlConnectionString" + ] + }, + "bundle": [ + "~4" + ], + "function": { + "disabled": false, + "bindings": [ + { + "type": "sql", + "name": "items", + "direction": "out", + "commandText": "[dbo].[table1]", + "connectionStringSetting": "SqlConnectionString" + } + ] + }, + "files": { + "function.java": "package $packageName$;\n\nimport com.microsoft.azure.functions.HttpMethod;\nimport com.microsoft.azure.functions.HttpRequestMessage;\nimport com.microsoft.azure.functions.HttpResponseMessage;\nimport com.microsoft.azure.functions.HttpStatus;\nimport com.microsoft.azure.functions.OutputBinding;\nimport com.microsoft.azure.functions.annotation.AuthorizationLevel;\nimport com.microsoft.azure.functions.annotation.FunctionName;\nimport com.microsoft.azure.functions.annotation.HttpTrigger;\nimport com.microsoft.azure.functions.sql.annotation.SQLOutput;\nimport com.fasterxml.jackson.core.JsonParseException;\nimport com.fasterxml.jackson.databind.JsonMappingException;\nimport com.fasterxml.jackson.databind.ObjectMapper;\n\nimport java.io.IOException;\nimport java.util.Optional;\n\npublic class $className$ {\n /**\n * Visit Visit https://aka.ms/sqlbindingsoutput to learn how to use this output binding\n * \n * These tasks should be completed prior to running:\n * 1. Add com.microsoft.azure.functions:azure-functions-java-library-sql and com.fasterxml.jackson.core:jackson-databind to your project dependencies\n * 2. Add an app setting named \"SqlConnectionString\" containing the connection string to use for the SQL connection\n * 3. Change the bundle name in host.json to \"Microsoft.Azure.Functions.ExtensionBundle\" and the version to \"[4.*, 5.0.0)\"\n */\n @FunctionName(\"$functionName$\")\n public HttpResponseMessage run(\n @HttpTrigger(\n name = \"req\",\n methods = {HttpMethod.POST},\n authLevel = AuthorizationLevel.FUNCTION,\n route = \"\")\n HttpRequestMessage> request,\n @SQLOutput(\n name = \"output\",\n commandText = \"$table$\",\n connectionStringSetting = \"$SqlConnectionString$\")\n OutputBinding output) throws JsonParseException, JsonMappingException, IOException {\n\n String json = request.getBody().get();\n ObjectMapper mapper = new ObjectMapper();\n TodoItem todoItem = mapper.readValue(json, TodoItem.class);\n output.setValue(todoItem);\n\n return request.createResponseBuilder(HttpStatus.OK).header(\"Content-Type\", \"application/json\").body(todoItem).build();\n }\n\n public static class TodoItem {\n public String Id;\n public int Priority;\n public String Description;\n\n public String getId() {\n return Id;\n }\n \n public void setId(String id) {\n Id = id;\n }\n \n public int getPriority() {\n return Priority;\n }\n \n public void setPriority(int priority) {\n Priority = priority;\n }\n \n public String getDescription() {\n return Description;\n }\n \n public void setDescription(String description) {\n Description = description;\n }\n }\n}" + } + }, + { + "id": "SqlInputBinding-Java", + "metadata": { + "name": "SqlInputBinding", + "description": "$SqlInputBinding_description", + "defaultFunctionName": "SqlInputBindingJava", + "language": "Java", + "userPrompt": [ + "object", + "SqlConnectionString" + ] + }, + "bundle": [ + "~4" + ], + "function": { + "disabled": false, + "bindings": [ + { + "type": "sql", + "name": "results", + "direction": "in", + "commandText": "SELECT * FROM [dbo].[table1]", + "commandType": "Text", + "connectionStringSetting": "SqlConnectionString" + } + ] + }, + "files": { + "function.java": "package $packageName$;\n\nimport com.microsoft.azure.functions.HttpMethod;\nimport com.microsoft.azure.functions.HttpRequestMessage;\nimport com.microsoft.azure.functions.HttpResponseMessage;\nimport com.microsoft.azure.functions.HttpStatus;\nimport com.microsoft.azure.functions.annotation.AuthorizationLevel;\nimport com.microsoft.azure.functions.annotation.FunctionName;\nimport com.microsoft.azure.functions.annotation.HttpTrigger;\nimport com.microsoft.azure.functions.sql.annotation.SQLInput;\n\nimport java.util.Optional;\n\npublic class $className$ {\n /**\n * Visit https://aka.ms/sqlbindingsinput to learn how to use this input binding\n * \n * These tasks should be completed prior to running:\n * 1. Add com.microsoft.azure.functions:azure-functions-java-library-sql to your project dependencies\n * 2. Add an app setting named \"SqlConnectionString\" containing the connection string to use for the SQL connection\n * 3. Change the bundle name in host.json to \"Microsoft.Azure.Functions.ExtensionBundle\" and the version to \"[4.*, 5.0.0)\"\n */\n @FunctionName(\"$functionName$\")\n public HttpResponseMessage run(\n @HttpTrigger(\n name = \"req\",\n methods = {HttpMethod.GET},\n authLevel = AuthorizationLevel.FUNCTION,\n route = \"\")\n HttpRequestMessage> request,\n @SQLInput(\n name = \"result\",\n commandText = \"SELECT * FROM $object$\",\n commandType = \"Text\",\n connectionStringSetting = \"$SqlConnectionString$\")\n Object[] result) {\n\n return request.createResponseBuilder(HttpStatus.OK).header(\"Content-Type\", \"application/json\").body(result).build();\n }\n}" } } ] \ No newline at end of file diff --git a/resources/backupTemplates/java/~2/version.txt b/resources/backupTemplates/java/~2/version.txt index 80a81c0e7..e43da41f6 100644 --- a/resources/backupTemplates/java/~2/version.txt +++ b/resources/backupTemplates/java/~2/version.txt @@ -1 +1 @@ -1.22.0 \ No newline at end of file +1.27.0 \ No newline at end of file diff --git a/resources/backupTemplates/java/~3/bindings/bindings.json b/resources/backupTemplates/java/~3/bindings/bindings.json index 84ceb2d52..c8551e752 100644 --- a/resources/backupTemplates/java/~3/bindings/bindings.json +++ b/resources/backupTemplates/java/~3/bindings/bindings.json @@ -474,6 +474,56 @@ "help": "$cosmosDBIn_createLeaseContainerIfNotExists_help" } ] + }, + { + "type": "sql", + "displayName": "$sql_output_displayName", + "direction": "out", + "enabledInTryMode": false, + "settings": [ + { + "name": "table", + "value": "string", + "defaultValue": "[dbo].[table1]", + "required": true, + "label": "$sql_output_table_label", + "help": "$sql_output_table_help" + }, + { + "name": "SqlConnectionString", + "value": "string", + "defaultValue": "", + "required": true, + "resource": "Sql", + "label": "$sql_output_connection_label", + "help": "$sql_output_connection_help" + } + ] + }, + { + "type": "sql", + "displayName": "$sql_input_displayName", + "direction": "in", + "enabledInTryMode": false, + "settings": [ + { + "name": "object", + "value": "string", + "defaultValue": "[dbo].[table1]", + "required": true, + "label": "$sql_input_object_label", + "help": "$sql_input_object_help" + }, + { + "name": "SqlConnectionString", + "value": "string", + "defaultValue": "", + "required": true, + "resource": "Sql", + "label": "$sql_input_connection_label", + "help": "$sql_input_connection_help" + } + ] } ] } \ No newline at end of file diff --git a/resources/backupTemplates/java/~3/resources/Resources.json b/resources/backupTemplates/java/~3/resources/Resources.json index becdee07d..c08e98b36 100644 --- a/resources/backupTemplates/java/~3/resources/Resources.json +++ b/resources/backupTemplates/java/~3/resources/Resources.json @@ -1,6 +1,6 @@ { "en": { - "variables_storageConnStringLabel": "Storage account connection", + "variables_storageConnStringLabel": "Connection string setting", "variables_appSettingsHelp": "The name of the app setting containing your storage account connection string.", "variables_selectConnection": "Click select to choose a connection", "TimerTrigger_description": "A function that will be run on a specified schedule", @@ -10,7 +10,7 @@ "timerTrigger_schedule_errorText": "Invalid Cron Expression. Please consult https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-timer#cron-expressions to learn more.", "QueueTrigger_description": "A function that will be run whenever a message is added to a specified Azure Storage queue", "queueTrigger_displayName": "Azure Queue Storage", - "queueTrigger_queueName_label": "Queue name", + "queueTrigger_queueName_label": "Queue", "queueTrigger_queueName_help": "Name of the queue from which the message will be read", "queueTrigger_queueName_errorText": "Queue name must start and end with a letter or number, and it can contain only lowercase letters, numbers, and the hyphen. The name must be 3 to 63 characters.", "BlobTrigger_description": "A function that will be run whenever a blob is added to a specified container", @@ -24,24 +24,24 @@ "httpTrigger_authLevel_help": "Authorization level controls whether the function requires an API key and which key to use; Function uses a function key; Admin uses your master key. The function and master keys are found in the 'keys' management panel on the portal, when your function is selected. For user-based authentication, go to Function App Settings.", "ServiceBusQueueTrigger_description": "A function that will be run whenever a message is added to a specficied Service Bus queue", "serviceBusTrigger_displayName": "Azure Service Bus", - "serviceBusTrigger_connection_label": "Service Bus connection", + "serviceBusTrigger_connection_label": "Connection string setting", "serviceBusTrigger_connection_help": "The name of the app setting containing your Service Bus connection string. The connection string must have Listen rights.", "serviceBusTrigger_queueName_label": "Queue name", "serviceBusTrigger_queueName_help": "The queue from which the message will be read.", "serviceBusTrigger_queueName_errorText": "Queue name must start and end with a letter or number, and it can contain only letters, numbers, the hyphen, the period, and the underscore. The name must be 1 to 50 characters.", "ServiceBusTopicTrigger_description": "A function that will be run whenever a message is added to the specified Service Bus Topic", - "serviceBusTrigger_topicName_label": "Topic name", + "serviceBusTrigger_topicName_label": "Topic", "serviceBusTrigger_topicName_help": "The name of the topic from which the message will be read.", "serviceBusTrigger_topicName_errorText": "Topic name must start and end with a letter or number, and it can contain only letters, numbers, the hyphen, the period, and the underscore. The name must be 1 to 50 characters.", - "serviceBusTrigger_subscriptionName_label": "Subscription name", + "serviceBusTrigger_subscriptionName_label": "Subscription", "serviceBusTrigger_subscriptionName_help": "Subscription name within the topic to bind to.", "serviceBusTrigger_subscriptionName_errorText": "Subscription name must start and end with a letter or number, and it can contain only letters, numbers, the hyphen, the period, and the underscore. The name must be 1 to 50 characters.", "EventGridTrigger_description": "A function that will be run whenever an event grid receives a new event", "EventHubTrigger_description": "A function that will be run whenever an event hub receives a new event", "eventHubTrigger_displayName": "Azure Event Hubs", - "eventHubTrigger_connection_label": "Event Hub connection", + "eventHubTrigger_connection_label": "Connection string setting", "eventHubTrigger_connection_help": "The name of the app setting containing your Event Hub connection string. The connection string must have Receive permissions.", - "eventHubOut_path_label": "Event Hub name", + "eventHubOut_path_label": "Event Hub", "eventHubTrigger_path_help": "The name of the event hub from which to trigger", "eventHubTrigger_path_errorText": "The event hub name must start and end with a letter or number, and it can contain only letters, numbers, the hyphen, the period, and the underscore. The name must be 1 to 50 characters.", "eventHubTrigger_consumerGroup_label": "Event Hub consumer group", @@ -49,11 +49,11 @@ "eventHubTrigger_consumerGroup_errorText": "The consumer group must start and end with a letter or number, and it can contain only letters, numbers, the hyphen, the period, and the underscore. The $Default group is also allowed. The name must be 1 to 50 characters.", "CosmosDBTrigger_description": "A function that will be run whenever documents change in a document collection", "cosmosDB_trigger_displayName": "Azure Cosmos DB", - "cosmosDBIn_connection_label": "Cosmos DB account connection", + "cosmosDBIn_connection_label": "Connection string setting", "cosmosDBIn_connection_help": "The name of the App Setting containing the connection string to the service that contains the collection to be monitored.", - "cosmosDBIn_databaseName_label": "Database name", + "cosmosDBIn_databaseName_label": "Database", "cosmosDBIn_databaseName_help": "Name of the Cosmos DB database that includes the collection to be monitored.", - "cosmosDBIn_collectionName_label": "Collection name", + "cosmosDBIn_collectionName_label": "Collection", "cosmosDBIn_collectionName_help": "Name of the collection to be monitored.", "cosmosDBIn_leaseCollectionName_label": "Collection name for leases", "cosmosDBIn_leaseCollectionName_help": "Name of the collection to store the leases.", @@ -61,13 +61,13 @@ "cosmosDBIn_createIfNotExists_help": "Checks for existence and automatically creates the leases collection.", "RabbitMQTrigger_description": "A function that will be run whenever a message is added to a specified RabbitMQ queue", "rabbitMqTrigger_displayName": "RabbitMQ", - "rabbitMqIn_connectionStringSetting_label": "Connection string setting name", + "rabbitMqIn_connectionStringSetting_label": "Connection string setting", "rabbitMqIn_connectionStringSetting_help": "The name of the app setting containing your RabbitMQ connection.", - "rabbitMqIn_queueName_label": "Queue name", + "rabbitMqIn_queueName_label": "Queue", "rabbitMqIn_queueName_help": "This is the queue name.", "KafkaTrigger_description": "A function that will be run whenever a message is added to a specified Kafka", "kafka_trigger_displayName": "Kafka", - "kafka_name_label": "Message parameter name", + "kafka_name_label": "Message parameter", "kafka_name_help": "Name used to identify trigger in code", "kafka_name_errorText": "The kafka name must start with a letter, and it can contain only letters and numbers. The name must be 1 to 127 characters.", "kafka_brokerlist_label": "List of Brokers", @@ -86,11 +86,23 @@ "kafka_consumergroup_help": "Consumer Group", "DurableFunctionsOrchestrator_description": "An orchestrator function that invokes activity functions in a sequence.", "DurableFunctionsOrchestrator_displayName": "Durable Functions Orchestrator", - "cosmosDBIn_containerName_label": "Container name", + "cosmosDBIn_containerName_label": "Container", "cosmosDBIn_containerName_help": "Name of the container to be monitored.", "cosmosDBIn_leaseContainerName_label": "Container name for leases", "cosmosDBIn_leaseContainerName_help": "Name of the container to store the leases.", "cosmosDBIn_createLeaseContainerIfNotExists_label": "Create lease container if it does not exist", - "cosmosDBIn_createLeaseContainerIfNotExists_help": "Checks for existence and automatically creates the leases container." + "cosmosDBIn_createLeaseContainerIfNotExists_help": "Checks for existence and automatically creates the leases container.", + "SqlInputBinding_description": "A function that takes a SQL query to run on a provided table or view and returns the output of the query", + "sql_input_displayName": "SQL input binding", + "sql_input_object_label": "Table or View", + "sql_input_object_help": "This is the table or view name for the SQL input binding.", + "sql_input_connection_label": "Connection string setting", + "sql_input_connection_help": "The name of the app setting containing your SQL connection string.", + "SqlOutputBinding_description": "A function that takes a list of rows and upserts them into the user table", + "sql_output_displayName": "SQL output binding", + "sql_output_table_label": "Table", + "sql_output_table_help": "This is the table for the SQL output binding.", + "sql_output_connection_label": "Connection string setting", + "sql_output_connection_help": "The name of the app setting containing your SQL connection string." } } \ No newline at end of file diff --git a/resources/backupTemplates/java/~3/templates/templates.json b/resources/backupTemplates/java/~3/templates/templates.json index bf5fce8a9..665725a9c 100644 --- a/resources/backupTemplates/java/~3/templates/templates.json +++ b/resources/backupTemplates/java/~3/templates/templates.json @@ -200,7 +200,7 @@ ] }, "files": { - "function.java": "package $packageName$;\n\nimport com.microsoft.azure.functions.annotation.*;\nimport com.microsoft.azure.functions.*;\n\n/**\n * Azure Functions with Cosmos DB trigger.\n */\npublic class $className$ {\n /**\n * This function will be invoked when there are inserts or updates in the specified database and collection.\n */\n @FunctionName(\"$functionName$\")\n public void run(\n @CosmosDBTrigger(\n name = \"items\",\n databaseName = \"$databaseName$\",\n collectionName = \"$collectionName$\",\n leaseCollectionName=\"$leaseCollectionName$\",\n connectionStringSetting = \"$connectionStringSetting$\",\n createLeaseCollectionIfNotExists = $createLeaseCollectionIfNotExists$\n )\n Object[] items,\n final ExecutionContext context\n ) {\n context.getLogger().info(\"Java Cosmos DB trigger function executed.\");\n context.getLogger().info(\"Documents count: \" + items.length);\n }\n}\n" + "function.java": "package $packageName$;\n\nimport com.microsoft.azure.functions.annotation.*;\nimport com.microsoft.azure.functions.*;\n\n/**\n * Azure Functions with Cosmos DB trigger.\n * \n * This template uses an outdated version of the Azure Cosmos DB extension. Learn about the new extension at https://aka.ms/cosmos-db-azure-functions-extension-v4\n */\npublic class $className$ {\n /**\n * This function will be invoked when there are inserts or updates in the specified database and collection.\n */\n @FunctionName(\"$functionName$\")\n public void run(\n @CosmosDBTrigger(\n name = \"items\",\n databaseName = \"$databaseName$\",\n collectionName = \"$collectionName$\",\n leaseCollectionName=\"$leaseCollectionName$\",\n connectionStringSetting = \"$connectionStringSetting$\",\n createLeaseCollectionIfNotExists = $createLeaseCollectionIfNotExists$\n )\n Object[] items,\n final ExecutionContext context\n ) {\n context.getLogger().info(\"Java Cosmos DB trigger function executed.\");\n context.getLogger().info(\"Documents count: \" + items.length);\n }\n}\n" } }, { @@ -395,7 +395,70 @@ ] }, "files": { - "function.java": "package $packageName$;\n\nimport com.microsoft.azure.functions.annotation.*;\nimport com.microsoft.azure.functions.*;\nimport java.util.*;\n\nimport com.microsoft.durabletask.*;\nimport com.microsoft.durabletask.azurefunctions.DurableActivityTrigger;\nimport com.microsoft.durabletask.azurefunctions.DurableClientContext;\nimport com.microsoft.durabletask.azurefunctions.DurableClientInput;\nimport com.microsoft.durabletask.azurefunctions.DurableOrchestrationTrigger;\n\n/**\n * Please follow the below steps to run this durable function sample\n * 1. Send an HTTP GET/POST request to endpoint `StartHelloCities` to run a durable function\n * 2. Send request to statusQueryGetUri in `StartHelloCities` response to get the status of durable function\n * For more instructions, please refer https://aka.ms/durable-function-java\n * \n * Please add com.microsoft:durabletask-azure-functions to your project dependencies\n * Please add `\"extensions\": { \"durableTask\": { \"hubName\": \"JavaTestHub\" }}` to your host.json\n */\npublic class $className$ {\n /**\n * This HTTP-triggered function starts the orchestration.\n */\n @FunctionName(\"StartOrchestration\")\n public HttpResponseMessage startOrchestration(\n @HttpTrigger(name = \"req\", methods = {HttpMethod.GET, HttpMethod.POST}, authLevel = AuthorizationLevel.ANONYMOUS) HttpRequestMessage> request,\n @DurableClientInput(name = \"durableContext\") DurableClientContext durableContext,\n final ExecutionContext context) {\n context.getLogger().info(\"Java HTTP trigger processed a request.\");\n\n DurableTaskClient client = durableContext.getClient();\n String instanceId = client.scheduleNewOrchestrationInstance(\"Cities\");\n context.getLogger().info(\"Created new Java orchestration with instance ID = \" + instanceId);\n return durableContext.createCheckStatusResponse(request, instanceId);\n }\n\n /**\n * This is the orchestrator function. The OrchestrationRunner.loadAndRun() static\n * method is used to take the function input and execute the orchestrator logic.\n */\n @FunctionName(\"Cities\")\n public String citiesOrchestrator(\n @DurableOrchestrationTrigger(name = \"taskOrchestrationContext\") TaskOrchestrationContext ctx) {\n String result = \"\";\n result += ctx.callActivity(\"Capitalize\", \"Tokyo\", String.class).await() + \", \";\n result += ctx.callActivity(\"Capitalize\", \"London\", String.class).await() + \", \";\n result += ctx.callActivity(\"Capitalize\", \"Seattle\", String.class).await() + \", \";\n result += ctx.callActivity(\"Capitalize\", \"Austin\", String.class).await();\n return result;\n }\n\n /**\n * This is the activity function that gets invoked by the orchestration.\n */\n @FunctionName(\"Capitalize\")\n public String capitalize(\n @DurableActivityTrigger(name = \"name\") String name,\n final ExecutionContext context) {\n context.getLogger().info(\"Capitalizing: \" + name);\n return name.toUpperCase();\n }\n}" + "function.java": "package $packageName$;\n\nimport com.microsoft.azure.functions.annotation.*;\nimport com.microsoft.azure.functions.*;\nimport java.util.*;\n\nimport com.microsoft.durabletask.*;\nimport com.microsoft.durabletask.azurefunctions.DurableActivityTrigger;\nimport com.microsoft.durabletask.azurefunctions.DurableClientContext;\nimport com.microsoft.durabletask.azurefunctions.DurableClientInput;\nimport com.microsoft.durabletask.azurefunctions.DurableOrchestrationTrigger;\n\n/**\n * Please follow the below steps to run this durable function sample\n * 1. Send an HTTP GET/POST request to endpoint `StartHelloCities` to run a durable function\n * 2. Send request to statusQueryGetUri in `StartHelloCities` response to get the status of durable function\n * For more instructions, please refer https://aka.ms/durable-function-java\n * \n * Please add com.microsoft:durabletask-azure-functions to your project dependencies\n * Please add `\"extensions\": { \"durableTask\": { \"hubName\": \"JavaTestHub\" }}` to your host.json\n */\npublic class $className$ {\n /**\n * This HTTP-triggered function starts the orchestration.\n */\n @FunctionName(\"StartOrchestration\")\n public HttpResponseMessage startOrchestration(\n @HttpTrigger(name = \"req\", methods = {HttpMethod.GET, HttpMethod.POST}, authLevel = AuthorizationLevel.ANONYMOUS) HttpRequestMessage> request,\n @DurableClientInput(name = \"durableContext\") DurableClientContext durableContext,\n final ExecutionContext context) {\n context.getLogger().info(\"Java HTTP trigger processed a request.\");\n\n DurableTaskClient client = durableContext.getClient();\n String instanceId = client.scheduleNewOrchestrationInstance(\"Cities\");\n context.getLogger().info(\"Created new Java orchestration with instance ID = \" + instanceId);\n return durableContext.createCheckStatusResponse(request, instanceId);\n }\n\n /**\n * This is the orchestrator function, which can schedule activity functions, create durable timers,\n * or wait for external events in a way that's completely fault-tolerant.\n */\n @FunctionName(\"Cities\")\n public String citiesOrchestrator(\n @DurableOrchestrationTrigger(name = \"ctx\") TaskOrchestrationContext ctx) {\n String result = \"\";\n result += ctx.callActivity(\"Capitalize\", \"Tokyo\", String.class).await() + \", \";\n result += ctx.callActivity(\"Capitalize\", \"London\", String.class).await() + \", \";\n result += ctx.callActivity(\"Capitalize\", \"Seattle\", String.class).await() + \", \";\n result += ctx.callActivity(\"Capitalize\", \"Austin\", String.class).await();\n return result;\n }\n\n /**\n * This is the activity function that gets invoked by the orchestration.\n */\n @FunctionName(\"Capitalize\")\n public String capitalize(\n @DurableActivityTrigger(name = \"name\") String name,\n final ExecutionContext context) {\n context.getLogger().info(\"Capitalizing: \" + name);\n return name.toUpperCase();\n }\n}" + } + }, + { + "id": "SqlOutputBinding-Java", + "metadata": { + "name": "SqlOutputBinding", + "description": "$SqlOutputBinding_description", + "defaultFunctionName": "SqlOutputBindingJava", + "language": "Java", + "userPrompt": [ + "table", + "SqlConnectionString" + ] + }, + "bundle": [ + "~4" + ], + "function": { + "disabled": false, + "bindings": [ + { + "type": "sql", + "name": "items", + "direction": "out", + "commandText": "[dbo].[table1]", + "connectionStringSetting": "SqlConnectionString" + } + ] + }, + "files": { + "function.java": "package $packageName$;\n\nimport com.microsoft.azure.functions.HttpMethod;\nimport com.microsoft.azure.functions.HttpRequestMessage;\nimport com.microsoft.azure.functions.HttpResponseMessage;\nimport com.microsoft.azure.functions.HttpStatus;\nimport com.microsoft.azure.functions.OutputBinding;\nimport com.microsoft.azure.functions.annotation.AuthorizationLevel;\nimport com.microsoft.azure.functions.annotation.FunctionName;\nimport com.microsoft.azure.functions.annotation.HttpTrigger;\nimport com.microsoft.azure.functions.sql.annotation.SQLOutput;\nimport com.fasterxml.jackson.core.JsonParseException;\nimport com.fasterxml.jackson.databind.JsonMappingException;\nimport com.fasterxml.jackson.databind.ObjectMapper;\n\nimport java.io.IOException;\nimport java.util.Optional;\n\npublic class $className$ {\n /**\n * Visit Visit https://aka.ms/sqlbindingsoutput to learn how to use this output binding\n * \n * These tasks should be completed prior to running:\n * 1. Add com.microsoft.azure.functions:azure-functions-java-library-sql and com.fasterxml.jackson.core:jackson-databind to your project dependencies\n * 2. Add an app setting named \"SqlConnectionString\" containing the connection string to use for the SQL connection\n * 3. Change the bundle name in host.json to \"Microsoft.Azure.Functions.ExtensionBundle\" and the version to \"[4.*, 5.0.0)\"\n */\n @FunctionName(\"$functionName$\")\n public HttpResponseMessage run(\n @HttpTrigger(\n name = \"req\",\n methods = {HttpMethod.POST},\n authLevel = AuthorizationLevel.FUNCTION,\n route = \"\")\n HttpRequestMessage> request,\n @SQLOutput(\n name = \"output\",\n commandText = \"$table$\",\n connectionStringSetting = \"$SqlConnectionString$\")\n OutputBinding output) throws JsonParseException, JsonMappingException, IOException {\n\n String json = request.getBody().get();\n ObjectMapper mapper = new ObjectMapper();\n TodoItem todoItem = mapper.readValue(json, TodoItem.class);\n output.setValue(todoItem);\n\n return request.createResponseBuilder(HttpStatus.OK).header(\"Content-Type\", \"application/json\").body(todoItem).build();\n }\n\n public static class TodoItem {\n public String Id;\n public int Priority;\n public String Description;\n\n public String getId() {\n return Id;\n }\n \n public void setId(String id) {\n Id = id;\n }\n \n public int getPriority() {\n return Priority;\n }\n \n public void setPriority(int priority) {\n Priority = priority;\n }\n \n public String getDescription() {\n return Description;\n }\n \n public void setDescription(String description) {\n Description = description;\n }\n }\n}" + } + }, + { + "id": "SqlInputBinding-Java", + "metadata": { + "name": "SqlInputBinding", + "description": "$SqlInputBinding_description", + "defaultFunctionName": "SqlInputBindingJava", + "language": "Java", + "userPrompt": [ + "object", + "SqlConnectionString" + ] + }, + "bundle": [ + "~4" + ], + "function": { + "disabled": false, + "bindings": [ + { + "type": "sql", + "name": "results", + "direction": "in", + "commandText": "SELECT * FROM [dbo].[table1]", + "commandType": "Text", + "connectionStringSetting": "SqlConnectionString" + } + ] + }, + "files": { + "function.java": "package $packageName$;\n\nimport com.microsoft.azure.functions.HttpMethod;\nimport com.microsoft.azure.functions.HttpRequestMessage;\nimport com.microsoft.azure.functions.HttpResponseMessage;\nimport com.microsoft.azure.functions.HttpStatus;\nimport com.microsoft.azure.functions.annotation.AuthorizationLevel;\nimport com.microsoft.azure.functions.annotation.FunctionName;\nimport com.microsoft.azure.functions.annotation.HttpTrigger;\nimport com.microsoft.azure.functions.sql.annotation.SQLInput;\n\nimport java.util.Optional;\n\npublic class $className$ {\n /**\n * Visit https://aka.ms/sqlbindingsinput to learn how to use this input binding\n * \n * These tasks should be completed prior to running:\n * 1. Add com.microsoft.azure.functions:azure-functions-java-library-sql to your project dependencies\n * 2. Add an app setting named \"SqlConnectionString\" containing the connection string to use for the SQL connection\n * 3. Change the bundle name in host.json to \"Microsoft.Azure.Functions.ExtensionBundle\" and the version to \"[4.*, 5.0.0)\"\n */\n @FunctionName(\"$functionName$\")\n public HttpResponseMessage run(\n @HttpTrigger(\n name = \"req\",\n methods = {HttpMethod.GET},\n authLevel = AuthorizationLevel.FUNCTION,\n route = \"\")\n HttpRequestMessage> request,\n @SQLInput(\n name = \"result\",\n commandText = \"SELECT * FROM $object$\",\n commandType = \"Text\",\n connectionStringSetting = \"$SqlConnectionString$\")\n Object[] result) {\n\n return request.createResponseBuilder(HttpStatus.OK).header(\"Content-Type\", \"application/json\").body(result).build();\n }\n}" } } ] \ No newline at end of file diff --git a/resources/backupTemplates/java/~3/version.txt b/resources/backupTemplates/java/~3/version.txt index 80a81c0e7..e43da41f6 100644 --- a/resources/backupTemplates/java/~3/version.txt +++ b/resources/backupTemplates/java/~3/version.txt @@ -1 +1 @@ -1.22.0 \ No newline at end of file +1.27.0 \ No newline at end of file diff --git a/resources/backupTemplates/java/~4/bindings/bindings.json b/resources/backupTemplates/java/~4/bindings/bindings.json index 84ceb2d52..c8551e752 100644 --- a/resources/backupTemplates/java/~4/bindings/bindings.json +++ b/resources/backupTemplates/java/~4/bindings/bindings.json @@ -474,6 +474,56 @@ "help": "$cosmosDBIn_createLeaseContainerIfNotExists_help" } ] + }, + { + "type": "sql", + "displayName": "$sql_output_displayName", + "direction": "out", + "enabledInTryMode": false, + "settings": [ + { + "name": "table", + "value": "string", + "defaultValue": "[dbo].[table1]", + "required": true, + "label": "$sql_output_table_label", + "help": "$sql_output_table_help" + }, + { + "name": "SqlConnectionString", + "value": "string", + "defaultValue": "", + "required": true, + "resource": "Sql", + "label": "$sql_output_connection_label", + "help": "$sql_output_connection_help" + } + ] + }, + { + "type": "sql", + "displayName": "$sql_input_displayName", + "direction": "in", + "enabledInTryMode": false, + "settings": [ + { + "name": "object", + "value": "string", + "defaultValue": "[dbo].[table1]", + "required": true, + "label": "$sql_input_object_label", + "help": "$sql_input_object_help" + }, + { + "name": "SqlConnectionString", + "value": "string", + "defaultValue": "", + "required": true, + "resource": "Sql", + "label": "$sql_input_connection_label", + "help": "$sql_input_connection_help" + } + ] } ] } \ No newline at end of file diff --git a/resources/backupTemplates/java/~4/resources/Resources.json b/resources/backupTemplates/java/~4/resources/Resources.json index becdee07d..c08e98b36 100644 --- a/resources/backupTemplates/java/~4/resources/Resources.json +++ b/resources/backupTemplates/java/~4/resources/Resources.json @@ -1,6 +1,6 @@ { "en": { - "variables_storageConnStringLabel": "Storage account connection", + "variables_storageConnStringLabel": "Connection string setting", "variables_appSettingsHelp": "The name of the app setting containing your storage account connection string.", "variables_selectConnection": "Click select to choose a connection", "TimerTrigger_description": "A function that will be run on a specified schedule", @@ -10,7 +10,7 @@ "timerTrigger_schedule_errorText": "Invalid Cron Expression. Please consult https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-timer#cron-expressions to learn more.", "QueueTrigger_description": "A function that will be run whenever a message is added to a specified Azure Storage queue", "queueTrigger_displayName": "Azure Queue Storage", - "queueTrigger_queueName_label": "Queue name", + "queueTrigger_queueName_label": "Queue", "queueTrigger_queueName_help": "Name of the queue from which the message will be read", "queueTrigger_queueName_errorText": "Queue name must start and end with a letter or number, and it can contain only lowercase letters, numbers, and the hyphen. The name must be 3 to 63 characters.", "BlobTrigger_description": "A function that will be run whenever a blob is added to a specified container", @@ -24,24 +24,24 @@ "httpTrigger_authLevel_help": "Authorization level controls whether the function requires an API key and which key to use; Function uses a function key; Admin uses your master key. The function and master keys are found in the 'keys' management panel on the portal, when your function is selected. For user-based authentication, go to Function App Settings.", "ServiceBusQueueTrigger_description": "A function that will be run whenever a message is added to a specficied Service Bus queue", "serviceBusTrigger_displayName": "Azure Service Bus", - "serviceBusTrigger_connection_label": "Service Bus connection", + "serviceBusTrigger_connection_label": "Connection string setting", "serviceBusTrigger_connection_help": "The name of the app setting containing your Service Bus connection string. The connection string must have Listen rights.", "serviceBusTrigger_queueName_label": "Queue name", "serviceBusTrigger_queueName_help": "The queue from which the message will be read.", "serviceBusTrigger_queueName_errorText": "Queue name must start and end with a letter or number, and it can contain only letters, numbers, the hyphen, the period, and the underscore. The name must be 1 to 50 characters.", "ServiceBusTopicTrigger_description": "A function that will be run whenever a message is added to the specified Service Bus Topic", - "serviceBusTrigger_topicName_label": "Topic name", + "serviceBusTrigger_topicName_label": "Topic", "serviceBusTrigger_topicName_help": "The name of the topic from which the message will be read.", "serviceBusTrigger_topicName_errorText": "Topic name must start and end with a letter or number, and it can contain only letters, numbers, the hyphen, the period, and the underscore. The name must be 1 to 50 characters.", - "serviceBusTrigger_subscriptionName_label": "Subscription name", + "serviceBusTrigger_subscriptionName_label": "Subscription", "serviceBusTrigger_subscriptionName_help": "Subscription name within the topic to bind to.", "serviceBusTrigger_subscriptionName_errorText": "Subscription name must start and end with a letter or number, and it can contain only letters, numbers, the hyphen, the period, and the underscore. The name must be 1 to 50 characters.", "EventGridTrigger_description": "A function that will be run whenever an event grid receives a new event", "EventHubTrigger_description": "A function that will be run whenever an event hub receives a new event", "eventHubTrigger_displayName": "Azure Event Hubs", - "eventHubTrigger_connection_label": "Event Hub connection", + "eventHubTrigger_connection_label": "Connection string setting", "eventHubTrigger_connection_help": "The name of the app setting containing your Event Hub connection string. The connection string must have Receive permissions.", - "eventHubOut_path_label": "Event Hub name", + "eventHubOut_path_label": "Event Hub", "eventHubTrigger_path_help": "The name of the event hub from which to trigger", "eventHubTrigger_path_errorText": "The event hub name must start and end with a letter or number, and it can contain only letters, numbers, the hyphen, the period, and the underscore. The name must be 1 to 50 characters.", "eventHubTrigger_consumerGroup_label": "Event Hub consumer group", @@ -49,11 +49,11 @@ "eventHubTrigger_consumerGroup_errorText": "The consumer group must start and end with a letter or number, and it can contain only letters, numbers, the hyphen, the period, and the underscore. The $Default group is also allowed. The name must be 1 to 50 characters.", "CosmosDBTrigger_description": "A function that will be run whenever documents change in a document collection", "cosmosDB_trigger_displayName": "Azure Cosmos DB", - "cosmosDBIn_connection_label": "Cosmos DB account connection", + "cosmosDBIn_connection_label": "Connection string setting", "cosmosDBIn_connection_help": "The name of the App Setting containing the connection string to the service that contains the collection to be monitored.", - "cosmosDBIn_databaseName_label": "Database name", + "cosmosDBIn_databaseName_label": "Database", "cosmosDBIn_databaseName_help": "Name of the Cosmos DB database that includes the collection to be monitored.", - "cosmosDBIn_collectionName_label": "Collection name", + "cosmosDBIn_collectionName_label": "Collection", "cosmosDBIn_collectionName_help": "Name of the collection to be monitored.", "cosmosDBIn_leaseCollectionName_label": "Collection name for leases", "cosmosDBIn_leaseCollectionName_help": "Name of the collection to store the leases.", @@ -61,13 +61,13 @@ "cosmosDBIn_createIfNotExists_help": "Checks for existence and automatically creates the leases collection.", "RabbitMQTrigger_description": "A function that will be run whenever a message is added to a specified RabbitMQ queue", "rabbitMqTrigger_displayName": "RabbitMQ", - "rabbitMqIn_connectionStringSetting_label": "Connection string setting name", + "rabbitMqIn_connectionStringSetting_label": "Connection string setting", "rabbitMqIn_connectionStringSetting_help": "The name of the app setting containing your RabbitMQ connection.", - "rabbitMqIn_queueName_label": "Queue name", + "rabbitMqIn_queueName_label": "Queue", "rabbitMqIn_queueName_help": "This is the queue name.", "KafkaTrigger_description": "A function that will be run whenever a message is added to a specified Kafka", "kafka_trigger_displayName": "Kafka", - "kafka_name_label": "Message parameter name", + "kafka_name_label": "Message parameter", "kafka_name_help": "Name used to identify trigger in code", "kafka_name_errorText": "The kafka name must start with a letter, and it can contain only letters and numbers. The name must be 1 to 127 characters.", "kafka_brokerlist_label": "List of Brokers", @@ -86,11 +86,23 @@ "kafka_consumergroup_help": "Consumer Group", "DurableFunctionsOrchestrator_description": "An orchestrator function that invokes activity functions in a sequence.", "DurableFunctionsOrchestrator_displayName": "Durable Functions Orchestrator", - "cosmosDBIn_containerName_label": "Container name", + "cosmosDBIn_containerName_label": "Container", "cosmosDBIn_containerName_help": "Name of the container to be monitored.", "cosmosDBIn_leaseContainerName_label": "Container name for leases", "cosmosDBIn_leaseContainerName_help": "Name of the container to store the leases.", "cosmosDBIn_createLeaseContainerIfNotExists_label": "Create lease container if it does not exist", - "cosmosDBIn_createLeaseContainerIfNotExists_help": "Checks for existence and automatically creates the leases container." + "cosmosDBIn_createLeaseContainerIfNotExists_help": "Checks for existence and automatically creates the leases container.", + "SqlInputBinding_description": "A function that takes a SQL query to run on a provided table or view and returns the output of the query", + "sql_input_displayName": "SQL input binding", + "sql_input_object_label": "Table or View", + "sql_input_object_help": "This is the table or view name for the SQL input binding.", + "sql_input_connection_label": "Connection string setting", + "sql_input_connection_help": "The name of the app setting containing your SQL connection string.", + "SqlOutputBinding_description": "A function that takes a list of rows and upserts them into the user table", + "sql_output_displayName": "SQL output binding", + "sql_output_table_label": "Table", + "sql_output_table_help": "This is the table for the SQL output binding.", + "sql_output_connection_label": "Connection string setting", + "sql_output_connection_help": "The name of the app setting containing your SQL connection string." } } \ No newline at end of file diff --git a/resources/backupTemplates/java/~4/templates/templates.json b/resources/backupTemplates/java/~4/templates/templates.json index bf5fce8a9..665725a9c 100644 --- a/resources/backupTemplates/java/~4/templates/templates.json +++ b/resources/backupTemplates/java/~4/templates/templates.json @@ -200,7 +200,7 @@ ] }, "files": { - "function.java": "package $packageName$;\n\nimport com.microsoft.azure.functions.annotation.*;\nimport com.microsoft.azure.functions.*;\n\n/**\n * Azure Functions with Cosmos DB trigger.\n */\npublic class $className$ {\n /**\n * This function will be invoked when there are inserts or updates in the specified database and collection.\n */\n @FunctionName(\"$functionName$\")\n public void run(\n @CosmosDBTrigger(\n name = \"items\",\n databaseName = \"$databaseName$\",\n collectionName = \"$collectionName$\",\n leaseCollectionName=\"$leaseCollectionName$\",\n connectionStringSetting = \"$connectionStringSetting$\",\n createLeaseCollectionIfNotExists = $createLeaseCollectionIfNotExists$\n )\n Object[] items,\n final ExecutionContext context\n ) {\n context.getLogger().info(\"Java Cosmos DB trigger function executed.\");\n context.getLogger().info(\"Documents count: \" + items.length);\n }\n}\n" + "function.java": "package $packageName$;\n\nimport com.microsoft.azure.functions.annotation.*;\nimport com.microsoft.azure.functions.*;\n\n/**\n * Azure Functions with Cosmos DB trigger.\n * \n * This template uses an outdated version of the Azure Cosmos DB extension. Learn about the new extension at https://aka.ms/cosmos-db-azure-functions-extension-v4\n */\npublic class $className$ {\n /**\n * This function will be invoked when there are inserts or updates in the specified database and collection.\n */\n @FunctionName(\"$functionName$\")\n public void run(\n @CosmosDBTrigger(\n name = \"items\",\n databaseName = \"$databaseName$\",\n collectionName = \"$collectionName$\",\n leaseCollectionName=\"$leaseCollectionName$\",\n connectionStringSetting = \"$connectionStringSetting$\",\n createLeaseCollectionIfNotExists = $createLeaseCollectionIfNotExists$\n )\n Object[] items,\n final ExecutionContext context\n ) {\n context.getLogger().info(\"Java Cosmos DB trigger function executed.\");\n context.getLogger().info(\"Documents count: \" + items.length);\n }\n}\n" } }, { @@ -395,7 +395,70 @@ ] }, "files": { - "function.java": "package $packageName$;\n\nimport com.microsoft.azure.functions.annotation.*;\nimport com.microsoft.azure.functions.*;\nimport java.util.*;\n\nimport com.microsoft.durabletask.*;\nimport com.microsoft.durabletask.azurefunctions.DurableActivityTrigger;\nimport com.microsoft.durabletask.azurefunctions.DurableClientContext;\nimport com.microsoft.durabletask.azurefunctions.DurableClientInput;\nimport com.microsoft.durabletask.azurefunctions.DurableOrchestrationTrigger;\n\n/**\n * Please follow the below steps to run this durable function sample\n * 1. Send an HTTP GET/POST request to endpoint `StartHelloCities` to run a durable function\n * 2. Send request to statusQueryGetUri in `StartHelloCities` response to get the status of durable function\n * For more instructions, please refer https://aka.ms/durable-function-java\n * \n * Please add com.microsoft:durabletask-azure-functions to your project dependencies\n * Please add `\"extensions\": { \"durableTask\": { \"hubName\": \"JavaTestHub\" }}` to your host.json\n */\npublic class $className$ {\n /**\n * This HTTP-triggered function starts the orchestration.\n */\n @FunctionName(\"StartOrchestration\")\n public HttpResponseMessage startOrchestration(\n @HttpTrigger(name = \"req\", methods = {HttpMethod.GET, HttpMethod.POST}, authLevel = AuthorizationLevel.ANONYMOUS) HttpRequestMessage> request,\n @DurableClientInput(name = \"durableContext\") DurableClientContext durableContext,\n final ExecutionContext context) {\n context.getLogger().info(\"Java HTTP trigger processed a request.\");\n\n DurableTaskClient client = durableContext.getClient();\n String instanceId = client.scheduleNewOrchestrationInstance(\"Cities\");\n context.getLogger().info(\"Created new Java orchestration with instance ID = \" + instanceId);\n return durableContext.createCheckStatusResponse(request, instanceId);\n }\n\n /**\n * This is the orchestrator function. The OrchestrationRunner.loadAndRun() static\n * method is used to take the function input and execute the orchestrator logic.\n */\n @FunctionName(\"Cities\")\n public String citiesOrchestrator(\n @DurableOrchestrationTrigger(name = \"taskOrchestrationContext\") TaskOrchestrationContext ctx) {\n String result = \"\";\n result += ctx.callActivity(\"Capitalize\", \"Tokyo\", String.class).await() + \", \";\n result += ctx.callActivity(\"Capitalize\", \"London\", String.class).await() + \", \";\n result += ctx.callActivity(\"Capitalize\", \"Seattle\", String.class).await() + \", \";\n result += ctx.callActivity(\"Capitalize\", \"Austin\", String.class).await();\n return result;\n }\n\n /**\n * This is the activity function that gets invoked by the orchestration.\n */\n @FunctionName(\"Capitalize\")\n public String capitalize(\n @DurableActivityTrigger(name = \"name\") String name,\n final ExecutionContext context) {\n context.getLogger().info(\"Capitalizing: \" + name);\n return name.toUpperCase();\n }\n}" + "function.java": "package $packageName$;\n\nimport com.microsoft.azure.functions.annotation.*;\nimport com.microsoft.azure.functions.*;\nimport java.util.*;\n\nimport com.microsoft.durabletask.*;\nimport com.microsoft.durabletask.azurefunctions.DurableActivityTrigger;\nimport com.microsoft.durabletask.azurefunctions.DurableClientContext;\nimport com.microsoft.durabletask.azurefunctions.DurableClientInput;\nimport com.microsoft.durabletask.azurefunctions.DurableOrchestrationTrigger;\n\n/**\n * Please follow the below steps to run this durable function sample\n * 1. Send an HTTP GET/POST request to endpoint `StartHelloCities` to run a durable function\n * 2. Send request to statusQueryGetUri in `StartHelloCities` response to get the status of durable function\n * For more instructions, please refer https://aka.ms/durable-function-java\n * \n * Please add com.microsoft:durabletask-azure-functions to your project dependencies\n * Please add `\"extensions\": { \"durableTask\": { \"hubName\": \"JavaTestHub\" }}` to your host.json\n */\npublic class $className$ {\n /**\n * This HTTP-triggered function starts the orchestration.\n */\n @FunctionName(\"StartOrchestration\")\n public HttpResponseMessage startOrchestration(\n @HttpTrigger(name = \"req\", methods = {HttpMethod.GET, HttpMethod.POST}, authLevel = AuthorizationLevel.ANONYMOUS) HttpRequestMessage> request,\n @DurableClientInput(name = \"durableContext\") DurableClientContext durableContext,\n final ExecutionContext context) {\n context.getLogger().info(\"Java HTTP trigger processed a request.\");\n\n DurableTaskClient client = durableContext.getClient();\n String instanceId = client.scheduleNewOrchestrationInstance(\"Cities\");\n context.getLogger().info(\"Created new Java orchestration with instance ID = \" + instanceId);\n return durableContext.createCheckStatusResponse(request, instanceId);\n }\n\n /**\n * This is the orchestrator function, which can schedule activity functions, create durable timers,\n * or wait for external events in a way that's completely fault-tolerant.\n */\n @FunctionName(\"Cities\")\n public String citiesOrchestrator(\n @DurableOrchestrationTrigger(name = \"ctx\") TaskOrchestrationContext ctx) {\n String result = \"\";\n result += ctx.callActivity(\"Capitalize\", \"Tokyo\", String.class).await() + \", \";\n result += ctx.callActivity(\"Capitalize\", \"London\", String.class).await() + \", \";\n result += ctx.callActivity(\"Capitalize\", \"Seattle\", String.class).await() + \", \";\n result += ctx.callActivity(\"Capitalize\", \"Austin\", String.class).await();\n return result;\n }\n\n /**\n * This is the activity function that gets invoked by the orchestration.\n */\n @FunctionName(\"Capitalize\")\n public String capitalize(\n @DurableActivityTrigger(name = \"name\") String name,\n final ExecutionContext context) {\n context.getLogger().info(\"Capitalizing: \" + name);\n return name.toUpperCase();\n }\n}" + } + }, + { + "id": "SqlOutputBinding-Java", + "metadata": { + "name": "SqlOutputBinding", + "description": "$SqlOutputBinding_description", + "defaultFunctionName": "SqlOutputBindingJava", + "language": "Java", + "userPrompt": [ + "table", + "SqlConnectionString" + ] + }, + "bundle": [ + "~4" + ], + "function": { + "disabled": false, + "bindings": [ + { + "type": "sql", + "name": "items", + "direction": "out", + "commandText": "[dbo].[table1]", + "connectionStringSetting": "SqlConnectionString" + } + ] + }, + "files": { + "function.java": "package $packageName$;\n\nimport com.microsoft.azure.functions.HttpMethod;\nimport com.microsoft.azure.functions.HttpRequestMessage;\nimport com.microsoft.azure.functions.HttpResponseMessage;\nimport com.microsoft.azure.functions.HttpStatus;\nimport com.microsoft.azure.functions.OutputBinding;\nimport com.microsoft.azure.functions.annotation.AuthorizationLevel;\nimport com.microsoft.azure.functions.annotation.FunctionName;\nimport com.microsoft.azure.functions.annotation.HttpTrigger;\nimport com.microsoft.azure.functions.sql.annotation.SQLOutput;\nimport com.fasterxml.jackson.core.JsonParseException;\nimport com.fasterxml.jackson.databind.JsonMappingException;\nimport com.fasterxml.jackson.databind.ObjectMapper;\n\nimport java.io.IOException;\nimport java.util.Optional;\n\npublic class $className$ {\n /**\n * Visit Visit https://aka.ms/sqlbindingsoutput to learn how to use this output binding\n * \n * These tasks should be completed prior to running:\n * 1. Add com.microsoft.azure.functions:azure-functions-java-library-sql and com.fasterxml.jackson.core:jackson-databind to your project dependencies\n * 2. Add an app setting named \"SqlConnectionString\" containing the connection string to use for the SQL connection\n * 3. Change the bundle name in host.json to \"Microsoft.Azure.Functions.ExtensionBundle\" and the version to \"[4.*, 5.0.0)\"\n */\n @FunctionName(\"$functionName$\")\n public HttpResponseMessage run(\n @HttpTrigger(\n name = \"req\",\n methods = {HttpMethod.POST},\n authLevel = AuthorizationLevel.FUNCTION,\n route = \"\")\n HttpRequestMessage> request,\n @SQLOutput(\n name = \"output\",\n commandText = \"$table$\",\n connectionStringSetting = \"$SqlConnectionString$\")\n OutputBinding output) throws JsonParseException, JsonMappingException, IOException {\n\n String json = request.getBody().get();\n ObjectMapper mapper = new ObjectMapper();\n TodoItem todoItem = mapper.readValue(json, TodoItem.class);\n output.setValue(todoItem);\n\n return request.createResponseBuilder(HttpStatus.OK).header(\"Content-Type\", \"application/json\").body(todoItem).build();\n }\n\n public static class TodoItem {\n public String Id;\n public int Priority;\n public String Description;\n\n public String getId() {\n return Id;\n }\n \n public void setId(String id) {\n Id = id;\n }\n \n public int getPriority() {\n return Priority;\n }\n \n public void setPriority(int priority) {\n Priority = priority;\n }\n \n public String getDescription() {\n return Description;\n }\n \n public void setDescription(String description) {\n Description = description;\n }\n }\n}" + } + }, + { + "id": "SqlInputBinding-Java", + "metadata": { + "name": "SqlInputBinding", + "description": "$SqlInputBinding_description", + "defaultFunctionName": "SqlInputBindingJava", + "language": "Java", + "userPrompt": [ + "object", + "SqlConnectionString" + ] + }, + "bundle": [ + "~4" + ], + "function": { + "disabled": false, + "bindings": [ + { + "type": "sql", + "name": "results", + "direction": "in", + "commandText": "SELECT * FROM [dbo].[table1]", + "commandType": "Text", + "connectionStringSetting": "SqlConnectionString" + } + ] + }, + "files": { + "function.java": "package $packageName$;\n\nimport com.microsoft.azure.functions.HttpMethod;\nimport com.microsoft.azure.functions.HttpRequestMessage;\nimport com.microsoft.azure.functions.HttpResponseMessage;\nimport com.microsoft.azure.functions.HttpStatus;\nimport com.microsoft.azure.functions.annotation.AuthorizationLevel;\nimport com.microsoft.azure.functions.annotation.FunctionName;\nimport com.microsoft.azure.functions.annotation.HttpTrigger;\nimport com.microsoft.azure.functions.sql.annotation.SQLInput;\n\nimport java.util.Optional;\n\npublic class $className$ {\n /**\n * Visit https://aka.ms/sqlbindingsinput to learn how to use this input binding\n * \n * These tasks should be completed prior to running:\n * 1. Add com.microsoft.azure.functions:azure-functions-java-library-sql to your project dependencies\n * 2. Add an app setting named \"SqlConnectionString\" containing the connection string to use for the SQL connection\n * 3. Change the bundle name in host.json to \"Microsoft.Azure.Functions.ExtensionBundle\" and the version to \"[4.*, 5.0.0)\"\n */\n @FunctionName(\"$functionName$\")\n public HttpResponseMessage run(\n @HttpTrigger(\n name = \"req\",\n methods = {HttpMethod.GET},\n authLevel = AuthorizationLevel.FUNCTION,\n route = \"\")\n HttpRequestMessage> request,\n @SQLInput(\n name = \"result\",\n commandText = \"SELECT * FROM $object$\",\n commandType = \"Text\",\n connectionStringSetting = \"$SqlConnectionString$\")\n Object[] result) {\n\n return request.createResponseBuilder(HttpStatus.OK).header(\"Content-Type\", \"application/json\").body(result).build();\n }\n}" } } ] \ No newline at end of file diff --git a/resources/backupTemplates/java/~4/version.txt b/resources/backupTemplates/java/~4/version.txt index 80a81c0e7..e43da41f6 100644 --- a/resources/backupTemplates/java/~4/version.txt +++ b/resources/backupTemplates/java/~4/version.txt @@ -1 +1 @@ -1.22.0 \ No newline at end of file +1.27.0 \ No newline at end of file diff --git a/resources/backupTemplates/script/~4/version.txt b/resources/backupTemplates/script/~4/version.txt index 7db87d026..943251124 100644 --- a/resources/backupTemplates/script/~4/version.txt +++ b/resources/backupTemplates/script/~4/version.txt @@ -1 +1 @@ -4.32.0 \ No newline at end of file +4.50.0 \ No newline at end of file