Sql server 使用jinja将子网分配给sqladmin实例

Sql server 使用jinja将子网分配给sqladmin实例,sql-server,jinja2,google-cloud-sql,google-deployment-manager,google-cloud-networking,Sql Server,Jinja2,Google Cloud Sql,Google Deployment Manager,Google Cloud Networking,我已经部署了一个Google Cloud sqladmin实例(sqladmin.v1beta4.instance)和数据库(sqladmin.v1beta4.database),但现在我想将其分配给我的私有子网。我已经用多个VM成功地完成了这项工作,但无法用sqladmin实例 这是我当前的sqladmin布局: - name: my-sqladmin-instance type: sqladmin.v1beta4.instance properties: region: eu

我已经部署了一个Google Cloud sqladmin实例(
sqladmin.v1beta4.instance
)和数据库(
sqladmin.v1beta4.database
),但现在我想将其分配给我的私有子网。我已经用多个VM成功地完成了这项工作,但无法用sqladmin实例

这是我当前的sqladmin布局:

- name: my-sqladmin-instance
  type: sqladmin.v1beta4.instance
  properties:
    region: europe-west2
    settings:
      tier: db-f1-micro
      backupConfiguration:
        binaryLogEnabled: true
        enabled: true

在此方面的任何帮助都将不胜感激

我相信您正在寻找的是设置.ipConfiguration.privateNetwork,它定义了哪些VPC网络可以访问云SQL实例

专有网络的资源链接,私有IP可从中访问云SQL实例


您可以在上找到完整的RESTAPI语法(您可以使用它转换为YAML或jinja)以及所有字段及其说明。您还可以在上找到Deployment Manager支持的所有API的列表,以及指向每个API故障的链接。

我相信您要查找的是设置.ipConfiguration.privateNetwork,它定义了哪些VPC网络可以访问云SQL实例

专有网络的资源链接,私有IP可从中访问云SQL实例


您可以在上找到完整的RESTAPI语法(您可以使用它转换为YAML或jinja)以及所有字段及其说明。您还可以在上找到Deployment Manager支持的所有API的列表,以及指向每个API故障的链接。

对于CloudSQL,您需要在VPC中分配一个Google托管的服务范围,然后使用PrivateNetwork属性中的VPC自链接配置SQL实例。有关GCP私有服务的更多信息,请参阅,以及在中与CloudSQL一起使用GCP私有服务的相关信息

您可以在中找到一个模板来部署这两种配置

网络

SQL实例 以及带有专用网络部分的CloudSQL模板:

resources:
- name: {{ name }}
  type: sqladmin.v1beta4.instance
  properties:
    backendType: {{ properties['backendType'] }}
...
      {# Connectivity #}
      ipConfiguration:
        ipv4Enabled: {{ properties['publicIp'] }}
        {% if properties['authorizedNetworks'] %}
        authorizedNetworks:
          {% for authorizedNetwork in properties['authorizedNetworks'] %}
          - name: {{ authorizedNetwork.name }}
            cidrBlock: {{ authorizedNetwork.cidrBlock }}
          {% endfor %}
        {% endif %}
        {% if properties['privateIp'] %}
        privateNetwork: {{ "projects/{}/global/networks/{}".format(
          env['project'], properties['privateNetwork']
        ) }}
        {% endif %}

以及用于创建私有CloudSQL实例的模板示例:

网络

CloudSQL实例

对于CloudSQL,您需要在VPC中分配一个Google托管的服务范围,然后使用PrivateNetwork属性中的VPC自链接配置SQL实例。有关GCP私有服务的更多信息,请参阅,以及在中与CloudSQL一起使用GCP私有服务的相关信息

您可以在中找到一个模板来部署这两种配置

网络

SQL实例 以及带有专用网络部分的CloudSQL模板:

resources:
- name: {{ name }}
  type: sqladmin.v1beta4.instance
  properties:
    backendType: {{ properties['backendType'] }}
...
      {# Connectivity #}
      ipConfiguration:
        ipv4Enabled: {{ properties['publicIp'] }}
        {% if properties['authorizedNetworks'] %}
        authorizedNetworks:
          {% for authorizedNetwork in properties['authorizedNetworks'] %}
          - name: {{ authorizedNetwork.name }}
            cidrBlock: {{ authorizedNetwork.cidrBlock }}
          {% endfor %}
        {% endif %}
        {% if properties['privateIp'] %}
        privateNetwork: {{ "projects/{}/global/networks/{}".format(
          env['project'], properties['privateNetwork']
        ) }}
        {% endif %}

以及用于创建私有CloudSQL实例的模板示例:

网络

CloudSQL实例

请详细说明:您指的是GCE实例还是云SQL实例?什么私有IP?你的项目?还是MySQL?@YingLi我说的私有IP是一个具有私有IP范围的子网。我指的是并请详细说明:您指的是GCE实例还是云SQL实例?什么私有IP?你的项目?还是MySQL?@YingLi我说的私有IP是一个具有私有IP范围的子网。我指的是和
imports:
  - path: ../../../templates/compute/vpc-network.jinja

resources:

- name: vpc-network
  type: ../../../templates/compute/vpc-network.jinja
  properties:
    subnets:
      - name: compute
        range: 10.60.0.0/23
    google-managed-services-range: 10.60.240.0/20
imports:
  - path: ../../../templates/sql/master-instance.jinja

resources:
  - name: sites-mysql
    type: ../../../templates/sql/master-instance.jinja
    properties:
      tier: db-f1-micro
      publicIp: false
      privateIp: true
      privateNetwork: rshared-net

outputs:
  - name: connectionName
    value: $(ref.sites-mysql.connectionName)
  - name: ipAddress
    value: $(ref.sites-mysql.ipAddresses[0].ipAddress)