

文件 AWS 開發套件範例 GitHub 儲存庫中有更多可用的 [AWS SDK 範例](https://github.com/awsdocs/aws-doc-sdk-examples)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# AWS WAFV2 使用 AWS SDKs程式碼範例
<a name="wafv2_code_examples"></a>

下列程式碼範例示範如何使用 AWS WAFV2 搭配 AWS 軟體開發套件 (SDK)。

*Actions* 是大型程式的程式碼摘錄，必須在內容中執行。雖然動作會告訴您如何呼叫個別服務函數，但您可以在其相關情境中查看內容中的動作。

**其他資源**
+  **[AWS WAFV2 開發人員指南](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html)** – 有關 的詳細資訊 AWS WAFV2。
+ **[AWS WAFV2 API 參考](https://docs.aws.amazon.com/waf/latest/APIReference/API_Operations_AWS_WAFV2.html)** – 所有可用 AWS WAFV2 動作的詳細資訊。
+ **[AWS 開發人員中心](https://aws.amazon.com/developer/code-examples/?awsf.sdk-code-examples-product=product%23)** – 您可以依類別或全文搜尋篩選的程式碼範例。
+ **[AWS SDK 範例](https://github.com/awsdocs/aws-doc-sdk-examples)** – GitHub 儲存庫使用慣用語言的完整程式碼。包含設定和執行程式碼的指示。

**Contents**
+ [基本概念](wafv2_code_examples_basics.md)
  + [動作](wafv2_code_examples_actions.md)
    + [`CreateWebAcl`](wafv2_example_wafv2_CreateWebAcl_section.md)

# AWS WAFV2 使用 AWS SDKs的基本範例
<a name="wafv2_code_examples_basics"></a>

下列程式碼範例示範如何 AWS WAFV2 搭配 AWS SDKs 使用 的基本概念。

**Contents**
+ [動作](wafv2_code_examples_actions.md)
  + [`CreateWebAcl`](wafv2_example_wafv2_CreateWebAcl_section.md)

# AWS WAFV2 使用 AWS SDKs的動作
<a name="wafv2_code_examples_actions"></a>

下列程式碼範例示範如何使用 AWS SDKs執行個別 AWS WAFV2 動作。每個範例均包含 GitHub 的連結，您可以在連結中找到設定和執行程式碼的相關說明。

 下列範例僅包含最常使用的動作。如需完整清單，請參閱《[AWS WAFV2 API 參考](https://docs.aws.amazon.com/waf/latest/APIReference/API_Operations_AWS_WAFV2.html)》。

**Topics**
+ [`CreateWebAcl`](wafv2_example_wafv2_CreateWebAcl_section.md)

# 搭配使用 `CreateWebAcl` 與 CLI
<a name="wafv2_example_wafv2_CreateWebAcl_section"></a>

下列程式碼範例示範如何使用 `CreateWebAcl`。

------
#### [ CLI ]

**AWS CLI**  
**建立 Web ACL**  
下列 `create-web-acl` 命令會建立 Web ACL 以供區域使用。Web ACL 的規則陳述式是以 JSON 格式的檔案提供。  

```
aws wafv2 create-web-acl \
    --name TestWebAcl \
    --scope REGIONAL \
    --default-action Allow={} \
    --visibility-config SampledRequestsEnabled=true,CloudWatchMetricsEnabled=true,MetricName=TestWebAclMetrics \
    --rules file://waf-rule.json \
    --region us-west-2
```
file://waf-rule.json 的內容：  

```
[
    {
        "Name":"basic-rule",
        "Priority":0,
        "Statement":{
            "AndStatement":{
                "Statements":[
                    {
                        "ByteMatchStatement":{
                            "SearchString":"example.com",
                            "FieldToMatch":{
                                "SingleHeader":{
                                    "Name":"host"
                                }
                            },
                            "TextTransformations":[
                                {
                                    "Priority":0,
                                    "Type":"LOWERCASE"
                                }
                            ],
                            "PositionalConstraint":"EXACTLY"
                        }
                    },
                    {
                        "GeoMatchStatement":{
                            "CountryCodes":[
                                "US",
                                "IN"
                            ]
                        }
                    }
                ]
            }
        },
        "Action":{
            "Allow":{

            }
        },
        "VisibilityConfig":{
            "SampledRequestsEnabled":true,
            "CloudWatchMetricsEnabled":true,
            "MetricName":"basic-rule"
        }
    }
]
```
輸出：  

```
{
    "Summary":{
        "ARN":"arn:aws:wafv2:us-west-2:123456789012:regional/webacl/TestWebAcl/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
        "Description":"",
        "Name":"TestWebAcl",
        "LockToken":"2294b3a1-eb60-4aa0-a86f-a3ae04329de9",
        "Id":"a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
    }
}
```
如需詳細資訊，請參閱 *AWS WAF、 AWS Firewall Manager AWS * [和 Shield Advanced Developer Guide 中的管理和使用 Web 存取控制清單 (Web ACL)](https://docs.aws.amazon.com/waf/latest/developerguide/web-acl.html)。  
+  如需 API 詳細資訊，請參閱《AWS CLI 命令參考》**中的 [CreateWebAcl](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/wafv2/create-web-acl.html)。

------
#### [ PowerShell ]

**Tools for PowerShell V4**  
**範例 1：此命令會建立名為 "waf-test" 的新 Web ACL。請注意，根據服務 API 文件，'DefaultAction' 是必要的屬性。因此，應該指定 '-DefaultAction\$1Allow' 和/或 '-DefaultAction\$1Block' 的值。由於 '-DefaultAction\$1Allow' 和 '-DefaultAction\$1Block' 不是必要的屬性，因此值 '@\$1\$1' 可以用作預留位置，如上述範例所示。**  

```
New-WAF2WebACL -Name "waf-test" -Scope REGIONAL -Region eu-west-1 -VisibilityConfig_CloudWatchMetricsEnabled $true -VisibilityConfig_SampledRequestsEnabled $true -VisibilityConfig_MetricName "waf-test" -Description "Test" -DefaultAction_Allow @{}
```
**輸出：**  

```
ARN         : arn:aws:wafv2:eu-west-1:139480602983:regional/webacl/waf-test/19460b3f-db14-4b9a-8e23-a417e1eb007f
Description : Test
Id          : 19460b3f-db14-4b9a-8e23-a417e1eb007f
LockToken   : 5a0cd5eb-d911-4341-b313-b429e6d6b6ab
Name        : waf-test
```
+  如需 API 詳細資訊，請參閱《AWS Tools for PowerShell Cmdlet 參考 (V4)》**中的 [CreateWebAcl](https://docs.aws.amazon.com/powershell/v4/reference)。

**Tools for PowerShell V5**  
**範例 1：此命令會建立名為 "waf-test" 的新 Web ACL。請注意，根據服務 API 文件，'DefaultAction' 是必要的屬性。因此，應該指定 '-DefaultAction\$1Allow' 和/或 '-DefaultAction\$1Block' 的值。由於 '-DefaultAction\$1Allow' 和 '-DefaultAction\$1Block' 不是必要的屬性，因此值 '@\$1\$1' 可以用作預留位置，如上述範例所示。**  

```
New-WAF2WebACL -Name "waf-test" -Scope REGIONAL -Region eu-west-1 -VisibilityConfig_CloudWatchMetricsEnabled $true -VisibilityConfig_SampledRequestsEnabled $true -VisibilityConfig_MetricName "waf-test" -Description "Test" -DefaultAction_Allow @{}
```
**輸出：**  

```
ARN         : arn:aws:wafv2:eu-west-1:139480602983:regional/webacl/waf-test/19460b3f-db14-4b9a-8e23-a417e1eb007f
Description : Test
Id          : 19460b3f-db14-4b9a-8e23-a417e1eb007f
LockToken   : 5a0cd5eb-d911-4341-b313-b429e6d6b6ab
Name        : waf-test
```
+  如需 API 詳細資訊，請參閱《AWS Tools for PowerShell Cmdlet 參考 (V5)》**中的 [CreateWebAcl](https://docs.aws.amazon.com/powershell/v5/reference)。

------