Skip to content

quickstarts: add examples for fc, service_mesh, vpc #141

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Sep 6, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
## Introduction

This example is used to create a `alicloud_fc_trigger` resource.

<!-- BEGIN_TF_DOCS -->
## Providers

| Name | Version |
|------|---------|
| <a name="provider_alicloud"></a> [alicloud](#provider\_alicloud) | n/a |
| <a name="provider_random"></a> [random](#provider\_random) | n/a |

## Modules

No modules.

## Resources

| Name | Type |
|------|------|
| [alicloud_fc_function.default](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/fc_function) | resource |
| [alicloud_fc_service.default](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/fc_service) | resource |
| [alicloud_fc_trigger.default](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/fc_trigger) | resource |
| [alicloud_log_project.default](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/log_project) | resource |
| [alicloud_log_store.default](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/log_store) | resource |
| [alicloud_log_store.source_store](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/log_store) | resource |
| [alicloud_oss_bucket.default](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/oss_bucket) | resource |
| [alicloud_oss_bucket_object.default](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/oss_bucket_object) | resource |
| [alicloud_ram_role.default](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/ram_role) | resource |
| [alicloud_ram_role_policy_attachment.default](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/ram_role_policy_attachment) | resource |
| [random_integer.default](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/integer) | resource |
| [alicloud_account.default](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/data-sources/account) | data source |
| [alicloud_regions.default](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/data-sources/regions) | data source |

## Inputs

No inputs.
<!-- END_TF_DOCS -->
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
data "alicloud_account" "default" {}
data "alicloud_regions" "default" {
current = true
}

resource "random_integer" "default" {
max = 99999
min = 10000
}

resource "alicloud_log_project" "default" {
project_name = "example-value-${random_integer.default.result}"
}

resource "alicloud_log_store" "default" {
project_name = alicloud_log_project.default.project_name
logstore_name = "example-value"
}

resource "alicloud_log_store" "source_store" {
project_name = alicloud_log_project.default.project_name
logstore_name = "example-source-store"
}

resource "alicloud_ram_role" "default" {
name = "fcservicerole-${random_integer.default.result}"
document = <<EOF
{
"Statement": [
{
"Action": "sts:AssumeRole",
"Effect": "Allow",
"Principal": {
"Service": [
"fc.aliyuncs.com"
]
}
}
],
"Version": "1"
}
EOF
description = "this is a example"
force = true
}

resource "alicloud_ram_role_policy_attachment" "default" {
role_name = alicloud_ram_role.default.name
policy_name = "AliyunLogFullAccess"
policy_type = "System"
}

resource "alicloud_fc_service" "default" {
name = "example-value-${random_integer.default.result}"
description = "example-value"
role = alicloud_ram_role.default.arn
log_config {
project = alicloud_log_project.default.project_name
logstore = alicloud_log_store.default.logstore_name
enable_instance_metrics = true
enable_request_metrics = true
}
}

resource "alicloud_oss_bucket" "default" {
bucket = "terraform-example-${random_integer.default.result}"
}
# If you upload the function by OSS Bucket, you need to specify path can't upload by content.
resource "alicloud_oss_bucket_object" "default" {
bucket = alicloud_oss_bucket.default.id
key = "index.py"
content = "import logging \ndef handler(event, context): \nlogger = logging.getLogger() \nlogger.info('hello world') \nreturn 'hello world'"
}

resource "alicloud_fc_function" "default" {
service = alicloud_fc_service.default.name
name = "terraform-example"
description = "example"
oss_bucket = alicloud_oss_bucket.default.id
oss_key = alicloud_oss_bucket_object.default.key
memory_size = "512"
runtime = "python3.10"
handler = "hello.handler"
}


resource "alicloud_fc_trigger" "default" {
service = alicloud_fc_service.default.name
function = alicloud_fc_function.default.name
name = "terraform-example"
role = alicloud_ram_role.default.arn
source_arn = "acs:log:${data.alicloud_regions.default.regions.0.id}:${data.alicloud_account.default.id}:project/${alicloud_log_project.default.project_name}"
type = "log"
config = <<EOF
{
"sourceConfig": {
"logstore": "${alicloud_log_store.source_store.logstore_name}",
"startTime": null
},
"jobConfig": {
"maxRetryTime": 3,
"triggerInterval": 60
},
"functionParameter": {
"a": "b",
"c": "d"
},
"logConfig": {
"project": "${alicloud_log_project.default.project_name}",
"logstore": "${alicloud_log_store.default.logstore_name}"
},
"enable": true
}

EOF
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
terraform {
required_providers {
alicloud = {
source = "aliyun/alicloud"
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
## Introduction

This example is used to create a `alicloud_service_mesh_extension_provider` resource.

<!-- BEGIN_TF_DOCS -->
## Providers

| Name | Version |
|------|---------|
| <a name="provider_alicloud"></a> [alicloud](#provider\_alicloud) | n/a |

## Modules

No modules.

## Resources

| Name | Type |
|------|------|
| [alicloud_service_mesh_extension_provider.default](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/service_mesh_extension_provider) | resource |
| [alicloud_service_mesh_service_mesh.default](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/service_mesh_service_mesh) | resource |
| [alicloud_vpc.default](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/vpc) | resource |
| [alicloud_vswitch.default](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/vswitch) | resource |
| [alicloud_vpcs.default](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/data-sources/vpcs) | data source |
| [alicloud_vswitches.default](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/data-sources/vswitches) | data source |
| [alicloud_zones.default](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/data-sources/zones) | data source |

## Inputs

| Name | Description | Type | Default | Required |
|------|-------------|------|---------|:--------:|
| <a name="input_name"></a> [name](#input\_name) | n/a | `string` | `"tf_example"` | no |
<!-- END_TF_DOCS -->
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
provider "alicloud" {
region = "cn-hangzhou"
}

variable "name" {
default = "tf_example"
}

data "alicloud_zones" "default" {
available_resource_creation = "VSwitch"
}

data "alicloud_vpcs" "default" {
name_regex = "default-NODELETING"
}

resource "alicloud_vpc" "default" {
count = length(data.alicloud_vpcs.default.ids) > 0 ? 0 : 1
}

data "alicloud_vswitches" "default" {
vpc_id = length(data.alicloud_vpcs.default.ids) > 0 ? data.alicloud_vpcs.default.ids[0] : alicloud_vpc.default[0].id
}

resource "alicloud_vswitch" "default" {
count = length(data.alicloud_vswitches.default.ids) > 0 ? 0 : 1
vpc_id = length(data.alicloud_vpcs.default.ids) > 0 ? data.alicloud_vpcs.default.ids[0] : alicloud_vpc.default[0].id
cidr_block = cidrsubnet(data.alicloud_vpcs.default.vpcs[0].cidr_block, 8, 2)
zone_id = data.alicloud_zones.default.zones.0.id
}

resource "alicloud_service_mesh_service_mesh" "default" {
service_mesh_name = "mesh-c50f3fef117ad45b6b26047cdafef65ad"
version = "v1.21.6.103-g5ddeaef7-aliyun"
edition = "Default"
network {
vpc_id = length(data.alicloud_vpcs.default.ids) > 0 ? data.alicloud_vpcs.default.ids[0] : alicloud_vpc.default[0].id
vswitche_list = [length(data.alicloud_vswitches.default.ids) > 0 ? data.alicloud_vswitches.default.ids[0] : alicloud_vswitch.default[0].id]
}
}

resource "alicloud_service_mesh_extension_provider" "default" {
service_mesh_id = alicloud_service_mesh_service_mesh.default.id
extension_provider_name = "httpextauth-tf-example"
type = "httpextauth"
config = "{\"headersToDownstreamOnDeny\":[\"content-type\",\"set-cookie\"],\"headersToUpstreamOnAllow\":[\"authorization\",\"cookie\",\"path\",\"x-auth-request-access-token\",\"x-forwarded-access-token\"],\"includeRequestHeadersInCheck\":[\"cookie\",\"x-forward-access-token\"],\"oidc\":{\"clientID\":\"qweqweqwewqeqwe\",\"clientSecret\":\"asdasdasdasdsadas\",\"cookieExpire\":\"1000\",\"cookieRefresh\":\"500\",\"cookieSecret\":\"scxzcxzcxzcxzcxz\",\"issuerURI\":\"qweqwewqeqweqweqwe\",\"redirectDomain\":\"www.alicloud-provider.cn\",\"redirectProtocol\":\"http\",\"scopes\":[\"profile\"]},\"port\":4180,\"service\":\"oauth2proxy-httpextauth-tf-example.istio-system.svc.cluster.local\",\"timeout\":\"10s\"}"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
terraform {
required_providers {
alicloud = {
source = "aliyun/alicloud"
}
}
}
34 changes: 34 additions & 0 deletions quickstarts/VPC/101-cen-instance-grant-docs-Example/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
## Introduction

This example is used to create a `alicloud_cen_instance_grant` resource.

<!-- BEGIN_TF_DOCS -->
## Providers

| Name | Version |
|------|---------|
| <a name="provider_alicloud"></a> [alicloud](#provider\_alicloud) | n/a |
| <a name="provider_alicloud.child_account"></a> [alicloud.child\_account](#provider\_alicloud.child\_account) | n/a |
| <a name="provider_alicloud.your_account"></a> [alicloud.your\_account](#provider\_alicloud.your\_account) | n/a |

## Modules

No modules.

## Resources

| Name | Type |
|------|------|
| [alicloud_cen_instance.example](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/cen_instance) | resource |
| [alicloud_cen_instance_grant.child_account](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/cen_instance_grant) | resource |
| [alicloud_vpc.child_account](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/vpc) | resource |
| [alicloud_account.child_account](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/data-sources/account) | data source |
| [alicloud_account.your_account](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/data-sources/account) | data source |
| [alicloud_regions.default](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/data-sources/regions) | data source |

## Inputs

| Name | Description | Type | Default | Required |
|------|-------------|------|---------|:--------:|
| <a name="input_another_uid"></a> [another\_uid](#input\_another\_uid) | n/a | `string` | `"xxxx"` | no |
<!-- END_TF_DOCS -->
Loading
Loading