แฒกแแแแแ แงแแแแแก. แแฆแแก แแแแแแแแ แแแ แกแขแแขแแแก แแแแ แแแฌแแแก.
แแแแแแแแแแก แขแแกแขแแ แแแ
แขแแกแขแแ แแแแก แแก แกแขแแแ แแซแแแแ แ แแแแแแแแ แแ แกแแจแฃแแแแแแก แแแแซแแแแก แจแแแแกแ แฃแแแ แแแแ แ แงแฃแแแก แขแแกแขแแ แแแ แฉแแแแ แแแคแ แแกแขแ แฃแฅแขแฃแ แแก แแแแแก แจแแแ แแฃแจแแแแแก แจแแกแแแแฌแแแแแแ. แแฃแแชแ, แแก แแแ แแแแฃแแฌแแแแ แแฆแฃแแแแก แแแแก, แ แแกแ แขแแกแขแแ แแแแช แจแแแแแซแแแ. แขแแกแขแแแ แขแแ แแแแ แแแฎแกแแแ แแแแจแ แแแแแแแแแแก แแแแแแก แกแแคแฃแซแแแแแ, แ แแแแแแช แจแแฅแแแแแแ Pulumi-แก แแแแ แ แแแแฃแ แแแแแแแแแแแแ แแ, แจแแกแแแแแแกแแ, แแแแแ แแแแแแแแแแก แขแแกแขแแ แแแ แจแแฃแซแแแแแแแ. แแกแแแ แจแแแแฎแแแแแแแกแแแแก แแฃแแฃแแก แแฅแแก แแแขแแแ แแชแแแก แขแแกแขแแก แฉแแ แฉแ. แแ แแก แแ แ แแแแแแแ แแจแแแแแแ แแ แแฃแจแแแแก แแ แแแ!
Pulumi แแแขแแแ แแชแแแก แขแแกแขแแ แแแแก แฉแแ แฉแ แแแฌแแ แแแแ Go-แจแ, แแกแ แแแแแฌแแแแ แฉแแแแ แจแแแ แแแแแก แฃแแแขแแก แแแฌแแแก. แแแฃแฎแแแแแแ แแแแกแ, แ แแ แแแ แ แแแแฎแแแฃแแ แแ แแแฃแแแก แขแแกแขแแ แแแแก แแแแแแแ แฃแคแ แ แฐแแแแก แแแแ แ แงแฃแแแก แขแแกแขแแ แแแแก, แแแขแแแ แแชแแแก แขแแกแขแแ แแแ แจแแแ แงแฃแแแ. (แแกแแแ แแ แกแแแแแก แแแแชแ แ แจแแแ แขแแกแขแแ แแแแก แแแ แแแแขแแแ.) แแก แฉแแ แฉแ แจแแแฅแแแ แแแแกแแแแแก, แ แแ แแแแฆแแก แกแ แฃแแ Pulumi แแ แแแ แแแ แแ แแแแแฎแแ แชแแแแแก แแแกแแ แกแแชแแชแฎแแแก แชแแแแแก แกแฎแแแแแกแฎแแ แแแแ แแชแแแแ, แ แแแแ แแชแแ แแฎแแแ แกแขแแแแก แแแแแแแแแ แแฃแแแแแ, แแแกแ แแแแแฎแแแแ แแแ แแแชแแแแแ แแ แฌแแจแแ, แจแแกแแซแแแ, แ แแแแแแฏแแ แแ. . แฉแแแ แแแ แ แแแฃแแแ แฃแแแ แแแขแแ แแแ (แแแแแแแแแ, แฆแแแแ) แแ แกแขแ แแก แขแแกแขแแแแก แกแแฎแแ.
(แฉแแแ
แแ แฉแแ แฉแแก แแแแแงแแแแแแ แแ แแแ แแแแก แแแจแแแแแ แจแแแแซแแแแ แจแแแแแฌแแแ แจแแแแแแ:
- แแฅแแแแ แแ แแแฅแขแแก แแแแ แกแแแขแแฅแกแฃแ แแ แกแฌแแ แแ แแ แแฃแจแแแแก แจแแชแแแแแแแก แแแ แแจแ.
- แกแขแแแแก แแ แกแแแแฃแแแแแแแก แแแแคแแแฃแ แแชแแแก แแแ แแแแขแ แแแ แแฃแจแแแแก แแ แกแฌแแ แแ แแ แแก แแแขแแ แแ แแขแแ แแแฃแแ.
- แแฅแแแแ แแ แแแฅแขแ แจแแแซแแแแ แฌแแ แแแขแแแแ แแแแแแแกแแแก แแฅแแแแก แแแแ แแ แฉแแฃแ แฆแ แฃแแแแแแ แแ แแแแแแแ แจแ.
- แแฅแแแแ แแ แแแฅแขแ แจแแแซแแแแ แฌแแ แแแขแแแแ แแแแแฎแแแแก แกแแฌแงแแกแ แแแแแแแ แแแแแแแ N แกแฎแแ แจแขแแขแจแ.
- แแฅแแแแ แแ แแแฅแขแ แจแแแซแแแแ แฌแแ แแแขแแแแ แแแแแแแฃแ แแแก แแ แฌแแแจแแแแก แแฅแแแแ แฆแ แฃแแแแแแแ แแ แแแแแแแ แแแแ.
แ แแแแ แช แแแแ แแแแแแแฎแแแ, แแก แฉแแ แฉแ แแกแแแ แจแแแซแแแแ แแแแแงแแแแแฃแ แแฅแแแก แแแจแแแแแก แแ แแแก แแแแแแแชแแแก แจแแกแแกแ แฃแแแแแแ.
แแแ แขแแแ แแแขแแแ แแชแแแก แขแแกแขแ
แแแแก แแแกแแแแแแ, แฉแแแ แแแแแแฎแแแแแ แกแแชแแแก pulumi/examples
, แ แแแแแ แฉแแแแ แแฃแแแ แแ แแฃแแฃแแแก แกแแแแแแแแแแ แแงแแแแแก แแแก แฉแแแแ แกแแแฃแแแ แ แแแแฎแแแแแก, แแแแแแแฃแแแแแแแก แแ แฆแแแแก แแจแแแแแแแแก แจแแกแแแแฌแแแแแแ.
แฅแแแแแ แแแชแแแฃแแแ แฉแแแแ แแแแแ แขแแแแแฃแแ แขแแกแขแ
example_test.go:
package test
import (
"os"
"path"
"testing"
"github.com/pulumi/pulumi/pkg/testing/integration"
)
func TestExamples(t *testing.T) {
awsRegion := os.Getenv("AWS_REGION")
if awsRegion == "" {
awsRegion = "us-west-1"
}
cwd, _ := os.Getwd()
integration.ProgramTest(t, &integration.ProgramTestOptions{
Quick: true,
SkipRefresh: true,
Dir: path.Join(cwd, "..", "..", "aws-js-s3-folder"),
Config: map[string]string{
"aws:region": awsRegion,
},
})
}
แแก แขแแกแขแ แแแแแก แกแแฅแแฆแแแแแก แแแกแขแแก แจแแฅแแแแก, แแแแแคแแชแแ แแแแกแ แแ แแแแแแแฃแ แแแแก แซแแ แแแแ แกแแกแแชแแชแฎแแ แชแแแแก aws-js-s3-folder
. แฉแแแแ แแแฃแแ แขแแกแขแแก แแแฎแกแแแแแแก แแแแฎแแแแแแ แแ แแ แฌแฃแแ แแแกแญแแ แแแแ:
$ go test .
PASS
ok ... 43.993s
แแ แขแแกแขแแแแก แฅแชแแแแก แแแ แแแแแก แแ แแแแแ แแแ แแแแขแ แแ แกแแแแแก. แแฎแแแแ แแแ แแแแขแแแแก แกแ แฃแแ แกแแ. ProgramTestOptions
. แแแแแแแแแ, แแฅแแแ แจแแแแซแแแแ แแแแแแแคแแแฃแ แแ แแ Jaeger-แแก แแแแ แฌแแ แขแแแ แแแแแแ (Tracing
), แแแฃแแแแแ, แ แแ แแฅแแแ แแแแแแแแ, แ แแ แขแแกแขแ แฉแแแแ แแแแ, แแฃ แขแแกแขแแ แแแ แฃแแ แงแแคแแแแ (ExpectFailure
), แแแแแแงแแแแ แแ แแแ แแแแจแ "แ แแแแฅแขแแ แแแแก" แกแแ แแ แแแแแแแ แแแแแแแก แแแแแแแแแแ แฃแแ แแแแแกแแแแกแแแแก (EditDirs
) แแ แฃแคแ แ แแแขแ. แแแแฎแแ, แ แแแแ แแแแแแแงแแแแ แแกแแแ แแฅแแแแ แแแแแแแชแแแก แแแแแแแแแแก แจแแกแแแแฌแแแแแแ.
แ แแกแฃแ แกแแก แแแแกแแแแแแก แจแแแแฌแแแแ
แแแแแ แแแแฎแแแฃแแ แแแขแแแ แแชแแ แฃแแ แฃแแแแแงแแคแก แฉแแแแ แแ แแแ แแแแก "แแฃแจแแแแแก" - แแก แแ แแจแแแแ. แแแแ แแ แ แ แแแฎแแแแ, แแฃ แแแกแฃแ แก แจแแแแแแฌแแแ แแแฆแแแฃแแ แกแขแแแแก แแแแกแแแแแ? แแแแแแแแแ, แ แแ แแแ แแแแฃแแ แขแแแแก แ แแกแฃแ แกแแแ แฃแแ แฃแแแแแงแแคแแแแ (แแ แแ แ) แแ แ แแ แแแ แแฅแแ แแแ แแแแฃแแ แแขแ แแแฃแขแแแ.
แแแ แแแแขแ แแก ExtraRuntimeValidation
แแแแกแแแแก ProgramTestOptions
แกแแจแฃแแแแแแก แแแแซแแแแก แแแแแแฎแแแแ แแฃแแฃแแแก แแแแ แแแคแแฅแกแแ แแแฃแ แแแแแแแแแแก แจแแแแแแ แแแแแแแ แแแแแก, แ แแแ แจแแแซแแแ แแแแแขแแแแแ แจแแแแฌแแแแแแ. แแก แแแแชแแแก แจแแแแแแ แแแฆแแแฃแแ แกแขแแแแก แแแแแแแ แแแแแก แกแ แฃแ แกแฃแ แแแก, แแแ แจแแ แแก แแแแคแแแฃแ แแชแแแก, แแฅแกแแแ แขแแ แแแฃแ แแแแแแแแแ แแแแจแแแแแแแแแก, แงแแแแ แ แแกแฃแ แกแก แแ แแแ แแแแกแแแแแก แแ แ แแกแฃแ แกแแแก แจแแ แแก แแแแแแแแแแฃแแแแแแก.
แแแแก แกแแแแแแกแ แแแแแแแแแก แกแแแแฎแแแแ, แแแแแ แจแแแแแแฌแแแ, แ แแ แฉแแแแ แแ แแแ แแแ แฅแแแแก แแ แแก S3 Bucket:
integration.ProgramTest(t, &integration.ProgramTestOptions{
// as before...
ExtraRuntimeValidation: func(t *testing.T, stack integration.RuntimeValidationStackInfo) {
var foundBuckets int
for _, res := range stack.Deployment.Resources {
if res.Type == "aws:s3/bucket:Bucket" {
foundBuckets++
}
}
assert.Equal(t, 1, foundBuckets, "Expected to find a single AWS S3 Bucket")
},
})
แแฎแแ, แ แแแแกแแช แฉแแแ แแแฌแแ แแแแแ go test-แก, แแก แแ แ แแฎแแแแ แแแแแแแก แกแแกแแชแแชแฎแแ แชแแแแแก แขแแกแขแแแแก แแแขแแ แแแก, แแ แแแแ, แกแขแแแแก แฌแแ แแแขแแแแ แแแแแแแแแแก แจแแแแแ, แแก แจแแแกแ แฃแแแแก แแแแแขแแแแ แจแแแแฌแแแแแก แแแฆแแแฃแ แแแแแแแ แแแแแแ.
แแแจแแแแแก แขแแกแขแแแ
แฏแแ แฏแแ แแแแ, แงแแแแ แขแแกแขแ แแฎแแแแแ แแแแแแแแแแก แฅแชแแแแก แแ แแฃแแฃแแแก แ แแกแฃแ แกแแก แแแแแแก. แ แ แแแฎแแแแ, แแฃ แแกแฃแ แ แแแแแแแแฌแแแ, แ แแ แแฅแแแแ แแแฌแแแแแฃแแ แแแคแ แแกแขแ แฃแฅแขแฃแ แ แ แแแแฃแ แแ แแฃแจแแแแก? แแแแแแแแแ, แ แแ แแแ แขแฃแแแฃแ แ แแแแฅแแแ แแฃแจแแแแก, S3 bucket แจแแแชแแแก แแแแก, แ แแกแแช แแแแแ แแ แ.แจ.
แแฅแแแ แจแแแซแแแแ แฃแแแ แแแฎแแแแ, แ แแแแ แแแแแแแแ แแก: แแแ แแแแขแ ExtraRuntimeValidation
แแแแกแแแแก ProgramTestOptions
-แแก แแแแก แแแแ แจแแกแแซแแแแแแแแ. แแ แแขแแแแ, แแฅแแแ แแฌแแ แแแแแ แแแ แกแแแแแฃแ Go แขแแกแขแก แแฅแแแแ แแ แแแ แแแแก แ แแกแฃแ แกแแแแก แกแ แฃแ แแแแแแแ แแแแแแ แฌแแแแแแ. แแก แแแแแแแ แแแแ แแแแชแแแก แแแคแแ แแแชแแแก, แ แแแแ แแชแแ แแแ แขแฃแแแฃแ แ แแแแ แแขแแก IP แแแกแแแแ แแแแ, URL-แแแ แแ แงแแแแแคแแ แ, แ แแช แกแแญแแ แแ แ แแแแฃแ แแ แฃแ แแแแ แแฅแแแแแแแกแแแแก แแแฆแแแฃแ แฆแ แฃแแแแแแ แแแแแแแชแแแแแแ แแ แแแคแ แแกแขแ แฃแฅแขแฃแ แแกแแแ.
แแแแแแแแแ, แฉแแแแ แกแแขแแกแขแ แแ แแแ แแแ แแฎแแแแก แฅแแแแแแก แแฅแกแแแ แขแก webEndpoint
แแแแ แ แแแ แแแ websiteUrl
, แ แแแแแแช แแ แแก แกแ แฃแแ URL, แกแแแแช แจแแแแแซแแแ แแแแแฆแแ แแแแคแแแฃแ แแชแแ index document
. แแแฃแฎแแแแแแ แแแแกแ, แ แแ แฉแแแ แจแแแแแซแแ แฉแแแญแ แแ แกแแฎแแแแฌแแคแ แคแแแแจแ แกแแแแแแแแแ bucket
แแ แฌแแแแแแฎแแ แแก แแแแกแแแ แแแ แแแแแ , แแแแ แแ แฎแจแแ แจแแแแฎแแแแแจแ แฉแแแแ แแแกแขแ แแฅแกแแแ แขแก แแฎแแ แชแแแแแแก แแกแแแ แกแแกแแ แแแแแ แแแแกแแแแแแก แจแแกแแฎแแ, แ แแแแ แแช แฉแแแแแแแก แแแกแแฎแแ แฎแแแแแแ แแแแแกแแงแแแแแแแ แจแแกแแแแฌแแแแแแ:
integration.ProgramTest(t, &integration.ProgramTestOptions{
// as before ...
ExtraRuntimeValidation: func(t *testing.T, stack integration.RuntimeValidationStackInfo) {
url := "http://" + stack.Outputs["websiteUrl"].(string)
resp, err := http.Get(url)
if !assert.NoError(t, err) {
return
}
if !assert.Equal(t, 200, resp.StatusCode) {
return
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if !assert.NoError(t, err) {
return
}
assert.Contains(t, string(body), "Hello, Pulumi!")
},
})
แแกแแแ แ แแแแ แช แฉแแแแ แฌแแแ แแแจแแแแแก แจแแแแฌแแแแแแ, แแก แจแแแแฌแแแแ แจแแกแ แฃแแแแแ แกแขแแแแก แแฌแแแแกแแแแแแ, แแก แงแแแแแคแแ แ แแแ แขแแแ แแแ แแก แกแแแแกแฃแฎแแ. go test
. แแ แแก แแฎแแแแ แแแกแแแ แแแก แแฌแแแ แแแแแ - แฎแแแแแกแแฌแแแแแแ Go แขแแกแขแแก แงแแแแ แคแฃแแฅแชแแ, แ แแแแแแช แจแแแแซแแแแ แแแแแ แแแฌแแ แแ.
แฃแฌแงแแแขแ แแแคแ แแกแขแ แฃแฅแขแฃแ แแก แแแขแแแ แแชแแ
แแแ แแแ, แ แแ แจแแแแซแแแก แแแแขแแแแ แขแแกแขแแแแก แแแจแแแแ, แ แแแแกแแช แแ แแแแแ แแแคแ แแกแขแ แฃแฅแขแฃแ แฃแแ แชแแแแแแแ แฎแแแแ แแแแ แจแแกแแแแฌแแแแแแ, แแแแแก แแแแกแแฎแแแแแแแ แแแแแแแแแแแ. แแแแ แแ แฉแแแ แแ แแแแ แ แฉแแแแ แแแแแแขแ แแแแแฌแแแแ แแแคแ แแกแขแ แฃแฅแขแฃแ แแก แแแแแแแแ แแแแก แกแแกแแชแแชแฎแแ แชแแแแแก แกแฎแแแแแกแฎแแ แแขแแแแ:
- แจแแ แฌแงแแแแแ แขแแกแขแแ แแแแก แแแแฎแแแแแแ แแแงแแแแแก แงแแแแ แฆแแ แแแแฎแแแแแจแ.
- แงแแแแแ แฉแแแแแแก แกแแแแกแฃแฎแแ, แแ แฏแแ แจแแแแแฌแแแ, แ แแ แจแแ แฌแงแแ แกแฌแแ แแ แจแแกแ แฃแแแ.
- แแแ แแแแฃแแแ, แแแแแแแแแ แฆแแแแ แแ แงแแแแแแแแ แแฃแแแ แแแแแขแแแแแ แขแแกแขแแ แแแแกแแแแก.
- แ แแแแ แช แจแแกแ แฃแแแแแก แแ แกแขแ แแก แขแแกแขแแ แแแแก แแแฌแแแ, แ แแแแแแช, แ แแแแ แช แฌแแกแ, แแแแแก แฎแแแแ แซแแแ แแแ แแแแจแ แแ แแขแแ แแแก แขแแกแขแแแก แแแ แแแแแฃแ แแ แแ/แแ แแฎแแ แชแแแแแแก แแ แแกแ แแ แแแแแ แแ แแแ แแแแก แ แแแแแแฏแแ แแ.
แแแแแแฃแแ แแแแแแแแกแแแแก, แแฃแแฃแแ แแฎแแ แก แฃแญแแ แก แแแขแแแ แแชแแแก แแฅแแแแก แกแแงแแแ แแ แฃแฌแงแแแขแ แแแขแแแ แแชแแแก แกแแกแขแแแแกแแแ. แฃแฌแงแแแขแ แแแขแแแ แแชแแแ, แแก แแแซแแแแ แแแแแ แขแแกแขแแก แแแคแแ แแแก แแฅแแแแ แแแคแ แแกแขแ แฃแฅแขแฃแ แแกแแแแก, แ แแแแ แช แแฅแแแแ แแแแแแแชแแแก แแ แแแ แแแฃแแ แฃแแ แฃแแแแแงแแคแแกแแแแก.
แแฃแแฃแแก แแฅแแก แกแแแ แแ CI แกแแกแขแแแแแแก แแฎแแ แแแญแแ แ. แแฅ แแ แแก แ แแแแแแแแ แแแแแแแ:
AWS แแแแแก แกแแ แแแกแแแ Azure DevOps แฌแ แCI GitHub แแแฅแแแแแแแแ GitLab CI Google Cloud Build Travis
แฃแคแ แ แแแขแแแฃแ แ แแแคแแ แแแชแแแกแแแแก, แแแฎแแแ, แแฌแแแแ แแแแฃแแแแขแแชแแแก
แแคแแแแ แฃแแ แแแ แแแ
แซแแแแแ แซแแแแ แ แจแแกแแซแแแแแแแ, แ แแแแแแช แแฎแกแแแแ, แแ แแก แแคแแแแ แฃแแ แแแ แแแแก แแแแแแแแแแก แจแแกแแซแแแแแแแ แแฎแแแแ แแแกแแฆแแแ แขแแกแขแแ แแแแก แแแแแแแแกแแแแก. แฒจแแแแแ แกแ
แแฃ แแงแแแแแ GitHub-แก, แแแจแแ Pulumi แแแแแแแแแ
แ แแแแกแแช แแงแแแแแ Pulumi-แก แแฅแแแแ แซแแ แแแแแ แแแกแแฆแแแ แขแแกแขแแแแกแแแแก, แแฅแแแ แแแแฆแแแ แแแขแแแแขแแแแชแแแก แแฎแแ แจแแกแแซแแแแแแแแแก, แ แแช แแแแฃแแฏแแแแกแแแก แแฃแแแแก แแ แแแฃแฅแขแแฃแแแแแก แแ แแแแชแแแ แแแแแแก แแฅแแแแ แชแแแแแแแแแแก แฎแแ แแกแฎแจแ.
แกแฃแ
แแ แกแขแแขแแแจแ แฉแแแ แแแแแแแฎแแ, แ แแ แแแแแแ แแแแแจแแฃแแแแแก แแ แแแ แแแแ แแแแก แแแแแแก แแแแแงแแแแแแ, แฉแแแแแแแก แฎแแแแแกแแฌแแแแแ แแแฎแแ แแ แแแ แแแฃแแ แฃแแ แฃแแแแแงแแคแแก แแแแแแแแ แแแแก แแ แแแแแ แขแแฅแแแแ, แ แแแแแแแช แกแแกแแ แแแแแ แแงแ แฉแแแแ แแแแแแแชแแแแแก แจแแแฃแจแแแแแแจแ. แแกแแแ แแแแชแแแก แแ แแแฃแแแก แขแแกแขแแ แแแแก, แแแขแแแ แแชแแแก แขแแกแขแแ แแแแก แแ แแฃ แ แแแแ แแฃแจแแแแแ แแกแแแ แแ แแแ แแ แชแแแ แแแจแแแแแก แขแแกแขแแ แแแแก แจแแกแแกแ แฃแแแแแแ. แขแแกแขแแแ แแแ แขแแแแ แแแแฎแแแแแ แแ แแฅแแแแก CI แกแแกแขแแแแจแ.
แแฃแแฃแแ - แฆแแ แแแแแก แแ แแแ แแแฃแแ แฃแแ แฃแแแแแงแแคแ, แฃแคแแกแ แแแแแกแแงแแแแแแแ แแ แแฃแจแแแแก แแฅแแแแก แกแแงแแแ แแ แแ แแแ แแแแ แแแแก แแแแแแแ แแ แฆแ แฃแแแแแแแ -
โ
แฌแงแแ แ: www.habr.com