本周或上周MS更改了Azure DB默认部署设置。 我们的部署脚本开始创建General Purpose 2 vcores实例,而不是S0实例。我正在尝试对其进行修复,但看起来要么文档不正确,要么我做错了什么。
我们的初始脚本是:
predict2(model,newdata)
根据文档,它应该可以通过添加2个参数来解决。
版本:标准
max_size_bytes:268435456000
但事实证明这还不够。
我尝试使用create_mode或减少max_size_bytes,但是没有运气。
azure_rm_sqldatabase:
resource_group: "{{ resource_group }}"
server_name: "{{ db_server }}"
name: "{{ item }}"
location: "{{ location }}"
with_items:
- "{{ database_list }}"
register: async_result
async: 7200
poll: 0
在所有情况下,我都会收到错误消息:
- name: Create SQL Database for "{{ stack_name }}"
azure_rm_sqldatabase:
resource_group: "{{ resource_group }}"
server_name: "{{ db_server }}"
name: "{{ item }}"
location: "{{ location }}"
create_mode: default
edition: standard
max_size_bytes: 268435456000
请让我知道我在做错什么。
更新: 将ansible升级到最新版本后,我又遇到了另一个错误:
failed: [127.0.0.1] (item={'_ansible_parsed': True, '_ansible_item_result': True, '_ansible_item_label': u'authentication',
u'ansible_job_id': u'701489864709.12193', 'failed': False, u'started': 1, 'changed': True, 'item': u'authentication', u'finished': 0,
u'results_file': u'/home/vb/.ansible_async/701489864709.12193', '_ansible_ignore_errors': None, '_ansible_no_log': False}) =>
{"ansible_job_id": "701489864709.12193", "attempts": 2, "changed": false, "finished": 1,
"item": {"ansible_job_id": "701489864709.12193", "changed": true, "failed": false, "finished": 0, "item": "authentication",
"results_file": "/home/vb/.ansible_async/701489864709.12193", "started": 1}, "msg":
"Error creating the SQL Database instance: 400 Client Error:
Bad Request for url: https://management.azure.com/subscriptions/1bbba5c5-fbdb-18d7-8128-b4d403d7c6c5/resourceGroups/test_rg/providers/Microsoft.Sql/servers/testserver/databases/authentication?api-version=2014-04-01"}
我减小了数据库大小,创建了数据库,但不是S0,而是创建为2vcore。
答案 0 :(得分:0)
我无法使用azure_rm_sqldatabase解决问题,因此我不得不使用bash命令解决该问题。如果我找到更好的解决方案,我将更新此答案。 如果有人遇到相同的问题,下面是示例代码:
- name: Create SQL Database for "{{ stack_name }}"
command: bash -c "az sql db create --name {{ item }} --resource-group {{ resource_group }} --server {{ db_server }} --capacity 10 --edition Standard --service-objective S0"
with_items:
- "{{ database_list }}"
register: async_result
async: 7200
poll: 0
答案 1 :(得分:0)
像您一样,我们也经历了这一点。在我的情况下:默认创建Azure SQL Server数据库是使用通用4计算(这确实很昂贵)。根据我的经验,我们使用t-sql代码创建数据库:
CREATE DATABASE 'dbName'
并以天蓝色创建昂贵的gen4计算。因此,我搜索了一些文档,根据t-sql azure create database的文档,它具有创建特定定价层的参数:SERVICE_OBJECTIVE
,例如,对于S2计算,我们现在使用以下t-sql:
CREATE DATABASE 'dbName' ( EDITION = 'standard', SERVICE_OBJECTIVE = 'S2' ) ;
现在正在为我们工作。尽管我不知道如何从脚本或命令行中调用这些参数,但应该可以发送SERVICE_OBJECTIVE
,因为这可能是缺少的键。
答案 2 :(得分:0)
我能够使用azure_rm_resource任务创建S0实例。通过此任务,您基本上可以完成azure api提供的所有功能。
此处使用API操作来创建databases。
根据您的初始脚本,它应该变为:
azure_rm_resource:
resource_group: "{{ resource_group }}"
resource_name: "{{ db_server }}"
provider: SQL
resource_type: servers
subresource:
- type: databases
name: "{{item}}"
body:
location: "{{ location }}"
sku:
tier: "Standard"
name: "S0"
capacity: 10
properties:
maxSizeBytes: 2147483648
with_items:
- "{{ database_list }}"
register: async_result
async: 7200
poll: 0