Step
The resource representation of a rollout step. API Version: 2019-11-01-preview.
Example Usage
Create health check step
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var step = new AzureNative.DeploymentManager.Step("step", new()
{
Location = "centralus",
Properties = new AzureNative.DeploymentManager.Inputs.HealthCheckStepPropertiesArgs
{
Attributes = new AzureNative.DeploymentManager.Inputs.RestHealthCheckStepAttributesArgs
{
HealthChecks = new[]
{
new AzureNative.DeploymentManager.Inputs.RestHealthCheckArgs
{
Name = "appHealth",
Request = new AzureNative.DeploymentManager.Inputs.RestRequestArgs
{
Authentication = new AzureNative.DeploymentManager.Inputs.ApiKeyAuthenticationArgs
{
In = AzureNative.DeploymentManager.RestAuthLocation.Query,
Name = "Code",
Type = "ApiKey",
Value = "NBCapiMOBQyAAbCkeytoPadnvO0eGHmidwFz5rXpappznKp3Jt7LLg==",
},
Method = AzureNative.DeploymentManager.RestRequestMethod.GET,
Uri = "https://resthealth.healthservice.com/api/applications/contosoApp/healthStatus",
},
Response = new AzureNative.DeploymentManager.Inputs.RestResponseArgs
{
Regex = new AzureNative.DeploymentManager.Inputs.RestResponseRegexArgs
{
MatchQuantifier = AzureNative.DeploymentManager.RestMatchQuantifier.All,
Matches = new[]
{
"(?i)Contoso-App",
@"(?i)""health_status"":((.|
)*)""(green|yellow)""",
"(?mi)^(\"application_host\": 94781052)$",
},
},
SuccessStatusCodes = new[]
{
"OK",
},
},
},
new AzureNative.DeploymentManager.Inputs.RestHealthCheckArgs
{
Name = "serviceHealth",
Request = new AzureNative.DeploymentManager.Inputs.RestRequestArgs
{
Authentication = new AzureNative.DeploymentManager.Inputs.ApiKeyAuthenticationArgs
{
In = AzureNative.DeploymentManager.RestAuthLocation.Header,
Name = "code",
Type = "ApiKey",
Value = "NBCapiMOBQyAAbCkeytoPadnvO0eGHmidwFz5rXpappznKp3Jt7LLg==",
},
Method = AzureNative.DeploymentManager.RestRequestMethod.GET,
Uri = "https://resthealth.healthservice.com/api/services/contosoService/healthStatus",
},
Response = new AzureNative.DeploymentManager.Inputs.RestResponseArgs
{
Regex = new AzureNative.DeploymentManager.Inputs.RestResponseRegexArgs
{
MatchQuantifier = AzureNative.DeploymentManager.RestMatchQuantifier.All,
Matches = new[]
{
"(?i)Contoso-Service-EndToEnd",
@"(?i)""health_status"":((.|
)*)""(green)""",
},
},
SuccessStatusCodes = new[]
{
"OK",
},
},
},
},
HealthyStateDuration = "PT2H",
MaxElasticDuration = "PT30M",
Type = "REST",
WaitDuration = "PT15M",
},
StepType = "HealthCheck",
},
ResourceGroupName = "myResourceGroup",
StepName = "healthCheckStep",
Tags = null,
});
});
Content copied to clipboard
package main
import (
deploymentmanager "github.com/pulumi/pulumi-azure-native-sdk/deploymentmanager"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := deploymentmanager.NewStep(ctx, "step", &deploymentmanager.StepArgs{
Location: pulumi.String("centralus"),
Properties: deploymentmanager.HealthCheckStepProperties{
Attributes: deploymentmanager.RestHealthCheckStepAttributes{
HealthChecks: []deploymentmanager.RestHealthCheck{
{
Name: "appHealth",
Request: {
Authentication: {
In: deploymentmanager.RestAuthLocationQuery,
Name: "Code",
Type: "ApiKey",
Value: "NBCapiMOBQyAAbCkeytoPadnvO0eGHmidwFz5rXpappznKp3Jt7LLg==",
},
Method: deploymentmanager.RestRequestMethodGET,
Uri: "https://resthealth.healthservice.com/api/applications/contosoApp/healthStatus",
},
Response: {
Regex: {
MatchQuantifier: deploymentmanager.RestMatchQuantifierAll,
Matches: []string{
"(?i)Contoso-App",
"(?i)\"health_status\":((.|\n)*)\"(green|yellow)\"",
"(?mi)^(\"application_host\": 94781052)$",
},
},
SuccessStatusCodes: []string{
"OK",
},
},
},
{
Name: "serviceHealth",
Request: {
Authentication: {
In: deploymentmanager.RestAuthLocationHeader,
Name: "code",
Type: "ApiKey",
Value: "NBCapiMOBQyAAbCkeytoPadnvO0eGHmidwFz5rXpappznKp3Jt7LLg==",
},
Method: deploymentmanager.RestRequestMethodGET,
Uri: "https://resthealth.healthservice.com/api/services/contosoService/healthStatus",
},
Response: {
Regex: {
MatchQuantifier: deploymentmanager.RestMatchQuantifierAll,
Matches: []string{
"(?i)Contoso-Service-EndToEnd",
"(?i)\"health_status\":((.|\n)*)\"(green)\"",
},
},
SuccessStatusCodes: []string{
"OK",
},
},
},
},
HealthyStateDuration: "PT2H",
MaxElasticDuration: "PT30M",
Type: "REST",
WaitDuration: "PT15M",
},
StepType: "HealthCheck",
},
ResourceGroupName: pulumi.String("myResourceGroup"),
StepName: pulumi.String("healthCheckStep"),
Tags: nil,
})
if err != nil {
return err
}
return nil
})
}
Content copied to clipboard
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.deploymentmanager.Step;
import com.pulumi.azurenative.deploymentmanager.StepArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var step = new Step("step", StepArgs.builder()
.location("centralus")
.properties(Map.ofEntries(
Map.entry("attributes", Map.ofEntries(
Map.entry("healthChecks",
Map.ofEntries(
Map.entry("name", "appHealth"),
Map.entry("request", Map.ofEntries(
Map.entry("authentication", Map.ofEntries(
Map.entry("in", "Query"),
Map.entry("name", "Code"),
Map.entry("type", "ApiKey"),
Map.entry("value", "NBCapiMOBQyAAbCkeytoPadnvO0eGHmidwFz5rXpappznKp3Jt7LLg==")
)),
Map.entry("method", "GET"),
Map.entry("uri", "https://resthealth.healthservice.com/api/applications/contosoApp/healthStatus")
)),
Map.entry("response", Map.ofEntries(
Map.entry("regex", Map.ofEntries(
Map.entry("matchQuantifier", "All"),
Map.entry("matches",
"(?i)Contoso-App",
"""
(?i)"health_status":((.|
)*)"(green|yellow)" """,
"(?mi)^(\"application_host\": 94781052)$")
)),
Map.entry("successStatusCodes", "OK")
))
),
Map.ofEntries(
Map.entry("name", "serviceHealth"),
Map.entry("request", Map.ofEntries(
Map.entry("authentication", Map.ofEntries(
Map.entry("in", "Header"),
Map.entry("name", "code"),
Map.entry("type", "ApiKey"),
Map.entry("value", "NBCapiMOBQyAAbCkeytoPadnvO0eGHmidwFz5rXpappznKp3Jt7LLg==")
)),
Map.entry("method", "GET"),
Map.entry("uri", "https://resthealth.healthservice.com/api/services/contosoService/healthStatus")
)),
Map.entry("response", Map.ofEntries(
Map.entry("regex", Map.ofEntries(
Map.entry("matchQuantifier", "All"),
Map.entry("matches",
"(?i)Contoso-Service-EndToEnd",
"""
(?i)"health_status":((.|
)*)"(green)" """)
)),
Map.entry("successStatusCodes", "OK")
))
)),
Map.entry("healthyStateDuration", "PT2H"),
Map.entry("maxElasticDuration", "PT30M"),
Map.entry("type", "REST"),
Map.entry("waitDuration", "PT15M")
)),
Map.entry("stepType", "HealthCheck")
))
.resourceGroupName("myResourceGroup")
.stepName("healthCheckStep")
.tags()
.build());
}
}
Content copied to clipboard
Create wait step
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var step = new AzureNative.DeploymentManager.Step("step", new()
{
Location = "centralus",
Properties = new AzureNative.DeploymentManager.Inputs.WaitStepPropertiesArgs
{
Attributes = new AzureNative.DeploymentManager.Inputs.WaitStepAttributesArgs
{
Duration = "PT20M",
},
StepType = "Wait",
},
ResourceGroupName = "myResourceGroup",
StepName = "waitStep",
Tags = null,
});
});
Content copied to clipboard
package main
import (
deploymentmanager "github.com/pulumi/pulumi-azure-native-sdk/deploymentmanager"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := deploymentmanager.NewStep(ctx, "step", &deploymentmanager.StepArgs{
Location: pulumi.String("centralus"),
Properties: deploymentmanager.WaitStepProperties{
Attributes: deploymentmanager.WaitStepAttributes{
Duration: "PT20M",
},
StepType: "Wait",
},
ResourceGroupName: pulumi.String("myResourceGroup"),
StepName: pulumi.String("waitStep"),
Tags: nil,
})
if err != nil {
return err
}
return nil
})
}
Content copied to clipboard
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.deploymentmanager.Step;
import com.pulumi.azurenative.deploymentmanager.StepArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var step = new Step("step", StepArgs.builder()
.location("centralus")
.properties(Map.ofEntries(
Map.entry("attributes", Map.of("duration", "PT20M")),
Map.entry("stepType", "Wait")
))
.resourceGroupName("myResourceGroup")
.stepName("waitStep")
.tags()
.build());
}
}
Content copied to clipboard
Import
An existing resource can be imported using its type token, name, and identifier, e.g.
$ pulumi import azure-native:deploymentmanager:Step waitStep /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeploymentManager/steps/{stepName}
Content copied to clipboard